程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果 Resource.Schema 属性在 Terraform 中发生更改,则避免触发更新大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如果 resource.scheR_802_11845@a 属性在 Terraform 中发生更改,则避免触发更新?

开发过程中遇到如果 resource.scheR_802_11845@a 属性在 Terraform 中发生更改,则避免触发更新的问题如何解决?下面主要结合日常开发的经验,给出你关于如果 resource.scheR_802_11845@a 属性在 Terraform 中发生更改,则避免触发更新的解决方法建议,希望对你解决如果 resource.scheR_802_11845@a 属性在 Terraform 中发生更改,则避免触发更新有所启发或帮助;

我试图弄清楚当 resource.scheR_802_11845@a 属性之一发生更改时是否可以阻止资源更新。

本质上,我正在构建一个管理基础设施的提供商。我有更新固件的资源。类似的东西:

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.EXEtarget_firmware_image 上方更改。

我不知道这是否可能。如果我自己研究发现 CustomDiff 函数要添加到架构中,但我认为这与我的场景不符。

你觉得我还能做些什么吗?

谢谢!

解决方法

只是在这里发布我是如何最终做到的。

为了避免在路径改变而不是文件名改变时触发更新,我发现 DiffSuppressFunc 函数在这里变得非常方便

"target_firmware_image": {
        Type:     scheR_802_11845@a.TypeString,required: true,Description: "Target firmware image used for firmware update on the redfish instance. " +
            "Make sure you place your firmware packages in the same folder as the module and set it as follows: \"${path.modulE}/BIOS_FXC54_WN64_1.15.0.EXE\"",// DiffSuppressFunc will allow moving fw packages through the filesystem without triggering an update if so.
        // At the moment it uses filename to see if they're the same. We need to strengthen that by somehow using hashing
        DiffSuppressFunc: func(k,old,new String,d *scheR_802_11845@a.resourceData) bool {
            if filepath.base(old) == filepath.base(new) {
                return true
            }
            return false
        },}

通过使用 filepath.base() 检查旧值和新值,我可以确定文件名是否相同,无论文件放在什么路径中。

我想在未来通过实现文件散列来改进这种行为,所以即使文件名也无关紧要,但我会留待新版本。

谢谢!

大佬总结

以上是大佬教程为你收集整理的如果 Resource.Schema 属性在 Terraform 中发生更改,则避免触发更新全部内容,希望文章能够帮你解决如果 Resource.Schema 属性在 Terraform 中发生更改,则避免触发更新所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。