【发布时间】:2019-12-04 21:00:53
【问题描述】:
我们有几个开发人员,每个人都通过 terraform 将 lambda 函数(从他们自己的计算机)部署到一个共享帐户。为了保持一致性,Terraform 状态文件位于 S3 存储桶中。由于我们是从不同的计算机进行部署,因此函数 zipfile 可能在本地不存在。如何确保始终创建函数 zip?
我在 terraform 模块中使用以下代码
resource "null_resource" "zipfile" {
depends_on = [null_resource.code_dependencies]
provisioner "local-exec" {
command = "cd ${var.source_dir} && zip -r function.zip * -x *.zip"
}
}
resource "aws_lambda_function" "function" {
depends_on = [null_resource.zipfile]
filename = "${var.source_dir}/function.zip"
function_name = var.function_name
role = aws_iam_role.lambda_function_role.arn
handler = var.handler
source_code_hash = filesha256("${var.source_dir}/function.zip")
runtime = var.runtime
}
【问题讨论】:
标签: amazon-web-services aws-lambda terraform