question

Danny avatar image
Danny asked

Example Alexa Skill + upload to Lambda from command line

I have written a sample project that can serve as the beginning of your Alexa skill project. It includes all the code that you need to build a simple Alexa app and upload it to Amazon Lambda. The "grunt" tool is used which lets you upload your code to your Lambda function by just typing "grunt deploy" from the command line. The "index.js" file is a great place to start building your skill. It uses the popular `alexa-app` module by Matt Kruse to build sample utterances and intent schemas. Community contributions welcomed in the Github repo! LINK: https://github.com/objectiveSee/AlexaBoilerplate
alexa skills kitcommunity projects
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Matt Kruse avatar image
Matt Kruse answered
This is great! But why grunt instead of gulp? Personal preference, I'm sure, but gulp is more popular these days. :) Have you looked at JAWS at all? https://github.com/jaws-framework/JAWS I think that has the potential to be really useful for creating skills. I haven't tried it at all yet, but it supposedly makes it really easy to develop lambda functions and hosted files on S3, which could be used as an "account linking" front end. Maybe someday if I get back into skill development I will figure out how to use JAWS to create a skill and publish a template project.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

jjaquinta avatar image
jjaquinta answered
I have some automation ideas around creating a "skill vending machine". Where complete novices can design skills using a flowchart and maybe a scratch like interface if they need some logic. What's missing is a way to upload to Alexa. Upload to Lambda/AWS helps for the back end. But it ceases to be novice usable if you have to talk someone through navigating to upload their interaction model and stuff.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Matt Kruse avatar image
Matt Kruse answered
Since Amazon tends to have CLI's for everything, I assume Alexa skills will be automated at some point. It might take a while. One way to simplify could be to open a page in the browser, with skill details in a frame on the left and the Developer Portal on the right, side-by-side. The instructions on the left could then step the developer through what to paste where. It's definitely not ideal, but there are a lot of things about skill development that are not ideal. :)
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Danny avatar image
Danny answered
It uses grunt only because that was the open-source project I found for uploading to Lambda. I only know Jaws from reading the Alexa forums and seeing it mentioned a few times. It looks promising though, especially since it creates the Lambda function for you (although that isn't terribly hard once you figure out that section of AWS console). For me the goal was to provide a easy way for experienced JS developers to get into Alexa skills and get their own "Hello World" off the ground and eliminate as much of the headache of learning a new Amazon service as possible (which is famously difficult IMO). Maybe somebody can run with this concept but adapt to JAWS if it is really better.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

justin avatar image
justin answered
This is great Danny, thanks for sharing! Moving this over to Community Projects for extra visibility :)
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Bob Robison avatar image
Bob Robison answered
I assume there is no new news about being able to upload intent schemas or utterances lists, via command line... we are still stuck with cut/paste into the browser for this kind of update, right?
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Nick Gardner avatar image
Nick Gardner answered
Sorry, no further updates at this time. -Nick
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Danny avatar image
Danny answered
I have updated the project with a example app that lets Alexa trigger Apple's Find My iPhone service: https://github.com/objectiveSee/AlexaBoilerplate/tree/master/examples/FindMyPhone
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

jjaquinta avatar image
jjaquinta answered
This isn't a skill that can be deployed for general use because (1) you hard code your username and password into the skill and (2) Amazon won't let you ask the user for their username and password. Talk to Matt. He has a iFindMyPhone skill all ready to go but it's stuck in certification hell because of #2.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Danny avatar image
Danny answered
The goal of this repository is not to make certified skills, but for building your own private skills. The certification process and requirements for making user products is way to much work for my interest in Echo as a hobby. If you don't know how to setup a Lambda function then this is 100% not for you.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.