組み込み関数 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 は、リスト内のデータ要素の数を指定します。負の符号は、データ要素が右から左に読み取られることを示します。無効なインデックスを指定し、そのインデックスにデフォルト値を指定した場合、デフォルト値が返されます。無効なインデックスを指定しても、そのインデックスにデフォルト値を指定しない場合は、空の文字列が返されます。start、stop、step: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 のオブジェクトのリストには、次の関数を使用できます。