Listen to this Post

Building modern frontends for Python applications can be streamlined using Dash, a framework that generates JavaScript from Python code. Deploying a Dash app on AWS Lambda with Terraform (IaC) ensures scalability and automation.
You Should Know:
1. Prerequisites
- AWS Account with CLI configured (
aws configure) - Terraform installed (
terraform --version) - Docker for containerization (
docker --version) - Python & Dash (
pip install dash)
2. Sample Dash App (`app.py`)
import dash
import dash_html_components as html
app = dash.Dash(<strong>name</strong>)
app.layout = html.Div([
html.H1("AWS Lambda + Dash Deployment"),
html.P("This app runs on Lambda via Terraform!")
])
def lambda_handler(event, context):
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from werkzeug.serving import run_simple
import flask
flask_app = app.server
application = DispatcherMiddleware(flask_app)
run_simple("0.0.0.0", 5000, application)
return {"statusCode": 200, "body": "Dash App Running"}
3. Terraform Configuration (`main.tf`)
provider "aws" {
region = "us-east-1"
}
resource "aws_lambda_function" "dash_lambda" {
function_name = "dash-app-lambda"
role = aws_iam_role.lambda_exec.arn
image_uri = aws_ecr_repository.dash_app.repository_url
package_type = "Image"
timeout = 30
}
resource "aws_iam_role" "lambda_exec" {
name = "lambda_exec_role"
assume_role_policy = jsonencode({
Version = "2012-10-17",
Statement = [{
Action = "sts:AssumeRole",
Effect = "Allow",
Principal = { Service = "lambda.amazonaws.com" }
}]
})
}
resource "aws_ecr_repository" "dash_app" {
name = "dash-app-repo"
}
4. Deploying with Terraform
Initialize Terraform terraform init Build & push Docker image docker build -t dash-app . aws ecr get-login-password | docker login --username AWS --password-stdin [bash].dkr.ecr.us-east-1.amazonaws.com docker tag dash-app:latest [bash].dkr.ecr.us-east-1.amazonaws.com/dash-app-repo:latest docker push [bash].dkr.ecr.us-east-1.amazonaws.com/dash-app-repo:latest Apply Terraform terraform apply -auto-approve
5. Verify Deployment
aws lambda invoke --function-name dash-app-lambda output.txt cat output.txt
What Undercode Say
Deploying Dash on AWS Lambda via Terraform optimizes serverless frontend development. Key takeaways:
– Use `DispatcherMiddleware` to wrap Dash in Lambda.
– Terraform automates AWS resource provisioning (ECR, IAM, Lambda).
– Docker ensures consistency between local & cloud environments.
– Monitor logs with aws logs tail /aws/lambda/dash-app-lambda.
For scaling, consider API Gateway (aws apigateway create-rest-api) or ECS Fargate (aws ecs create-cluster).
Expected Output:
A fully deployed Dash app running on AWS Lambda, accessible via API Gateway or direct Lambda invocation.
Reference: Medium
References:
Reported By: Darryl Ruggles – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅


