【问题标题】:How to make Terraform archive_file resource pick up changes to source files?如何使 Terraform archive_file 资源获取对源文件的更改?
【发布时间】:2017-01-02 12:52:28
【问题描述】:

在 Win 10 机器上使用 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。

如果我在上面的示例中编辑 cloudwatchSumologic.js 文件,TF 似乎不知道源文件已更改 - 它不会将新文件添加到 zip 并且不会上传新的 lambda 代码到 AWS。

是我在配置中做错了什么,还是 archive_file 资源不应该以这种方式使用?

【问题讨论】:

    标签: aws-lambda terraform


    【解决方案1】:

    您可能会看到一个错误。我在 0.7.7 上,现在的问题是 SHA 更改,即使您不进行更改。 Hashicorp 将在 0.7.8 中将此资源更新为数据源

    https://github.com/hashicorp/terraform/pull/8492

    【讨论】:

    • 是的 - 我尝试在邮件列表上发布它,但没有回复。无论如何,还有其他问题。特别是围绕 x 平台创建存档、zip 排序、路径分隔符等。我认为 TF 不是复杂 lambda 基础架构的正确解决方案。
    猜你喜欢
    • 2020-03-26
    • 2019-09-26
    • 2022-10-19
    • 1970-01-01
    • 2019-07-19
    • 2022-01-13
    • 2021-01-03
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多