Fn::FindInMap enhancements
Cuando agregue la transformación de AWS::LanguageExtensions
a una plantilla de AWS CloudFormation, puede usar funciones intrínsecas para definir los campos de Fn::FindInMap
. También puede utilizar un nuevo campo opcional para devolver un valor predeterminado si no se encuentra un mapeo.
Para obtener más información sobre la transformación de AWS::LanguageExtensions
, consulte Transformación AWS::LanguageExtensions.
Para obtener más información acerca de la función intrínseca Fn::FindInMap
, consulte Fn::FindInMap.
Declaración
JSON
{ "Fn::FindInMap" : [ "
MapName
", "TopLevelKey
", "SecondLevelKey
", {"DefaultValue": "DefaultValue
"} ] }
YAML
Sintaxis del nombre de función completo:
Fn::FindInMap:
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
Sintaxis de la forma abreviada:
!FindInMap
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
Parámetros
- DefaultValue
-
El valor que
Fn::FindInMap
resolverá siTopLevelKey
oSecondLevelKey
no se pueden encontrar en el mapa deMapName
. Este campo es opcional.
Todos los parámetros MapName
, TopLevelKey
, SecondLevelKey
y DefaultValue
pueden ser una función intrínseca siempre que pueda resolverse en un valor válido durante la transformación.
Ejemplo
El siguiente es un ejemplo del uso de funciones intrínsecas para definir la clave de nivel 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] #...
A continuación se muestra un ejemplo, utilizando valores predeterminados:
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 #...
Funciones compatibles
Puede utilizar las siguientes funciones en los parámetros de las mejoras de Fn::FindInMap:
:
-
Fn::Split
: a menos que se use como valor predeterminado,Fn::Split
debe usarse junto con funciones intrínsecas que producen una cadena, comoFn::Join
oFn::Select
.