マップの使用
このトピックはOracle Cloud at Customerには適用されません。
Oracle Cloud Stackテンプレート・ファイルを編集して、データ構造を定義して使用します。
マップを使用すると、テンプレート内の静的な値を定義し、リソースなどの他のテンプレート・コンポーネント内のこれらの値を参照できます。 次のようにマップ内のデータを整理します。
-
mapには、1つ以上のsubmapsが含まれています。
-
submapには、1つ以上の「キーと値のペア」が含まれています。
マップの定義
テンプレート・ファイルのmappingsノード内のマップを定義します。 このノード内に、1つまたは複数のマップ・ノードを追加します。
mappings:
map1:
...
map2:
...
各マップ・ノード内に、1つ以上のサブマップ・ノードを追加します。 各サブマップには、1つ以上のキーと値のペアを含むJSONオブジェクトが含まれています。
mappings:
map1:
submap1: {"key1":"value1","key2":"value2", ...}
submap2: ...
...
例:
mappings:
shapeMap:
database: {"dev":"oc3","prod":"oc4"}
マップ値の使用
FindInMap関数を使用してマップ内の値を取得します。この関数は3つの引数をとります。
-
マップの名前
-
サブマップの名前
-
値を使用したいキー
たとえば、次のマップでprodキーの値を取得するとします。
mappings:
shapeMap:
database: {"dev":"oc3","prod":"oc4"}
次の引数を指定してFindInMapを実行すると、値oc4になります。
"Fn::FindInMap": ["shapeMap", "database", "prod"]これらの3つの引数は、他の関数を使用して動的に決定できます。 たとえば、ユーザーがテンプレート・パラメータとしてキー名(devまたはprod)を指定した場合は、GetParam関数を使用します。
"Fn::FindInMap": ["shapeMap", "database", {"Fn::GetParam": stage}]