正解:B
説明
入力変数は、通常、名前、型、およびデフォルト値を指定することによって定義されます。ただし、タイプとデフォルト
値は厳密には必要ありません。Terraform は、デフォルト値または入力値から変数の型を推測できます。
変数は、ファイルで事前に定義するか、コマンド ライン オプションに含めることができます。このように、最も単純な
変数は単なる名前ですが、タイプと値は入力に基づいて選択されます。
変数 "変数名" {}
テラフォーム適用 -var variable_name="value"
上記のような入力変数は、文字列、リスト、マップ、およびブール値のいくつかの異なるタイプを使用します。ここ
各タイプの定義方法と使用方法の例をいくつか示します。
弦
文字列は構造体ごとに 1 つの値をマークし、複雑な値を単純化して作成するために一般的に使用されます
より使いやすく。以下は、文字列変数の定義の例です。
変数「テンプレート」{
タイプ = 文字列
デフォルト = "01000000-0000-4000-8000-000030080200"
}
その後、文字列変数をリソース プランで使用できます。二重引用符で囲まれた文字列変数は、
下の例のような単純な置換。
ストレージ = var.template
リスト
別のタイプの Terraform 変数リスト。それらは、番号付きの値のカタログのように機能します。各値
リスト内の対応するインデックスによって呼び出すことができます。リスト変数定義の例を次に示します。
変数「ユーザー」{
タイプ = リスト
デフォルト = ["root", "user1", "user2"]
}
リストは文字列と同様にリソース プランで使用できますが、値のインデックスも示す必要があります。
あなたは探している。
ユーザー名 = var.users[0]
地図
マップは、文字列キーと文字列値のコレクションです。これらは、以下に基づいて値を選択するのに役立ちます。
月額料金によるサーバー構成などの事前定義されたパラメーター。
変数「計画」{
タイプ = マップ
デフォルト = {
"5USD" = "1xCPU-1GB"
"10USD" = "1xCPU-2GB"
"20USD" = "2xCPU-4GB"
}
}
一致するキーを使用して、正しい値にアクセスできます。たとえば、以下の変数は計画を設定します
「1xCPU-1GB」に。
plan = var.plans["5USD"]
キーに一致する値は、他のマップで情報を検索するためにも使用できます。例えば、
その下には、プランとそれに対応するストレージ サイズの候補リストがあります。
変数 "storage_sizes" {
タイプ = マップ
デフォルト = {
「1xCPU-1GB」 = 「25」
「1xCPU-2GB」 = 「50」
「2xCPU-4GB」 = 「80」
}
}
これらを使用して、前のセクションで定義した月額料金に基づいて適切なストレージ サイズを見つけることができます。
例。
サイズ = ルックアップ (var.storage_sizes, var.plans["5USD"])
ブール値
利用可能な変数タイプの最後はブール値です。それらは、単純な真または偽の値を使用するオプションを提供します。
たとえば、いつ root ユーザーのパスワードを生成するかを決定する変数が必要な場合があります。
展開。
変数 "set_password" {
デフォルト = false
}
上記のブール値の例は、文字列変数と同様に、正しい値をマークダウンするだけで使用できます。
変数。
create_password = var.set_password
この例では、デフォルトで値が false に設定されています。ただし、デプロイ時に変数を上書きできます。
コマンドライン変数に別の値を割り当てる。
テラフォーム適用 -var set_password="true"