【问题标题】:Getting Error : error creating Lambda Function (1): ValidationException status code: 400出现错误:创建 Lambda 函数时出错 (1):ValidationException 状态代码:400
【发布时间】:2021-07-06 05:09:57
【问题描述】:

我正在 Udacity 的 AWS 云架构师纳米学位项目中尝试一个项目。并且正在编写代码以使用 Terraform 部署 AWS Lambda 函数。我相信我应该使用 greet_lambda.py 作为要通过 terraform 部署的 lambda 函数。文件在下面提到,到目前为止已经执行了以下步骤:

greet_lambda.py

import os
def lambda_handler(event, context):
    return "{} from Lambda!".format(os.environ['greeting'])

压缩 lambda 文件:

$zip ../greet_lambda.zip greet_lambda.py

在 S3 中创建了一个存储桶:

$aws s3api create-bucket --bucket=dirai-terraform-lambda --region=us-east-1

已将 zip 文件上传到 S3:

$aws s3 cp greet_lambda.zip s3://dirai-terraform-lambda/v1.0.0/greet_lambda.zip

main.tf 文件:

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

provider "aws" {
   region = "us-east-1"
}


resource "aws_iam_role" "lambda_role" {
    name = "lambda_role"
    assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_lambda_function" "test_lambda" {
   function_name = "greet_lambda"
   s3_bucket = "dirai-terraform-lambda"
   s3_key    = "v1.0.0/greet_lambda.zip"
   handler = "greet_lambda.lambda_handler"
   runtime = "python3.7"
   role = "aws_iam_role.lambda_role.arn" 
}

我在 $terraform apply 上收到以下错误:

Error: error creating Lambda Function (1): ValidationException: 
    status code: 400, request id: e6289eb7-40f5-4cf2-ba0a-e8b5ae656466

  on main.tf line 33, in resource "aws_lambda_function" "test_lambda":
  33: resource "aws_lambda_function" "test_lambda" {

请帮我看看我可能做错了什么。 lambda 已成功导出到 S3。但是 terraform apply 失败了。

【问题讨论】:

    标签: amazon-web-services aws-lambda terraform


    【解决方案1】:

    您的role 将是文字字符串 "aws_iam_role.greet_lambda.arn"。 应该是(没有引号):

    role = aws_iam_role.greet_lambda.arn 
    

    【讨论】:

    • 根据后续问题编辑,应为:aws_iam_role.lambda_role.arn
    • @BrentBradburn 是的,但不在引号中。
    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 2021-07-29
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多