AWS Serverless Alexa Skill example in NodeJS

This example demonstrates how to setup your own Alexa skill using AWS Lambdas.

View on Github

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 Information
service: aws-node-alexa-skill-2
stage: dev
region: us-east-1
api keys:
  None
endpoints:
  None
functions:
  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:

Welcome

Next click on Add a new Skill:

Add 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 numbers
GetLuckyNumbers tell me my lucky numbers
GetLuckyNumbers what are my lucky numbers lower than {UpperLimit}
GetLuckyNumbers tell me my lucky numbers lower than {UpperLimit}

Skill Information Interaction Model

Fill in the Lambda ARN which was printed or run serverless info to retrieve the ARN again.

Configuration

Next up visit the test page, fill in the utterance and click on Ask LuckyNumbers.

Test Test Test Test

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.