You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Terraform中配置OCI Defined Tags报错,如何正确设置?

问题原因及解决方案

错误的核心是OCI的Defined Tags格式要求与AWS不同,你当前的写法不符合OCI Terraform Provider对defined_tags的结构规范:

  • AWS标签是简单键值对,但OCI的Defined Tags要求两层嵌套结构:第一层是标签命名空间(Namespace),第二层是该命名空间下的具体键值对。
  • 直接写Lifecycle = "persistent"属于结构错误,Terraform无法识别该格式。

修正后的代码示例

如果已经存在名为MyNamespace的标签命名空间(需提前在OCI控制台或通过Terraform创建),修改defined_tags部分如下:

resource "oci_core_public_ip" "public-ip-address-1" {
  compartment_id    = oci_identity_compartment.tf-compartment.id
  display_name      = "reserved public ip"
  lifetime          = "RESERVED"
  private_ip_id     = data.oci_core_private_ips.attach-public-ip-address-1.private_ips[0]["id"]
  defined_tags = {
    # 格式:"命名空间" = { "键" = "值" }
    "MyNamespace" = {
      "Lifecycle" = "persistent"
    }
  }
  lifecycle {
    prevent_destroy = true
  }
}

关于标签声明的疑问

不需要在额外地方声明标签,但必须确保使用的标签命名空间已在OCI租户中存在。如果还没有对应命名空间,可先创建:

resource "oci_identity_tag_namespace" "my_tag_namespace" {
  compartment_id = oci_identity_compartment.tf-compartment.id
  name           = "MyNamespace"
  description    = "管理资源生命周期的标签命名空间"
}

内容的提问来源于stack exchange,提问作者paradroid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:25:26