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 ?