Browse the Repo

file-type-icon.circleci
file-type-icon_docs
file-type-iconexamples
file-type-iconapi-gateway-account-settings
file-type-iconlambda-build
file-type-iconlambda-dead-letter-queue
file-type-iconlambda-edge
file-type-iconlambda-keep-warm
file-type-iconlambda-s3-deployment-package
file-type-iconpython
file-type-iconREADME.md
file-type-iconmain.tf
file-type-iconoutputs.tf
file-type-iconvars.tf
file-type-iconlambda-s3
file-type-iconlambda-service
file-type-iconlambda-vpc
file-type-iconscheduled-lambda-job
file-type-iconmodules
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconLICENSE.txt
file-type-iconREADME.md
file-type-iconowners.txt
file-type-iconterraform-cloud-enterprise-private-module-...

Browse the Repo

file-type-icon.circleci
file-type-icon_docs
file-type-iconexamples
file-type-iconapi-gateway-account-settings
file-type-iconlambda-build
file-type-iconlambda-dead-letter-queue
file-type-iconlambda-edge
file-type-iconlambda-keep-warm
file-type-iconlambda-s3-deployment-package
file-type-iconpython
file-type-iconREADME.md
file-type-iconmain.tf
file-type-iconoutputs.tf
file-type-iconvars.tf
file-type-iconlambda-s3
file-type-iconlambda-service
file-type-iconlambda-vpc
file-type-iconscheduled-lambda-job
file-type-iconmodules
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconLICENSE.txt
file-type-iconREADME.md
file-type-iconowners.txt
file-type-iconterraform-cloud-enterprise-private-module-...
AWS Lambda

AWS Lambda

Deploy Lambda functions with Terraform. Supports uploading deployment packages, configuring environment variables, and scheduled functions.

Code Preview

Preview the Code

mobile file icon

README.md

down

Lambda S3 deployment package example

This folder shows an example of how to use the lambda module to create a Lambda function from a deployment package that is in an S3 bucket. The lambda function itself just returns the exact event object you pass it.

How do you deploy this example?

To apply the Terraform templates:

  1. Install Terraform.
  2. Open vars.tf, set the environment variables specified at the top of the file, and fill in any other variables that don't have a default.
  3. Run terraform get.
  4. Run terraform plan.
  5. If the plan looks good, run terraform apply.

How do you test the Lambda function?

There are two ways to test the Lambda function once it's deployed:

  1. Test in AWS
  2. Test locally

Test in AWS

Open up the AWS Console UI, find the function, click the "Test" button, and enter test data that looks something like this:

{
  "text": "Hello, World"
}

Click "Save and test" and AWS will show you the log output and returned value in the browser.

Test locally

The code you write for a Lambda function is just regular code with a well-defined entrypoint (the "handler"), so you can also run it locally by calling that entrypoint. test_harness.py is an example of a simple script you can run locally that will execute the handler and print the result to stdout:

python python/test_harness.py --event '{"text": "Hello, World"}'

Questions? Ask away.

We're here to talk about our services, answer any questions, give advice, or just to chat.

Ready to hand off the Gruntwork?