This template demonstrates deploying an AWS Lambda function with Terraform and automating the workflow using GitLab CI/CD.
- Package Python Lambda with dependencies
- Deploy Lambda via Terraform
- GitLab CI/CD pipeline with stages:
package
β build Lambda zipvalidate
β Terraform syntax checkplan
β preview changesapply
β manual approval for deployment
- CloudWatch log group created automatically
- Create an AWS IAM user with programmatic access.
- Store credentials in GitLab CI/CD Variables:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION
- Optional variables:
TF_VAR_project_name
TF_VAR_env
- Push to GitLab β pipeline packages Lambda and runs Terraform plan.
- Manual approval needed for
apply
to deploy Lambda.
cd lambda
pip install -r requirements.txt -t .
zip -r ../lambda_package.zip .
cd ../terraform
terraform init
terraform plan
terraform apply