youyo / terraform-aws-lambda-settings

Terraform module which creates Lambda resources on AWS.

Home Page:https://registry.terraform.io/modules/youyo/lambda-settings/aws/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS Lambda Terraform module

Terraform module which creates Lambda resources on AWS.
Not deploy function code, and configure other settings.

How do you deploy your code?
I use lambroll.
https://github.com/fujiwara/lambroll

Requiirements

  • Terraform version > 0.12

Basic Usage

module "lambda-settings" {
  source = "youyo/lambda-settings/aws"

  name    = "my-function"
  handler = "lambda_function.lambda_handler"
  runtime = "python3.8"

  tags = {
    Terraform   = "true"
    Environment = "dev"
  }
}

Examples

  • Custom IAM Role policy
module "lambda-settings" {
  source = "youyo/lambda-settings/aws"

  role_policy = data.aws_iam_policy_document.this.json
}

data "aws_iam_policy_document" "this" {
  statement {
    actions = [
      "logs:CreateLogGroup",
      "logs:CreateLogStream",
      "logs:PutLogEvents"
    ]
    resources = ["*"]
  }

  statement {
    actions = [
      "s3:*"
    ]
    resources = ["*"]
  }
}
  • Invoke from SNS
module "lambda-settings" {
  source = "youyo/lambda-settings/aws"

  add_sns_permission = true
  sns_topic_arn      = aws_sns_topic.default.arn
}

resource "aws_sns_topic" "default" {}

resource "aws_sns_topic_subscription" "lambda" {
  topic_arn = aws_sns_topic.default.arn
  protocol  = "lambda"
  endpoint  = module.lambda-settings.lambda_arn
}

About

Terraform module which creates Lambda resources on AWS.

https://registry.terraform.io/modules/youyo/lambda-settings/aws/

License:MIT License


Languages

Language:HCL 100.0%