我在嘗試在 Amazon S3 上的 zip 檔案中參考用戶定義的元資料欄位時遇到了一些問題。我正在嘗試使用此元資料欄位來幫助 Terraform 檢測 zip 檔案是否已更改,以便我可以發布新版本的 Lambda 函式。
這些是 S3 上的元資料欄位:
System defined Content-Type application/zip
User defined x-amz-meta-sha256 241461f66ba6bec6418679888f9c8b5210c1f183aabfe86d1cc2ab71cdffdcfc
這是我對 Terraform 配置的看法:
data "aws_s3_bucket_object" "lambda" {
bucket = "bucket"
key = "lambda/lambda.zip"
}
resource "aws_lambda_function" "lambda" {
function_name = "lambda_name"
s3_bucket = "bucket"
s3_key = "lambda/lambda.zip"
source_code_hash = "${data.aws_s3_bucket_object.lambda.metadata.x-amz-meta-sha256}"
handler = "index.handler"
runtime = "nodejs14.x"
publish = true
role = aws_iam_role.lambda_exec.arn
vpc_config {
subnet_ids = "subnet_ids"
security_group_ids = "security_group_ids"
}
}
當我嘗試運行“terraform plan”時出現此錯誤:
Error: Missing map element
on ../../../modules/lambda/main.tf line 14, in resource "aws_lambda_function" "lambda":
14: source_code_hash = "${data.aws_s3_bucket_object.lambda.metadata.x-amz-meta-sha256}"
├────────────────
│ data.aws_s3_bucket_object.lambda.metadata is map of string with 1 element
This map does not have an element with the key "x-amz-meta-sha256".
我不確定“元資料”是否是原生 Terraform 地圖資料型別。
uj5u.com熱心網友回復:
它應該是:
source_code_hash = data.aws_s3_bucket_object.lambda.metadata.Sha256
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400801.html
標籤:亚马逊网络服务 亚马逊-s3 aws-lambda 地形 terraform-provider-aws
