A função Fn::Select recupera elementos de dados de uma lista ou dicionário por índice ou chave.
Declaração
Consultar um ou mais elementos de dados de uma lista ou array
Consultar um único elemento de dados com base em um índice
-
JSON
{ "Fn::Select": [ "index", [ "value1", "value2", ... ], "default_value" ] } -
YAML
-
Sintaxe do nome completo da função:
Fn::Select: - index - - value1 - value2 - ... - default_value -
Sintaxe da forma abreviada:
!Select [index, [value1, value2, ...], default_value]
-
Consultar vários elementos de dados com base em um índice
-
JSON
{ "Fn::Select": [ "start:stop:step", [ "value1", "value2", ... ] ] } -
YAML
-
Sintaxe do nome completo da função:
Fn::Select: - start:stop:step - - value1 - value2 - ... -
Sintaxe da forma abreviada:
!Select [start:stop:step, [value1, value2, ...]]
-
Consultar o valor de uma chave em um dicionário ou tabela de mapeamento
-
JSON
{ "Fn::Select": [ "key", { "key1": "value1", "key2": "value2", ... }, "default_value" ] } -
YAML
-
Sintaxe do nome completo da função:
Fn::Select: - key - key1: value1 key2: value2 ... - default_value -
Sintaxe da forma abreviada:
!Select [key, {key1:value1, key2:value2}, default_value]
-
Parâmetros
index: Índice do elemento de dados a consultar. Valores válidos: 0 a N - 1 ou -N a -1, onde N é o número de elementos na lista. Valores negativos indicam leitura da direita para a esquerda. Se o índice for inválido, a função retorna o valor padrão. Caso nenhum valor padrão esteja especificado, retorna uma string vazia.-
start,stopestep: As posições inicial e final definem o intervalo de elementos a consultar em uma lista. O valor de step determina o intervalo entre os elementos selecionados.start:stop: Os valores válidos seguem as mesmas regras do parâmetro index. Valor padrão de start: 0. Valor padrão de stop: N. A função retorna elementos da posição start + 1 até a posição stop. Se os valores forem inválidos, retorna uma lista vazia.start:stop:step: Valor padrão de step: 1. Se step for negativo, o índice inicial deve ser maior que o índice final. A função selecione elementos a cada intervalo de -(step - 1) de start até stop + 1 e retorna uma lista.
key: Chave no dicionário. A função retorna o valor correspondente. Se a chave não existir, retorna o valor padrão. Caso nenhum valor padrão esteja especificado, retorna uma string vazia.default_value: Valor de fallback retornado quando o índice ou a chave especificada é inválido. Se omitido e o índice ou chave for inválido, retorna uma string vazia.
Valor de retorno
Um ou mais elementos de dados.
Exemplos
Consultar um ou mais elementos de dados de uma lista ou array
-
Neste exemplo, o retorno é "grapes".
!Select ['1', [apples, grapes, oranges, mangoes]]{ "Fn::Select": [ "1", ["apples", "grapes", "oranges", "mangoes"] ] } -
Neste exemplo, o retorno é [2, 3].
!Select ['1:3', [1,2,3,4,5]]{ "Fn::Select": [ "1:3", [1,2,3,4,5] ] } -
Neste exemplo, o retorno é [1, 3, 5].
!Select ['::2', [1,2,3,4,5]]{ "Fn::Select": [ "::2", [1,2,3,4,5] ] } -
Neste exemplo, o retorno é [5, 3].
!Select ['5:0:-2', [1,2,3,4,5]]{ "Fn::Select": [ "5:0:-2", [1,2,3,4,5] ] }
Consultar o valor de uma chave em um dicionário
!Select [key1, {key1: grapes, key2: mangoes}]
{
"Fn:Select": [
"key1",
{
"key1": "grapes",
"key2": "mangoes"
}
]
}
Neste exemplo, o retorno é "grapes".
Consultar um elemento de dados de uma lista delimitada por vírgulas
Parameters:
userParam:
Type: CommaDelimitedList
Default: 10.0.0.1, 10.0.0.2, 10.0.0.3
Resources:
resourceID:
Properties:
CidrBlock:
!Select:
- '0'
- !Ref userParam
Neste exemplo, o retorno é 10.0.0.1.
Funções compatíveis
O valor de índice do Fn::Select aceita a função Ref.
A lista de objetos do Fn::Select aceita as seguintes funções: