Amazon web services 获取错误:创建Lambda函数时出错(1):ValidationException状态代码:400

Amazon web services 获取错误:创建Lambda函数时出错(1):ValidationException状态代码:400,amazon-web-services,aws-lambda,terraform,Amazon Web Services,Aws Lambda,Terraform,我正在Udacity的AWS云架构师Nanodegree项目中尝试一个项目。我正在编写使用Terraform部署AWS Lambda函数的代码。我相信我应该使用greet_lambda.py作为通过terraform部署的lambda函数。文件如下所述,目前已执行以下步骤: 欢迎你 import os def lambda_handler(event, context): return "{} from Lambda!".format(os.environ['gree

我正在Udacity的AWS云架构师Nanodegree项目中尝试一个项目。我正在编写使用Terraform部署AWS Lambda函数的代码。我相信我应该使用
greet_lambda.py
作为通过terraform部署的lambda函数。文件如下所述,目前已执行以下步骤:

欢迎你

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

$zip ../greet_lambda.zip greet_lambda.py
在S3中创建了一个bucket:

$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" 
}

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

您的
角色将是文本字符串
“aws\u iam\u role.greet\u lambda.arn”
。 应该是(无引号):


您的
角色
将是文字字符串
“aws\u iam\u role.greet\u lambda.arn”
。 应该是(无引号):

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" {
role = aws_iam_role.greet_lambda.arn