Fn::FindInMap enhancements - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fn::FindInMap enhancements

La AWS::LanguageExtensions transformation améliore la fonctionnalité de la fonction Fn::FindInMap intrinsèque dans les CloudFormation modèles.

La Fn::FindInMap fonction est utilisée pour récupérer une valeur à partir d'un mappage défini dans la Mappings section d'un CloudFormation modèle. Cependant, la Fn::FindInMap fonction standard présente des limites, telles que l'incapacité de gérer les mappages manquants ou d'utiliser une Fn::FindInMap fonction contenant certaines fonctions intrinsèques intégrées.

La AWS::LanguageExtensions transformation répond à ces limites en introduisant les améliorations suivantes :

  • Prise en charge des valeurs par défaut — Vous pouvez spécifier une valeur par défaut à renvoyer si aucun mappage n'est trouvé.

  • Support des fonctions intrinsèques — Vous pouvez également utiliser un plus large éventail de fonctions intrinsèques pour définir les champs de Fn::FindInMap qu'avec la Fn::FindInMap fonction standard.

Déclaration

JSON

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey", {"DefaultValue": "DefaultValue"} ] }

YAML

Syntaxe pour le nom complet de la fonction :

Fn::FindInMap: - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

Syntaxe pour la forme courte :

!FindInMap - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

Paramètres

DefaultValue

Valeur de résolution de Fn::FindInMap si TopLevelKey et/ou SecondLevelKey sont introuvables sur la carte MapName. Ce champ est facultatif.

Tous les paramètres MapName, TopLevelKey, SecondLevelKey et DefaultValue peuvent être des fonctions intrinsèques tant qu'ils peuvent être résolus en une valeur valide lors de la transformation.

Exemples

Les exemples suivants montrent comment définir les champs Fn::FindInMap lorsque vous ajoutez la AWS::LanguageExtensions transformation.

Utilisation d'une valeur par défaut

Voici un exemple d'utilisation d'une valeur par défaut dans la Fn::FindInMap fonction.

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 #...

Utilisation de fonctions intrinsèques pour définir la clé de niveau supérieur

Voici un exemple d'utilisation d'une Fn::FindInMap fonction avec Fn::Select les fonctions Fn::Split intrinsèques intégrées pour définir la clé de niveau supérieur.

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] #...

Fonctions prises en charge

Vous pouvez utiliser les fonctions suivantes dans les paramètres des améliorations Fn::FindInMap: :

Ressources connexes

Pour plus d'informations et des exemples illustrant l'utilisation de la fonction Fn::FindInMap intrinsèque, consultezFn::FindInMap.

Pour plus d'informations sur la transformation AWS::LanguageExtensions, consultez Transformation AWS::LanguageExtensions.