在win10机器上使用TF 0.7.2
我正在尝试使用TF 0.7.1中引入的新"archive_file"资源,在AWS中为lambda函数的开发设置一个编辑/上传周期
我的配置是这样的:
resource "archive_file" "cloudwatch-sumo-lambda-archive" {
source_file = "${var.lambda_src_dir}/cloudwatch/cloudwatchSumologic.js"
output_path = "${var.lambda_gen_dir}/cloudwatchSumologic.zip"
type = "zip"
}
resource "aws_lambda_function" "cloudwatch-sumo-lambda" {
function_name = "cloudwatch-sumo-lambda"
description = "managed by source project"
filename = "${archive_file.cloudwatch-sumo-lambda-archive.output_path}"
source_code_hash = "${archive_file.cloudwatch-sumo-lambda-archive.output_sha}"
handler = "cloudwatchSumologic.handler"
...
}
这在我第一次运行它时有效- TF创建lambda zip文件,上传它并在AWS中创建lambda。问题出现在更新lambda时。
如果我在上面的例子中编辑cloudwatchsumologics .js文件,TF似乎不知道源文件已经更改-它不会将新文件添加到zip中,也不会将新的lambda代码上传到AWS。
是我在配置中做错了什么,还是archive_file资源不应该以这种方式使用?
您可能看到一个bug。我在0.7.7,现在的问题是SHA的变化,即使你不做任何改变。Hashicorp将在0.7.8
中将此资源更新为数据源。https://github.com/hashicorp/terraform/pull/8492您应该像这样使用base64散列:
source_code_hash = "${archive_file.cloudwatch-sumo-lambda-archive.output_base64sha256}"