web-dev-qa-db-fra.com

Utiliser Ref dans Fn :: Sub dans Cloudformation

J'essaie d'utiliser fn::sub avec une référence à l'intérieur.

J'ai une chaîne "Commenter xyz $ {NAME}". Cette chaîne est fournie en tant que paramètre à la pile. Dites que le nom du paramètre est "test".

Je voudrais maintenant remplacer le $ {NAME} dans la chaîne en utilisant fn::sub fonction dans le script Cloudformation.

fn::sub:[{"Ref":"test"},{"NAME":"balaji"}]

Sortie attendue est "Commentaire xyz balaji".

Cependant, c'est l'erreur que j'obtiens:

Erreur de validation de modèle: Erreur de modèle: Une ou plusieurs fonctions intrinsèques Fn :: Sub ne spécifient pas les arguments attendus. Spécifiez une chaîne comme premier argument et un deuxième argument facultatif pour spécifier un mappage de valeurs à remplacer dans la chaîne

Faites-moi savoir ce qui doit être corrigé ici.

6
Balaji V

Selon le docs , le premier paramètre dans Fn::Sub doit être:

Une chaîne avec des variables qu'AWS CloudFormation remplace par leurs valeurs associées lors de l'exécution. Écrivez les variables sous $ {MyVarName}. Les variables peuvent être des noms de paramètres de modèle, des ID logiques de ressource, des attributs de ressource ou une variable dans une mappe de valeurs-clés. Si vous spécifiez uniquement des noms de paramètres de modèle, des ID logiques de ressources et des attributs de ressources, ne spécifiez pas de mappage de valeurs-clés.

(Je souligne.)

Ainsi, il est (au moment de la rédaction) impossible de le faire.

Si vous aviez un paramètre:

"test": {
  "Type": "String",
  "Default": "Comment xyz ${NAME}"
}

Et puis une substitution:

"Fn::Sub": ["${test}", {"NAME": "balaji"}]

La substitution produirait la chaîne littérale Comment xyz ${NAME}.

3
Alex Harvey