【问题标题】:Terraform, Ignore specific app setting azurermTerraform,忽略特定的应用程序设置 azurerm
【发布时间】:2020-10-14 07:30:41
【问题描述】:

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

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

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

如何让这个值在 terraform 部署期间保持不变?

要么从 azure 获取值,要么忽略 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"],
    ]
  }
}

【问题讨论】:

  • 我遇到了同样的问题。如果您找到解决方案,请在此处发布。在我的情况下,我将一个 docker 容器配置到 Web 应用程序中,这是为了我的设置而不是基础设施设置,但 Terraform 将其作为任何其他应用程序设置进行跟踪。因此,当我更改容器时,它会像基础设施发生变化一样弹出,但我不希望 terraform 跟踪它。

标签: terraform azure-rm


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 2019-09-27
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
相关资源
最近更新 更多