我正在使用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"],
]
}
}
答案 0 :(得分:2)
从Terraform文档:https://www.terraform.io/docs/configuration/resources.html#ignore_changes
所以看来原因是,当您首次创建应用程序服务时,需要包括键(可能带有伪值),以便以后可以指定要忽略它。
如果一开始没有包含密钥,则以后仍可以添加。因此,只需在您的配置中添加带有虚拟值的键,然后ignore_changes
就可以正常工作。就我而言,它奏效了。