Terraform Data Sources とは
Terraform の data ブロックで定義できるデータリソースのこと。
特定のリソースからデータを読み取り、結果をエクスポートすることで、リソースブロックからの読み取りを可能にする。
terraform のドキュメントに記載のあるものしかデータを取得できない。しかし、現時点で google_provider では GCP の大半のリソースのデータソースが用意されている。
きっかけ
GCP 上の特定のプロジェクトをフィルタした予算を作成するのに、プロジェクト番号を拾ってくる必要があったため
使用方法
使用環境は以下
- terraform == 1.3.9
- google_provide == 4.83.0
data "google_projects" "billing_budget_projects" {
filter = "name:billing-*"
}
data "google_billing_account" "account" {
billing_account = "000000-0000000-0000000-000000"
}
resource "google_billing_budget" "budget" {
billing_account = data.google_billing_account.account.id
display_name = "Example Billing Budget"
budget_filter {
projects = for project in google_projects.billing_budget_projects.number : "projects/${project}"
}
amount {
specified_amount {
currency_code = "USD"
units = "1000"
}
}
threshold_rules {
threshold_percent = 0.5
}
}