Things used in this project

Software apps and online services

Story

a. Follow the online instructions. Do not worry about the IAM role, we will do that later.

b. You will need a Valid Credit Card to set up your account (note the AWS Free Tier will suffice.

c. Part of the sign-up procedure involves receiving a phone call and entering a PIN using the phone keypad.

2. Sign in to your Console

Step #2 – Create a Lambda Function

AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability.

1. IMPORTANT: Select US East (N. Virginia) region (upper right). This is the only region that currently supports Alexa Skill development.

· Drop down the “Role” menu and select “* Basic execution role”. This will launch a new tab in the IAM Management Console.

7. You will be asked to set up your Identity and Access Management or “IAM” role if you have not done so. AWS Identity and Access Management (IAM) enables you to securely control access to AWS services and resources for your users. Using IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources. We need to create a role that allows our skill to invoke this Lambda function.

8. Accept the defaults to create a new IAM Role with a role name of lambda_basic_execution. Select “Allow” in the lower right corner and you will be returned to your Lambda function.

9. Keep the Advanced settings as default. Select ‘Next’ and review. You should see something like below. Then select ‘Create Function’:

10. Next we need to create an Event source. Event sources publish events that cause the Lambda function to be invoked. Upon invocation, AWS Lambda executes your code by passing the event to the handler in your Lambda function code. You associate an event source with your Lambda function using an event source mapping. We will use the Alexa Skills Kit event source and map it to this function.

Skills are managed through the Amazon Developer Portal. You’ll link the Lambda function you created above to a Skill defined in the Developer Portal.

1. Open a new tab and go to the Developer Portal. Sign in or create a free account (upper right). You might see a different image if you have registered already or our page may have changed. If you see a similar menu and the ability to create an account or sign in, you are in the right place.

2. Once you’ve signed in, navigate to Apps & Services then select Alexa.

3. Choose Alexa Skills Kit:

4. Here is where you will define and manage your skill.

Select “Add New Skill”:

5. Make sure the radio button for the custom interaction model is selected for “Skill Type”.

6. Add the name of the skill. You can use “My Fact Skill” for this example. Remember, when you create a skill that you will publish, you will use a name that you define for your skill. That name will be the one that shows up in the Alexa App. Add the invocation name. Since we are using the sample, type “space geek”

7. Select "Next"

8. Now, notice you're on the interaction model.

9. Next, we need to define our skill’s interaction model. Let’s begin with the intent schema. In the context of Alexa, an intent represents an action that fulfills a user’s spoken request. Intents can optionally have arguments called slots. We will not be using custom slots in this template, but they are very useful if you want to parameterize your intents.

10. The next step is to build the utterance list.

11. Select Save. You should see the interaction model being built (this make a take a minute or 2). If you select next, your changes will be saved and you will go directly to the test screen. After selecting Save, it should now look like this:

12. Select Next, and you will be taken to the Configuration screen. Add the ARN from the Lambda function you created in the AWS Console earlier. Select the Lambda ARN (Amazon Resource Name) radio button. Then, select “No” for account linking since we will not be connecting to an external account.