Este é o novo Guia de referência de modelos do AWS CloudFormation. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o Guia do usuário do AWS CloudFormation.
Fn::FindInMap
enhancements
A transformação AWS::LanguageExtensions aprimora a funcionalidade da função intrínseca Fn::FindInMap nos modelos do CloudFormation.
A função Fn::FindInMap é usada para recuperar um valor de um mapeamento definido na seção Mappings de um modelo do CloudFormation. No entanto, a função Fn::FindInMap padrão tem limitações, como a incapacidade de lidar com mapeamentos ausentes ou usar uma função Fn::FindInMap com algumas funções intrínsecas incorporadas.
A transformação AWS::LanguageExtensions aborda essas limitações introduzindo os seguintes aprimoramentos:
-
Suporte ao valor padrão: você poderá especificar um valor padrão a ser retornado se um mapeamento não for encontrado.
-
Suporte à função intrínseca: também é possível usar uma variedade maior de funções intrínsecas para definir os campos de
Fn::FindInMapdo que com a funçãoFn::FindInMappadrão.
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::FindInMapserá resolvido se aTopLevelKeye/ou aSecondLevelKeynã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.
Exemplos
Os exemplos a seguir demonstram como definir os campos de Fn::FindInMap quando você adiciona a transformação AWS::LanguageExtensions.
Usar um valor padrão
Este é um exemplo do uso dos valores padrão na função Fn::FindInMap.
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "RegionMap", { "Ref": "AWS::Region" }, "InstanceType", { "DefaultValue": "t3.micro" } ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap - 'RegionMap' - !Ref 'AWS::Region' - 'InstanceType' - DefaultValue: t3.micro #...
Uso das funções intrínsecas para definir a chave de nível superior
Este é um exemplo do uso de uma função Fn::FindInMap com as funções intrínsecas Fn::Select e Fn::Split incorporadas nela 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] #...
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::Splitdeve ser usada em conjunto com funções intrínsecas que produzam uma string, comoFn::JoinouFn::Select.
Recursos relacionados
Consulte mais informações e exemplos que mostram como usar a função intrínseca Fn::FindInMap em Fn::FindInMap.
Para mais informações sobre a transformação AWS::LanguageExtensions, consulte Transformação AWS::LanguageExtensions.