Terraform,忽略特定应用程序设置 azurerm

Her*_*lin 3 terraform azure-rm

我正在使用 Terraform,现在我的情况是,随着基础设施可能发生变化,我的应用程序的所有应用程序设置都会被填充。这样,一切都是自动的。

但是,我的 Linux 消费计划功能应用程序有一个问题,该应用程序的应用程序设置需要在部署期间进行设置。WEBSITE_RUN_FROM_PACKAGE 是在部署期间设置为 URL 的值。

我的问题是 terraform 会删除该值或将其设置为我设置的任何值。

在 terraform 部署期间如何使该值保持不变?

要么从 azure 获取价值,要么忽略 terraform 中的价值?

我发现了这个,但它似乎不适用于应用程序设置部分。

https://www.terraform.io/docs/configuration/resources.html#ignore_changes

我的测试:

resource "azurerm_function_app" "shipping-broker-msw-func" {
  name                       = "shipping-broker-msw-func"
  ...

  app_settings = {
    ...
    "WEBSITE_RUN_FROM_PACKAGE"        = "URL_Form_CD"
  }

   lifecycle {
    ignore_changes = [
      app_settings["WEBSITE_RUN_FROM_PACKAGE"],
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ose 7

来自 Terraform 文档:https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#ignore_changes

在此输入图像描述

所以看来原因是,当您第一次创建应用程序服务时,您需要包含密钥(可能带有虚拟值),以便稍后能够指定您想要忽略它。

如果您一开始没有包含密钥,您仍然可以稍后添加。因此,只需在您的配置中添加带有虚拟值的密钥,然后ignore_changes似乎就可以工作了。就我而言,它有效。

  • 文档链接已过时,新链接为:https://www.terraform.io/docs/language/meta-arguments/lifecycle.html#ignore_changes (2认同)