运行terraform plan时,输出状态会将设置为false的boot_diagnostics的值更改为null
- boot_diagnostics {
- enabled = false -> null
在门户网站中,boot_diagnostics被禁用。
运行terraform apply时,资源已更改。
申请完成!资源:添加了0个,更改了1个,销毁了0个。
使用的版本:Terraform v0.12.10+ provider.azurerm v1.35.0
问题是:尽管状态等于门户中的实际情况,为什么地形会显示null?
在这种情况下,如果未明确设置,似乎远程系统会将enabled
设置为false
,但是提供程序本身并不知道这一点,因此当您重新计划时,它认为它需要更新参数将enabled
设置回null
,现在Terraform表示根本没有设置参数。
这种情况的通常解决方法是更新您的配置,以将值显式设置为默认值。对于这种情况,这意味着在您的配置中显式设置enabled
:
boot_diagnostics {
enabled = false
}
使用该设置,提供程序应该看到远程对象与配置匹配,因此不打算进行任何更改。理想情况下,提供程序应该为这样的参数设置默认值,其中“未设置”实际上不是远程API中的有效值,但是对于提供程序未完全处理的情况,显式设置该值通常是一个很好的解决方法远程API进行的规范化/转换。