Skip to content

Lambda Function

Minimal working example

Prerequisites

  • An ECR repository with Docker images exists

Code Example

main.tf
module "application" {
  source           = "git@github.com:BYM-IKT/terraform-app-master-module.git"
  team             = var.team
  account_id       = var.account_id
  environment      = var.environment
  region           = var.region
  application_name = var.application_name

  lambda_functions = {
    my-function = {
      ecr_uri               = local.ecr["my-function"]
      image_tag             = var.environment

      environment_variables = {
        MY_ENV_VAR = "hello world!"
      }
    }
  }

  providers = {
    aws.route53   = aws.route53
    aws.us-east-1 = aws.us-east-1
    aws.ses       = aws.ses
  }
}

Scenarios

A Lambda Function that triggers on SQS

CloudFront to S3

A Lambda function that are triggered by incoming messages from SQS queue.

The following code provisions an SQS queue new-visitors and a Lambda Function add-visitor-to-database. The Lambda Function is triggered for each new messages that are put in the aforementioned queue:

main.tf
module "application" {
  source           = "git@github.com:BYM-IKT/terraform-app-master-module.git"
  # ...

  sqs_queues = {
    new-visitors = {}
  }

  lambda_functions = {
    add-visitor-to-database = {
      ecr_uri               = local.ecr["add-visitor-to-database"]
      image_tag             = var.environment

      sqs_triggers = {
        new-visitors = {}
      }
    }
  }
}