Serverless Alexa Skill Example
This example demonstrates how to setup your own Alexa skill using AWS Lambdas.
Use-cases
- Building custom Alexa skills
How it works
In the Alexa Developer Portal you can add your own skill. To do so you need to define the available intents and then connect them to a Lambda. You can update and define the Lambda with Serverless.
Setup
In order to deploy the endpoint simply run
serverless deploy
The expected result should be similar to:
Serverless: Packaging service...Serverless: Uploading CloudFormation file to S3...Serverless: Uploading service .zip file to S3 (378 B)...Serverless: Updating Stack...Serverless: Checking Stack update progress............Serverless: Stack update finished...Serverless: Removing old service versions...Service Informationservice: aws-node-alexa-skill-2stage: devregion: us-east-1api keys: Noneendpoints: Nonefunctions: aws-node-alexa-skill-2-dev-luckyNumber: arn:aws:lambda:us-east-1:377024778620:function:aws-node-alexa-skill-2-dev-luckyNumber
Next we need to setup an Alexa skill. Once you've signed up for the Amazon Developer Platform visit https://developer.amazon.com/edw/home.html
. There you should see the following screen:
Next click on Add a new Skill
:
Go through the steps and fill in all the required fields e.g. Intent Schema and Sample Utterances:
Intent Schema
{ "intents": [ { "intent": "GetLuckyNumbers", "slots": [ { "name": "UpperLimit", "type": "AMAZON.NUMBER" } ] } ]}
Sample Utterances
GetLuckyNumbers what are my lucky numbersGetLuckyNumbers tell me my lucky numbersGetLuckyNumbers what are my lucky numbers lower than {UpperLimit}GetLuckyNumbers tell me my lucky numbers lower than {UpperLimit}
Fill in the Lambda ARN which was printed or run serverless info
to retrieve the ARN again.
Next up visit the test page, fill in the utterance and click on Ask LuckyNumbers
.
You should have received a response containing the text Your lucky number is
followed by your lucky number :)
Check out this Amazon guide to learn more about how to submit your skill for publication.