Terminology and Components
Most parts of the installation, build, and deployment processes of the reference video skill (Alexa Video Multimodal Reference Software) are automated. You don't need to worry about setting up every resource and service listed below.
For your convenience, however, here is an outline of all the reference video skill components to help you get started. At a high level, it is important to know which services and tools you use.
Command Line Interface (CLI) that unifies all the services you need to set up in order to create, build, and deploy your video skill targeting Echo Show devices.
It is highly recommended to use this tool for video skill development on Echo Show devices.
AWS CloudFormation is at the core of the reference video skill, so that you manage related AWS resources as a single unit, called a stack. AWS CloudFormation ensures creation, updating, and deletion of AWS resources by creating, updating, and deleting stacks.
The CLI tool creates these resources for you.
AWS computation service that lets you run code without provisioning or managing servers. Your lambda function is executed only when requested by an Echo Show device running your video skill, and by the web player that streams video content.
This is one of the most important components of video skill development on Echo Show devices. The reference project creates a lambda function for you.
AWS Cognito is a user identity and data synchronization service that helps you securely manage and synchronize app data for your users across their devices. The Amazon Cognito User Pool is a user directory for adding sign-up and sign-in user features to your video skill.
Apps within a user pool have permission to call unauthenticated APIs (APIs that do not have an authenticated user), such as APIs to register, sign in, and handle forgotten passwords. To call these APIs, you need a client ID and an optional client secret.
You need to use these services to connect your skill to Echo Show devices and enable user authentication. The CLI tool helps you create these resources. If you have your own OAuth, you can go to Cognito AWS - User pool and configure the deployed skill as part of Account Linking configuration.
Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. An AWS Identity and Access Management (IAM) user is an entity that you create in AWS to represent the person or application that uses it to interact with AWS. A user in AWS consists of a name and credentials.
To get started, you must manually create an IAM user.
DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. The reference video skill uses a DynamoDB table to support pagination of video content.
The CLI tool creates this database for you.
Uniquely named storage for all of the video content files of your project, also known as objects. Amazon Simple Storage Service (Amazon S3) stores these objects offering scalability, data availability, security, and performance.
The CLI tool creates an S3 bucket to store the video content and the built web player (as a website).
Login with Amazon allows users to login to registered third party websites or apps ('clients') using their Amazon user name and password.
You must manually create a Security Profile and enable Login with Amazon.
Video skill directives are sent from Alexa to your lambda function. Directives are JSON messages that contain instructions about performing a specific action, like getting metadata for a video. There are various directives with different names and payloads.
Your lambda function must handle the incoming directives and return a response that conforms with the expected JSON. Overall, the basic model is a request (in JSON) sent from Alexa (the request is called a directive) and a response (also in JSON) sent by your lambda. The reference lambda handles this entire workflow for you.