1

I am building a lambda in terraform using it's AWS module and my code is as below:

module "lambda_function" {

# * Lambda module configs
  source  = "terraform-aws-modules/lambda/aws"
  version = "3.0.0"

  # * Lambda Configs
  function_name = "${var.function_name}-${var.env}"
  description   = "My Project"
  handler       = local.constants.lambda.HANDLER
  runtime       = local.constants.lambda.VERSION
  memory_size                       = 128
  cloudwatch_logs_retention_in_days = 14
  source_path               = "./function/"
  timeout                   = local.constants.lambda.TIMEOUT
  create_async_event_config = true
  maximum_retry_attempts    = local.constants.lambda.RETRIES_ATTEMPT
    
  layers = [
    data.aws_lambda_layer_version.layer_requests.arn
  ]

  environment_variables = {
    AWS_ACCOUNT        = var.env
    SLACK_HOOK_CHANNEL = var.SLACK_HOOK_CHANNEL
  }

  tags = {
    Name = "${var.function_name}-${var.env}"
  }

  trusted_entities = local.constants.lambda.TRUSTED_ENTITIES
}

This code works fine and the lambda get's deployed. Now i need to put the lambda in the VPC. When i add the code below in the resource block, i get the error error modifying Lambda Function (lambda_name) configuration : ValidationException: │ status code: 400, request id: de2641f6-1125-4c83-87fa-3fe32dee7b06 │ │ with module.lambda_function.aws_lambda_function.this[0], │ on .terraform/modules/lambda_function/main.tf line 22, in resource "aws_lambda_function" "this": │ 22: resource "aws_lambda_function" "this" {

The code for the vpc is:

# * VPC configurations
  vpc_subnet_ids         = ["10.21.0.0/26", "10.21.0.64/26", "10.21.0.128/26"]
  vpc_security_group_ids = ["sg-ffffffffff"] # Using a dummy value here
  attach_network_policy  = true

If i use the same values in the AWS console and deploy the lambda in the VPC, it works fine.

Can someone please help ?

0

1 Answer 1

5

You have to provide valid subnet ids, not CIDR ranges. So instead of

vpc_subnet_ids         = ["10.21.0.0/26", "10.21.0.64/26", "10.21.0.128/26"]

it should be

vpc_subnet_ids         = ["subnet-asfid1", "subnet-asfid2", "subnet-as4id1"]
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.