[英]Terraform : How lambda to refer s3 in terraform resource `aws_lambda_function`
我的 lambda 节点源代码作为 zip 文件在 s3 存储桶内 我希望在执行aws_lambda_function
时上传该源代码
resource "aws_lambda_function" "terraform_lambda_func" {
s3_bucket = var.bucket_name
s3_key = "${var.zip_file_name}.zip"
function_name = var.lambdaFunctionName
role = aws_iam_role.okta-iam-v1.arn
handler = "index.handler"
runtime = "nodejs16.x"
}
想要它并不能解决问题,因为现在这就是 lambda 与其代码之间的关系的工作方式。
aws_lambda_function
资源所做的是说:“有一个 lambda function,它的代码在那个 S3 存储桶中”。
由于更新存储桶中的文件不会自动更新 lambda 的代码,因此该资源无法直接引用新文件内容。
为此,您需要一个能够将新文件上传到 lambda 的aws_s3_object
资源。
要触发 lambda 的实际更新,您还需要将文件 hash 传递给aws_lambda_function
。 由于aws_s3_object
资源导出了一个 source_hash 属性,您可以这样链接它们。
请参阅当 ZIP package 在 S3 上更改时如何更新 aws_lambda_function Terraform 资源?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.