Terraform OCI,如何防止删除附加到计算的核心卷?

Terraform OCI, how to prevent deletion of a core volume attached to compute?

如何使用 Terraform 防止删除附加到 OCI 实例的核心卷?

使用 Terraform v1.1.6,我注意到提供商 AWS 可以启用 enable_deletion_protection,但在 OCI 上没有这样的选项,例如:

resource "oci_core_volume" "volume_1" {
  count               = 1
  availability_domain = data.oci_identity_availability_domains.ad_list.availability_domains[0]["name"]
  compartment_id      = "test"
  display_name        = "test_disk"
  size_in_gbs         = 50
  vpus_per_gb         = 10
}

我查看了 lifecycle 事件,但是 documentation for oci_core_volume 没有它们在 oci_core_volume

上的用法示例
lifecycle {

}

我想确保对我的“oci_core_instance”实例的任何更新都不会删除他们当前所做的“oci_core_volume”,而应该重新附加更新。

oci_core_volume 文档没有给您示例,因为 lifecycle 事件是 meta-arguments 并且它们的用法对于每种类型的资源都是相同的。您可以在 lifecycle documentation.

中找到适用于所有类型资源的示例

您的情况下的用法示例是:

resource "oci_core_volume" "volume_1" {
  count               = 1
  availability_domain = data.oci_identity_availability_domains.ad_list.availability_domains[0]["name"]
  compartment_id      = "test"
  display_name        = "test_disk"
  size_in_gbs         = 50
  vpus_per_gb         = 10

  lifecycle {
    prevent_destroy = true
  }
}

请记住,只要资源被标记为销毁,prevent_destroy 就会抛出错误。您仍然可以从外部手动销毁资源。