Architecture overview - Serverless Bot Framework

Architecture overview

The diagram below presents the architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.


        Serverless Bot Framework reference architecture

Figure 1: Serverless Bot Framework reference architecture

The this solution deploys the following workflows and services:

  1. Amazon Simple Storage Service (Amazon S3) buckets store configuration files

  2. A customer sends a request through an Amazon API Gateway endpoint

  3. AWS Lambda functions run code without provisioning servers

    • When a request is made using a natural language string, the Core Lambda function is initiated. This function forwards the request to Amazon Lex. The chatbot configured in Amazon Lex then determines which of the microservices can answer the request.

    • The web application sends another request to Amazon Polly to generate an audio version of the bot’s response before it is presented to the requestor. Conversation logs and interaction context are stored in an Amazon Lex if configured.

  4. Amazon Lex V2 processes user requests and respond according to bot configurations

  5. Amazon DynamoDB tables store conversation logs, interaction context, user feedback, and other tables required by the sample microservices

  6. AWS Systems Manager securely stores API keys

  7. Amazon Polly turns text into lifelike speech

For information on this solution’s architectural components, refer to Architectural components.

This solution also deploys a sample web application into an Amazon S3 bucket configured for static website hosting. The S3 bucket is secured and can only be accessed through an Amazon CloudFront distribution. To access the sample web application, you must provide an admin email and a username when launching this solution. Amazon Cognito generates an email providing access information to the sample web application. If access credentials are not provided, Amazon Cognito will not authorize the clients to invoke the API Gateway endpoint. For more information, refer to Security.