Dash Lambda Deployments

An AWS code pipeline is created for each Dash application. This pipeline is responsible for deploying the infrastructure and the application code. The pipeline is triggered when a new commit is pushed to the specified branch of the application's repository.

Dash Lambda

Dash Lambda Deployment

Static Files

Zonké uses the open-dash library to extract static files from Dash's Flask server and prepare them for deployment. The static files are deployed to an S3 bucket. The deployed bucket is private and all static files are served using CloudFront.

Lambda Servers

Lambda servers handle API requests and other server-side logic for the Dash application. The lambda servers are not deployed in a VPC, but the URL used to trigger the lambda function requires IAM authentication.

Lambda Warmers

A lambda warmer function is used to call the server lambda functions. This is done to reduce the cold start time of the lambda servers. The lambda warmer function is triggered by an EventBridge event and is scheduled to run every 5 minutes. The dashboard allows you to configure the number of servers to keep warm.

Secrets

Secrets are stored in AWS Secrets Manager and are exposed to the lambda servers as environment variables. The Zonké dashboard allows you to add, update, and delete secrets for the Dash application. Secrets are only stored in your AWS account and are encrypted at rest and in transit. The Dash application can access these secrets using os.getenv and directly from Secrets Manager.