すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:Fn::Select

最終更新日:Jan 16, 2025

組み込み関数 Fn::Select は、インデックスに基づいてリストまたはディクショナリからデータ要素を返します。

宣言

リストまたは配列から 1 つ以上のデータ要素を照会する

インデックスに基づいて単一のデータ要素を照会する

  • JSON

    {
      "Fn::Select": [
        "index",
        [
          "value1",
          "value2",
          ...
        ],
        "default_value"  // デフォルト値
      ]
    }
  • YAML

    • 完全な関数名の構文:

      Fn::Select:
        - index  // インデックス
        - - value1
          - value2
          - ...
        - default_value // デフォルト値
    • 短縮形の構文:

      !Select [index, [value1, value2, ...], default_value]

インデックスに基づいて複数のデータ要素を照会する

  • JSON

    {
      "Fn::Select": [
        "start:stop:step", // 開始:終了:ステップ
        [
          "value1",
          "value2",
          ...
        ]
      ]
    }
  • YAML

    • 完全な関数名の構文:

      Fn::Select:
        - start:stop:step // 開始:終了:ステップ
        - - value1
          - value2
          - ...
    • 短縮形の構文:

      !Select [start:stop:step, [value1, value2, ...]]

ディクショナリまたはマッピングテーブルからキーの値を照会する

  • JSON

    {
      "Fn::Select": [
        "key",  // キー
        {
          "key1": "value1",
          "key2": "value2",
          ...
        },
        "default_value" // デフォルト値
      ]
    }
  • YAML

    • 完全な関数名の構文:

      Fn::Select:
        - key // キー
        - key1: value1
          key2: value2
          ...
        - default_value // デフォルト値
    • 短縮形の構文:

      !Select [key, {key1:value1, key2:value2}, default_value]

パラメーター

  • index:このパラメーターは、照会するデータ要素のインデックスを指定します。インデックスは 0 ~ N - 1 または -N ~ -1 の範囲の整数です。N は、リスト内のデータ要素の数を指定します。負の符号は、データ要素が右から左に読み取られることを示します。無効なインデックスを指定し、そのインデックスにデフォルト値を指定した場合、デフォルト値が返されます。無効なインデックスを指定しても、そのインデックスにデフォルト値を指定しない場合は、空の文字列が返されます。

  • startstopstep:start パラメーターと stop パラメーターは、関数がリストからデータ要素を照会する開始位置と終了位置を指定します。step パラメーターは、ステップサイズを指定します。関数は、step - 1 間隔ごとにデータ要素を照会し、データ要素のリストを返します。

    • start:stop:start、stop、index パラメーターの有効な値に関する要件は同じです。start パラメーターを空のままにすると、start パラメーターのデフォルト値は 0 になります。stop パラメーターを空のままにすると、stop パラメーターのデフォルト値は N になります。関数は、リスト内の start + 1 の位置から stop の位置までのデータ要素を照会し、データ要素のリストを返します。start パラメーターと stop パラメーターの値が無効な場合は、空のリストが返されます。

    • start:stop:step:step パラメーターを空のままにすると、デフォルト値は 1 になります。step パラメーターを負の数に設定した場合、start 位置のデータ要素のインデックスは、stop 位置のデータ要素のインデックスよりも大きくなければなりません。関数は、start 位置から stop + 1 位置まで -(step - 1) 間隔ごとにデータ要素を照会し、データ要素のリストを返します。

  • key:このパラメーターは、ディクショナリ内のキーを指定します。関数は、キーの値を返します。ディクショナリに含まれていないキーを指定し、そのキーにデフォルト値を指定した場合、デフォルト値が返されます。ディクショナリに含まれていないキーを指定しても、そのキーにデフォルト値を指定しない場合は、空の文字列が返されます。

  • default_value:このパラメーターは、指定した index パラメーターまたは key パラメーターが無効な場合の、index パラメーターまたは key パラメーターのデフォルト値を指定します。指定した index パラメーターまたは key パラメーターが無効な場合に default_value パラメーターを空のままにすると、空の文字列が返されます。

戻り値

1 つ以上のデータ要素。

リストまたは配列から 1 つ以上のデータ要素を照会する

  • !Select ['1', [apples, grapes, oranges, mangoes]]
    {
      "Fn::Select": [
        "1",
        ["apples", "grapes", "oranges", "mangoes"]
      ]
    }

    この例では、「grapes」が返されます。

  • !Select ['1:3', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "1:3",
        [1,2,3,4,5]
      ]
    }

    この例では、[2, 3] が返されます。

  • !Select ['::2', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "::2",
        [1,2,3,4,5]
      ]
    }

    この例では、[1, 3, 5] が返されます。

  • !Select ['5:0:-2', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "5:0:-2",
        [1,2,3,4,5]
      ]
    }

    この例では、[5, 3] が返されます。

ディクショナリからキーの値を照会する

!Select [key1, {key1: grapes, key2: mangoes}]
{
  "Fn:Select": [
    "key1",
    {
      "key1": "grapes",
      "key2": "mangoes"
    }
  ]
}

この例では、「grapes」が返されます。

カンマ区切りリストからデータ要素を照会する

Parameters: // パラメーター
  userParam: // ユーザーパラメーター
    Type: CommaDelimitedList // タイプ:カンマ区切りリスト
    Default: 10.0.0.1, 10.0.0.2, 10.0.0.3 // デフォルト:10.0.0.1、10.0.0.2、10.0.0.3
Resources: // リソース
  resourceID: // リソースID
    Properties: // プロパティ
      CidrBlock: // Cidrブロック
        !Select:
          - '0'
          - !Ref userParam

この例では、10.0.0.1 が返されます。

サポートされている関数

Fn::Select の index 値には、Ref 関数を使用できます。

Fn::Select のオブジェクトのリストには、次の関数を使用できます。