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

时间:2020-10-14 07:30:41

标签: terraform azure-rm

我正在使用Terraform,现在由于基础架构可能会发生变化,因此我的应用程序所有设置都被填充。这样,这是全自动的。

但是,我的linux消费计划Functions应用程序遇到了问题,该应用程序的appsetting需要在部署期间进行设置。 WEBSITE_RUN_FROM_PACKAGE是在部署过程中设置为URL的值。

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

如何在Terraform部署期间保持此值不变?

是从天蓝色获取值还是忽略terraform中的值?

我发现了这一点,但似乎不适用于appsettings部分。

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"],
    ]
  }
}

1 个答案:

答案 0 :(得分:2)

从Terraform文档:https://www.terraform.io/docs/configuration/resources.html#ignore_changes

enter image description here

所以看来原因是,当您首次创建应用程序服务时,需要包括键(可能带有伪值),以便以后可以指定要忽略它。

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