質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Q&A

解決済

1回答

1648閲覧

terraformでループした結果を渡したい

nyonyosuke

総合スコア73

Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

0グッド

1クリップ

投稿2022/05/02 03:29

編集2022/05/02 03:32

下記のコードでgoogle_secret_manager_secretを3つ作っています。その3つについて同じdummyデータを入れたいのですが、どのようにループを回せばdummyデータが入れれるのでしょうか?
google_secret_manager_secretで作成はされますが、次のgoogle_secret_manager_secret_versionで値がセットされません。

main.tf

resource "google_secret_manager_secret" "gcp-secret" { replication { automatic = true } for_each = var.secret_config secret_id = each.key labels = { label = each.value.label } } resource "google_secret_manager_secret_version" "gcp-sample-secret" { for_each = var.secret_config (←これだと何もセットされない) secret = google_secret_manager_secret.gcp-secret.id secret_data = "dummyData" }

environments/dev.tfvars

secret_config = { "analyzed_aws_access_key" = { label = "analyzed_aws_key" } "aws_secret_key" = { label = "analyzed_aws_secret_access" } "cloudrun_token" = { label = "cloudrun_token" } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyonyosuke

2022/05/02 05:06

下記のようにエラーになってしまいましたので ``` │ Error: Missing resource instance key │ │ on main.tf line 22, in resource "google_secret_manager_secret_version" "schoo-sample-secret": │ 22: secret = google_secret_manager_secret.schoo-secret.id[each.key] │ │ Because google_secret_manager_secret.schoo-secret has "for_each" set, its │ attributes must be accessed on specific instances. │ │ For example, to correlate with indices of a referring resource, use: │ google_secret_manager_secret.schoo-secret[each.key] ╵ ``` 修正を行い下記のようにしたのですが、 ``` resource "google_secret_manager_secret_version" "schoo-sample-secret" { secret = google_secret_manager_secret.schoo-secret.0.id secret_data = "dummyData" } ``` 下記のようにエラーになります。登録されている3つのidは取得しているようですがこれをそれぞれ取り出す方法を教えていただけますでしょうか ``` ╷ │ Warning: Value for undeclared variable ╷ │ │ Error: Invalid index │ │ on main.tf line 22, in resource "google_secret_manager_secret_version" "schoo-sample-secret": │ 22: secret = google_secret_manager_secret.schoo-secret.0.id │ ├──────────────── │ │ google_secret_manager_secret.schoo-secret is object with 3 attributes │ │ The given key does not identify an element in this collection value. An │ object only supports looking up attributes by name, not by numeric index. ╵ ```
68user

2022/05/02 08:10

secret = google_secret_manager_secret.gcp-secret[each.key].id じゃないでしょうか。
guest

回答1

0

ベストアンサー

手元の terraform 1.1.9 では、下記のようにご指導されました。

│ Error: Missing resource instance key │ │ on x.tf line 23, in resource "google_secret_manager_secret_version" "gcp-sample-secret": │ 23: secret = google_secret_manager_secret.gcp-secret.id │ │ Because google_secret_manager_secret.gcp-secret has "for_each" set, its attributes must be accessed on specific instances. │ │ For example, to correlate with indices of a referring resource, use: │ google_secret_manager_secret.gcp-secret[each.key]

投稿2022/05/02 04:07

68user

総合スコア2005

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問