【问题标题】:Update aws_lambda function via terraform without deleting the previous version?通过 terraform 更新 aws_lambda 函数而不删除以前的版本?
【发布时间】:2020-10-28 01:22:15
【问题描述】:

我正在尝试使用 terraform 作为管道的一部分来创建 ES 集群和 lambda 函数。

我的用例涉及为 aws_lambda 上传一个带有依赖项的 zip 文件。 lambda_function.py 正在调用一个 ES 端点,需要在创建 terraform 后使用最新的端点进行更新。

问题
terraform 的输出仅在 ES 集群创建后(大约 10 分钟后)显示,而 lambda 在 5 秒内创建。

所以更新 zip mid 脚本是不可能的。

现在我只需要使用更新的 zip 文件更新 lambda,但我需要确保重新运行 terraform 不会删除之前创建的资源。

有什么想法吗?

【问题讨论】:

    标签: python aws-lambda terraform


    【解决方案1】:

    现在我只需要使用更新的 zip 文件更新 lambda,但我需要确保重新运行 terraform 不会删除之前创建的资源。

    如果您重新运行 Terraform,它不会破坏资源,除非您明确调用 destroy。如果有任何变化,它将更新资源。

    1. 我们可以使用显式的Terraform depends_on 子句并将最终的 ES 端点作为 ENV 变量传递给 terraform 中的 lambda 定义。

    2. 将两者作为单独的 terraform 模块进行管理,ES 模块最终会将 ES 端点的值存储在 AWS 参数存储中,然后 Lambda 模块可以引用它或将其作为 ENV var 传递。

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 2020-04-06
      • 2018-09-01
      • 1970-01-01
      • 2017-09-11
      相关资源
      最近更新 更多