地形。访问提供商指定的当前 Oracle Cloud 租户

Terraform. Access the current Oracle Cloud tenancy specified by provider

我的 Terraform 脚本有一个 OCI 提供程序:

provider "oci" {
    region = "eu-frankfurt-1"
}

其中所有属性都是通过环境变量定义的 as specified by Oracle

export TF_VAR_tenancy_ocid=...
export TF_VAR_user_ocid=...

脚本的其他元素需要租户的 ID。有没有办法在不再次读取环境变量的情况下获取 ID 或当前租户?

Terraform 的 AWS 提供商允许将当前帐户引用为:

data "aws_caller_identity" "current" {}

output "account_id" {
   value = data.aws_caller_identity.current.account_id
}

OCI 有类似的东西吗?

由于租户 ID 已经在环境变量 TF_VAR_tenancy_ocid 中设置,您只需声明一个变量:

variable "tenancy_ocid" {
   description = "Tenancy OCID"
}

确保上面的变量名与 TF_VAR_

之后的任何内容完全匹配

Terraform 使用 TF_VAR_variable-name

设置的环境变量自动设置这些变量的值

然后您可以使用如下值:

output "account_id" {
   value = var.tenancy_ocid
}

您还可以在 terraform oci 提供程序文档中查找数据源 docs