Fn::FindInMap enhancements
Quando você adiciona a transformação AWS::LanguageExtensions
a um modelo do AWS CloudFormation, pode usar funções intrínsecas para definir os campos de Fn::FindInMap
. Você também poderá usar um novo campo opcional para retornar um valor padrão se um mapeamento não for encontrado.
Para mais informações sobre a transformação AWS::LanguageExtensions
, consulte Transformação AWS::LanguageExtensions.
Para obter mais informações sobre a função intrínseca Fn::FindInMap
, consulte Fn::FindInMap.
Declaração
JSON
{ "Fn::FindInMap" : [ "
MapName
", "TopLevelKey
", "SecondLevelKey
", {"DefaultValue": "DefaultValue
"} ] }
YAML
Sintaxe para o nome da função completo:
Fn::FindInMap:
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
Sintaxe para a forma resumida:
!FindInMap
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
Parâmetros
- DefaultValue
-
O valor para o qual
Fn::FindInMap
será resolvido se aTopLevelKey
e/ou aSecondLevelKey
não puderem ser encontradas no mapaMapName
. Esse campo é opcional.
Todos os parâmetros MapName
, TopLevelKey
, SecondLevelKey
e DefaultValue
podem ser uma função intrínseca, desde que possam ser resolvidos para um valor válido durante a transformação.
Exemplo
Este é um exemplo do uso das funções intrínsecas para definir a chave de nível superior:
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "MyMap", { "Fn::Select": [ 0, { "Fn::Split": [ "|", { "Ref": "InputKeys" } ] } ] }, "SecondKey" ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey] #...
Este é um exemplo do uso dos valores padrão:
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "InstanceConfiguration", { "Ref": "AWS::Region" }, "Type", { "DefaultValue": "m5.small" } ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap - 'InstanceConfiguration' - !Ref 'AWS::Region' - 'Type' - DefaultValue: m5.small #...
Funções compatíveis
Você pode usar as seguintes funções nos parâmetros de melhorias de Fn::FindInMap:
:
-
Fn::Split
: a menos que seja usada para o valor padrão,Fn::Split
deve ser usada em conjunto com funções intrínsecas que produzam uma string, comoFn::Join
ouFn::Select
.