简单的 AWS Lambda Terraform 计划失败并出现 ValidationException 错误 400
Simple AWS Lambda Terraform plan fails with ValidationException Error 400
我正在尝试应用下面提到的 terraform 计划,但由于验证错误而失败。
我写了一个存在于目录 lambda_function/sns_to_slack.py
中的 python 函数,我正在通过 Terraform 压缩它并将其上传到 AWS。
我收到这个错误:
error creating Lambda Function (1): ValidationException: status code: 400
文件: aws_lambda.tf
data "archive_file" "lambda_zip" {
type = "zip"
source_file = "lambda_functions/sns_to_slack.py"
output_path = "lambda_functions/zips/sns_to_slack.zip"
}
resource "aws_lambda_function" "sns_to_slack" {
filename = "lambda_functions/zips/sns_to_slack.zip"
function_name = "sns_to_slack"
role = aws_iam_role.iam_for_lambda_tf.arn
source_code_hash = data.archive_file.lambda_zip.output_base64sha256
runtime = "python3.8"
}
resource "aws_iam_role" "iam_for_lambda_tf" {
name = "iam_for_lambda_tf"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
POLICY
}
有什么想法吗?
您没有指定 处理程序,因为您使用的是非默认文件名 (sns_to_slack.py
):
resource "aws_lambda_function" "sns_to_slack" {
filename = "lambda_functions/zips/sns_to_slack.zip"
function_name = "sns_to_slack"
handler = "sns_to_slack.lambda_handler"
role = aws_iam_role.iam_for_lambda_tf.arn
source_code_hash = data.archive_file.lambda_zip.output_base64sha256
runtime = "python3.8"
}
lambda_handler
in "sns_to_slack.lambda_handler"
必须改成你实际使用的。
我正在尝试应用下面提到的 terraform 计划,但由于验证错误而失败。
我写了一个存在于目录 lambda_function/sns_to_slack.py
中的 python 函数,我正在通过 Terraform 压缩它并将其上传到 AWS。
我收到这个错误:
error creating Lambda Function (1): ValidationException: status code: 400
文件: aws_lambda.tf
data "archive_file" "lambda_zip" {
type = "zip"
source_file = "lambda_functions/sns_to_slack.py"
output_path = "lambda_functions/zips/sns_to_slack.zip"
}
resource "aws_lambda_function" "sns_to_slack" {
filename = "lambda_functions/zips/sns_to_slack.zip"
function_name = "sns_to_slack"
role = aws_iam_role.iam_for_lambda_tf.arn
source_code_hash = data.archive_file.lambda_zip.output_base64sha256
runtime = "python3.8"
}
resource "aws_iam_role" "iam_for_lambda_tf" {
name = "iam_for_lambda_tf"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
POLICY
}
有什么想法吗?
您没有指定 处理程序,因为您使用的是非默认文件名 (sns_to_slack.py
):
resource "aws_lambda_function" "sns_to_slack" {
filename = "lambda_functions/zips/sns_to_slack.zip"
function_name = "sns_to_slack"
handler = "sns_to_slack.lambda_handler"
role = aws_iam_role.iam_for_lambda_tf.arn
source_code_hash = data.archive_file.lambda_zip.output_base64sha256
runtime = "python3.8"
}
lambda_handler
in "sns_to_slack.lambda_handler"
必须改成你实际使用的。