Skip to content

Installation

jmartini edited this page Aug 8, 2020 · 29 revisions

Installation Overview

In order to create an Alexa skill we need to configure two main components:

  1. The Alexa skill itself.
  2. An Amazon Web Service (AWS) lambda function to run our application logic. (If you don't have an AWS account, sign up for one at https://aws.amazon.com)

Luckily, most of the configuration can be done through the Alexa Skills Kit Command Line Interface (ASK CLI). To get set up with ASK CLI follow septs 1-3 of the ASK CLI quick start guide. Make sure you do all of step 1, including signing up for a developer account, all of step 2, including creating AWS credentials since we are using AWS lambda to host our skills, and run ask configure in step 3.

Once completed, clone the repo and run ask deploy from inside the repo. If all goes well, you should successfully deploy the skill.

In order to test the skill, you can use the command line ask dialog. Try running opening the skill in the dialog console by typing "open boston info".

If you want to test and hear the audio back, you can use the web interface in the "Alexa Developer Console"

After deploying, one additional thing you need to set up manually is add some environment variables to our lambda function. Log into your AWS account and select "Lambda" under services. You should now see a lambda function that starts with "ask-bostoninfo". Click on this lambda function, and scroll down to Environment variables. Add the following:

  • ARCGIS_CLIENT_ID = ohV8JDNMhlt222YV and ARCGIS_CLIENT_SECRET = baabf2fb50064f31872aa1c456aa44d0. These are used for ESRI ArcGIS APIs' location services.

  • SLACK_WEBHOOKS_URL. You can get the value for this key from someone in the group (or you can create your own private channel to test on your own and use that). You can also just put a dummy value here and everything but the feedback intent should work.

  • WHOAMI. Set this to something to identify that it's your lambda function, such as your name, or github/slack handle. This is optional, but will default to unknown and that helps no one.