機械翻訳について

マップの使用

Oracle Cloud at Customerではなくこのトピックは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}]