【发布时间】:2017-09-21 20:24:39
【问题描述】:
我正在使用 Terraform 持续部署 lambda 函数。 lambda 模块创建函数和初始别名 [DEV,QA,PROD]。当进行更改时,source_code_hash 会更新,Terraform 会更新代码。挑战在于,当我想将别名从 DEV 更新为 QA 时,它会更新整个堆栈。代码如下。感谢您的帮助。
$ cat main.tf
module "sample" {
source = "./lambda"
name = "sample"
runtime = "nodejs6.10"
role = "${aws_iam_role.iam_role_for_lambda.arn}"
filename = "../Archive.zip"
source_code_hash = "${base64sha256(file("../Archive.zip"))}"
source_dir = "../sample"
alias = "${var.env_name}"
}
$ cat module/main.tf
resource "aws_lambda_function" "lambda" {
filename = "${var.filename}"
function_name = "${var.name}"
role = "${var.role}"
handler = "${var.name}.${var.handler}"
runtime = "${var.runtime}"
source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
publish = "true"
}
resource "aws_lambda_alias" "lambda_alias" {
count = "2"
name = "${element(var.alias, count.index)}"
#name = "${var.alias}"
description = "${var.name}"
function_name = "${aws_lambda_function.lambda.arn}"
function_version = "${aws_lambda_function.lambda.version}"
}
【问题讨论】:
标签: aws-lambda terraform