Amazon web services 获取错误:创建Lambda函数时出错(1):ValidationException状态代码:400
我正在Udacity的AWS云架构师Nanodegree项目中尝试一个项目。我正在编写使用Terraform部署AWS Lambda函数的代码。我相信我应该使用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
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