terraformからGoogleスプレッドシートの値を取得したいことがたま〜にあるので、少し前にスプレッドシート取得用のproviderを作った。
サービスアカウントにスプレッドシートを共有して
シート名とレンジを指定するとその範囲のデータをJSON文字列としてとってこれる
provider "googlesheets" { credentials_json = file("credentials.json") # credentials_env = "CREDS_ENV_NAME" } data "googlesheets_sheet" "my_sheet" { sheet_id = "..." range = "シート1!A1:B2" } output "values" { value = jsondecode(data.googlesheets_sheet.my_sheet.json) }
googlesheets_sensitive_sheet
リソースを使うとsensitiveな値として扱える。
data "googlesheets_sensitive_sheet" "my_sheet" { sheet_id = "..." range = "シート1!A1:B2" } output "sensitive_values" { value = jsondecode(data.googlesheets_sensitive_sheet.my_sheet.json) sensitive = true }
エフェメラルリソースもある。
ephemeral "googlesheets_sheet" "my_sheet" { sheet_id = "..." range = "シート1!A1:B1" } provider "any_other" { api_key = jsondecode(ephemeral.googlesheets_sheet.my_sheet.json)[0][0] }