2

標準の tf ボイラープレートの場合:

provider "google" {}

projectプロバイダーのデフォルトとを取得するにはどうすればよいですregionか? aws_regionAWS に似たもの(この質問のように) ですが、Google Compute Engine (GCE/GCP) 用です。

場合によっては、これらは環境変数で外部的に指定されます。

export GOOGLE_PROJECT=myproject
export GOOGLE_REGION=europe-west2
terraform apply

hcl コードでオーバーライドされることはあまりありません。

provider "google" {
  project = "myproject"
  region  = "europe-west2"
}

これは失敗しますA managed resource "provider" "google" has not been declared in the root module.:

output "region" {
  value = provider.google.region
}
4

1 に答える 1

4

基本

google_client_configデータ ソースを使用します。

data "google_client_config" "this" {}

output "region" {
  value = data.google_client_config.this.region
}

output "project" {
  value = data.google_client_config.this.project
}

複数のプロバイダー

これは、複数のプロバイダーでも使用できます。

provider "google" {
  region = "europe-west2"
}

provider "google" {
  alias  = "another" // alias marks this as an alternate provider
  region = "us-east1"
}

data "google_client_config" "this" {
  provider = google
}

data "google_client_config" "that" {
  provider = google.another
}

output "regions" {
  value = [data.google_client_config.this.region, data.google_client_config.that.region]
}

出力:

$ terraform init
$ terraform apply --auto-approve

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

regions = [
  "europe-west2",
  "us-east1",
]
于 2020-09-30T09:04:47.007 に答える