Home > Software engineering >  error modifying Lambda Function configuration : ValidationException with Lambda and VPC
error modifying Lambda Function configuration : ValidationException with Lambda and VPC

Time:04-29

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 ?

CodePudding user response:

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"]
  • Related