Comment puis-je utiliser la fonction Fn።Sub dans AWS CloudFormation avec Fn።FindInMap, Fn።ImportValue ou d'autres fonctions prises en charge ?
Date de la dernière mise à jour : 26/08/2020
Je veux utiliser la fonction Fn።Sub dans AWS CloudFormation avec Fn።FindInMap, Fn።ImportValue ou d'autres fonctions prises en charge.
Brève description
Vous pouvez utiliser la fonction Fn።Sub pour remplacer des fonctions prises en charge ou pour remplacer d'autres fonctions sous forme de chaîne.
Résolution
Utiliser Fn።Sub avec les fonctions prises en charge
Dans votre modèle AWS CloudFormation, vous pouvez utiliser Fn።Sub pour remplacer d'autres fonctions prises en charge, notamment Fn።FindInMap.
Si vous utilisez un modèle JSON, remplacez Var1Name et Var2Name par Var1Value et Var2Value. Par exemple :
{ "Fn::Sub" : [ String, { Var1Name: Var1Value, Var2Name: Var2Value } ] }
L'exemple JSON suivant montre comment vous pouvez remplacer ${Domain} par une valeur résolue de Fn።FindInMap, si vous utilisez une variable de Fn።FindInMap :
"Name" : { "Fn::Sub": [ "www.${Domain}", { "Domain": { "Fn::FindInMap" : [ "ABC", "DomainParameters", "DomainName"] }} ]}
Si vous utilisez un modèle YAML, vous pouvez utiliser des paires clé-valeur pour remplacer plusieurs variables. Par exemple :
Fn::Sub:
- String
- Var1Name: Var1Value
Var2Name: Var2Value
L'exemple YAML suivant montre comment remplacer ${Domain} par { "Fn::FindInMap" : [ "ABC", "DomainParameters", "DomainName"] }} si vous utilisez une variable de Fn።FindInMap :
Name: !Sub
- www.${Domain}
- { Domain: !FindInMap ["ABC", "DomainParameters", "DomainName"] }
Utiliser Fn።Sub comme chaîne pour remplacer d'autres fonctions
Vous pouvez utiliser Fn።Sub pour remplacer d'autres fonctions, notamment Ref ou Fn።GetAtt.
Par exemple, vous pouvez utiliser Fn።Sub pour remplacer Ref :
JSON :
"Name": { "Fn::Sub": "www.${Domain}"}
YAML :
Name: !Sub www.${Domain}
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?