Fn::FindInMap enhancements - AWS CloudFormation

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 a TopLevelKey e/ou a SecondLevelKey não puderem ser encontradas no mapa MapName. 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::