【发布时间】:2021-04-22 17:22:38
【问题描述】:
我试图弄清楚当 Resource.Schema 属性之一发生更改时是否可以阻止资源更新。
本质上,我正在构建一个管理基础架构的提供商。我有一个更新固件的资源。比如:
resource "redfish_simple_update" "update" {
transfer_protocol = "HTTP"
target_firmware_image = "/home/mikeletux/BIOS_FXC54_WN64_1.15.0.EXE"
}
如您所见,target_firmware_image 确实指的是我的固件包的完整路径。我希望能够在不触发更新的情况下更改目录。 IE。例如,通过 /home/mikeletux/Downloads/BIOS_FXC54_WN64_1.15.0.EXE 在 target_firmware_image 上进行更改。
我不知道这是否可能。如果我自己进行了研究,我发现要将 CustomDiff 函数添加到架构中,但我认为这与我的场景不匹配。
你觉得我还能做些什么吗?
谢谢!
【问题讨论】:
-
您可以查看
aws_lambda_function在哪里更改source_code_hash,然后它会触发更新并使资源忽略文件名更改。不过,这种行为确实需要您将文件的哈希值作为参数显式传递给资源。 -
或者你可以用另一种方式来解决这个问题,只需 gitignore 二进制路径并确保始终将其复制到模块的路径中,然后使用
path.module引用它,即使你正在运行 Terraform Terraform 代码所在的不同目录结构的不同机器。 -
嘿@ydaetskcoR,感谢您的回答,我想我会遵循您建议的第二个选项。非常感谢,非常感谢!