繁体   English   中英

Terraform:lambda 如何在 terraform 资源 `aws_lambda_function` 中引用 s3

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM