Prerequisites

Before using Lazysusan there are a few services along with some software and hardware tools that you will in order to build skills for Alexa.

Note

These docs are written assuming you are using all of the Suggested options

Requirements

Amazon Web Services

Lazysusan has been built so that it can be easily deployed as an AWS Python Lambda function. In order for the deployments to work, you will need an AWS account that has admin privileges along with its public and private keys.

Amazon Developer Account

In order to deploy an Alexa skill, whether for testing or production use, you will need to configure a skill store listing for the skill. This listing will contain information such as how to invoke the skill, how to reach the AWS Lambda function you have deployed, your interaction model, along with a console for testing that allows you to view parsed JSON requests and the responses your AWS Lambda function returns.

The Amazon Developer Account needs to be created with the email address your Alexa enabled device has been setup with. This is how Alexa knows you are able to use a skill that has not yet been published.

Alexa Enabled Device

The best way to test your application is on the actual hardware people will be using it with. Therefore you will need to purchase an Amazon Echo or Amazon Echo Dot. An alternative is to use the Reverb.AI service with your phone, tablet, or computer. With that being said, we recommend using the actual hardware.

Python 2.7

Since Lazysusan is a Python framework you’ll need a Python 2.7 environment for testing and development. If you decide to use our Docker image this is already set up for you.

Suggested options

Serverless

Lazysusan is designed to use AWS Lambda for your Alexa applications. While setting up your own webserver and using Lazysusan is a possibility it really doesn’t help matters much and significantly complicates the deployment process.

In order to facilitate managing your Lambda functions we use and highly suggest the Serverless framework. Serverless is a NodeJS package which can be installed via npm. Again, it’s possible to not use Serverless and manage Lambda deployments on your own, however there is no clear advantage to forging your own path.

Docker

So that development with Lazysusan is as effortless as possible, we have created a Docker image that will help ease the pain of dependency management. See the joinspartan/serverless image on Docker Hub. The container will setup a NodeJS environment that will handle deployments with the Serverless framework with a Python 2.7 environment so you may execute the Python REPL and execute any automated test suites that you may write.

Using Docker isn’t absolutely required, but makes development and deployment much much easier thanks in part to Serverless. If you’d like to run Serverless on a local system that will work as well.

Make

To keep you from having to script repetitive tasks with shell scripts, we recommend using gnu Make for executing deploys, running test suites and other repetitive tasks. You can see an example Makefile in the Example Application section. Just like Docker this is optional and just like Python this is already installed and ready to use in the Docker image.