1
我正在使用Terraform連續部署lambda函數。 lambda模塊創建函數和初始化別名[DEV,QA,PROD]。當更改時,source_code_hash
已更新,Terraform更新代碼。面臨的挑戰是,當我想更新從DEV到QA的別名時,它會更新整個堆棧。代碼如下。感謝您的幫助。terraform環境和更新單個資源
$ 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}"
}
感謝您的答覆。挑戰在於,對於這種用例,DEV,QA和PROD都在同一個帳戶中。我最終做的是使用Terraform來管理lambda函數代碼並通過aws cli更新別名。再次感謝。 – kilomo
不明白你在說什麼。當然,這些代碼在同一個帳戶內工作,你擔心什麼? – BMW