程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id?

开发过程中遇到在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id的问题如何解决?下面主要结合日常开发的经验,给出你关于在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id的解决方法建议,希望对你解决在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id有所启发或帮助;

我正在尝试使用 terraform 将 nodeJs lambda zip 文件部署到私有子网自定义 vpc。 地形计划工作正常。但是在应用更改时会引发错误。角色已创建,但 terraform lambda 未部署并在一分钟内出错。错误是: “创建 Lambda 函数时出错 (1):ValIDationException:状态代码:400,请求 ID...”
此 lambda 将由 cloud watch-event 调用。

是否与 VPC 角色有关?

//calling module
module "lambda" {

  provIDers = {
    aws.programR_538_11845@atic = aws.programR_538_11845@atic

  }
  
  source                         = "../modules/lambda"
  description                    = var.description
  filename                       = "${path.modulE}/filename.zip}"
  @R_696_1899@                  = "rfcsyncfunc" 
  handler                        = "index.handler"
  memory_size                    = 512
  publish                        = false
  reserved_concurrent_EXECUTIONS = 20
  runtime                        = "nodeJs14.x"
  source_code_hash               =  filebase64sha256(var.fileName)
  timeout                        = 90
  
    vpc_config = {
    security_group_IDs = ["sg-123456789"]  
    subnet_IDs         = ["xx.xx.xxx.xxx/27","xx.xx.xx.xx/27"]  //["subnet-1","subnet-2"]
  }

  environment = {
    variables = {
      TEST1API_URL  = "https://example.com/test.asmx"
      TEST2API_URL  = "https://example.com/test/staging/test2.asmx"
     
    }
  }


}


//lambda module
provIDer aws {
  alias = "progrAMMatic"
}

resource "aws_lambda_function" "lambda" {
  description = var.description
  dynamic "environment" {
    for_each = length(var.environment) < 1 ? [] : [var.environment]
    content {
      variables = environment.value.variables
    }
  }
  filename                       = var.s3_bucket == "" ? var.filename : null
  @R_696_1899@                  = var.@R_696_1899@
  handler                        = var.handler
  memory_size                    = var.memory_size
  publish                        = var.publish
  reserved_concurrent_EXECUTIONS = var.reserved_concurrent_EXECUTIONS
  role                           = aws_iam_role.lambda.arn
  runtime                        = var.runtime
  source_code_hash               = var.source_code_hash
  Tags                           = var.Tags
  timeout                        = var.timeout

  dynamic "vpc_config" {
    for_each = length(var.vpc_config) < 1 ? [] : [var.vpc_config]
    content {
      security_group_IDs = vpc_config.value.security_group_IDs
      subnet_IDs         = vpc_config.value.subnet_IDs
    }
  }
}

data "aws_iam_policy_document" "assume_role_policy" {
  statement {
    actions = ["sts:AssumeRole"]

    principals {
      type        = "service"
      IDentifIErs = ["lambda.amazonaws.com"]
    }
  }
}

resource "aws_iam_role" "lambda" {
  name               = "${var.@R_696_1899@}-lambdarole"
  assume_role_policy = data.aws_iam_policy_document.assume_role_policy.Json
  permissions_boundary = var.permissions_boundary
}

resource "aws_iam_role_policy_attachment" "clouDWatch_logs" {
  role       = aws_iam_role.lambda.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}

resource "aws_iam_role_policy_attachment" "vpc_eniattachment" {
  count = length(var.vpc_config) < 1 ? 0 : 1
  role  = aws_iam_role.lambda.name  
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaENIManagementAccess"
}

/*
resource "aws_iam_role_policy_attachment" "vpc_attachment" {
  count = length(var.vpc_config) < 1 ? 0 : 1
  role  = aws_iam_role.lambda.name  
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
}
*/

module/clouwatchevent

resource "aws_lambda_permission" "clouDWatch" {
  count         = var.enable ? 1 : 0
  statement_ID  = "AllowExecutionFromClouDWatch"
  action        = "lambda:InvokeFunction"
  @R_696_1899@ = var.lambda_function_arn
  principal     = "events.amazonaws.com"
  source_arn    = aws_clouDWatch_event_rule.lambda[count.index].arn
}

resource "aws_clouDWatch_event_rule" "lambda" {
  count               = var.enable ? 1 : 0
  description         = var.description
  event_pattern       = var.event_pattern
  is_enabled          = var.is_enabled
  name                = var.name
  name_prefix         = var.name_prefix
  schedule_Expression = var.schedule_Expression
}

resource "aws_clouDWatch_event_target" "lambda" {
  count = var.enable ? 1 : 0
  rule  = aws_clouDWatch_event_rule.lambda[count.index].name
  arn   = var.lambda_function_arn
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id全部内容,希望文章能够帮你解决在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态代码:400,请求 id所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。