Este é o novo Guia de referência de modelos do 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 padrão Fn::FindInMap oferece suporte somente para Fn::FindInMap e Ref como funções intrínsecas aninhadas. A transformação AWS::LanguageExtensions remove esta limitação, permitindo que você use uma variedade maior de funções intrínsecas para definir os parâmetros de Fn::FindInMap.
nota
O parâmetro DefaultValue for Fn::FindInMap não requer mais a transformação AWS::LanguageExtensions. Você pode usar DefaultValue em qualquer modelo do CloudFormation. Para obter mais informações, consulte Fn::FindInMap.
Declaração
JSON
{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey"] }
Se você quiser especificar um valor alternativo para quando uma chave não for encontrada no mapeamento, inclua um DefaultValue:
{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey", {"DefaultValue": "DefaultValue"}] }
YAML
Sintaxe para o nome da função completo:
Fn::FindInMap: [MapName,TopLevelKey,SecondLevelKey]
Sintaxe para a forma resumida:
!FindInMap [MapName,TopLevelKey,SecondLevelKey]
Se você quiser especificar um valor alternativo para quando uma chave não for encontrada no mapeamento, inclua um DefaultValue:
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
Com a transformação AWS::LanguageExtensions, os parâmetros MapName, TopLevelKey, SecondLevelKey e DefaultValue podem, cada um, ser uma função intrínseca, desde que resultem em um valor válido durante a transformação.
Exemplos
Os exemplos a seguir demonstram como usar funções intrínsecas nos parâmetros de Fn::FindInMap quando você adiciona a transformação AWS::LanguageExtensions.
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 Fn::FindInMap com a transformação AWS::LanguageExtensions:
-
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
Para obter mais informações e exemplos que mostram como usar a função intrínseca Fn::FindInMap, incluindo o parâmetro DefaultValue, consulte Fn::FindInMap.
Para mais informações sobre a transformação AWS::LanguageExtensions, consulte AWS::LanguageExtensionsTransformação.