j'ai une chaîne qui est formée d'un certain nombre de variables que j'utilise pour de nombreuses choses différentes telles que les balises et les noms d'hôte.
y a-t-il un moyen de créer une chaîne réutilisable que je peux simplement ref à travers le modèle?
toute réflexion à ce sujet serait très appréciée. edit: Un exemple serait de passer 2 paramètres tels que ProjectName et Environment les joignant
"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]
et en utilisant les résultats dans un certain nombre d'endroits
Réponses:
Malheureusement, mes expériences sont d'accord avec votre conclusion Graeme. J'ai du mal avec cela depuis un certain temps, mais je n'ai pas trouvé de moyen de calculer une chaîne via Fn :: Join et de la conserver pour plus tard dans le modèle.
Puis-je partager avec vous un exemple typique?
Au 18/09/2014, le moyen le plus sophistiqué de stocker une valeur de chaîne pour réutilisation dans la section Ressources serait via un mappage (de deuxième niveau). Mieux encore, je peux pré-calculer une condition et déterminer s'il faut utiliser la chaîne ou non. Mais malheureusement, le stockage d'une chaîne ne fonctionne tout simplement pas.
Voici un exemple de strophe d'une telle cartographie…
Et voici une expression d'accès à elle dans une ressource
Dans cet exemple, Environnement est un paramètre de chaîne littérale avec une valeur par défaut pratique. C'est donc un exemple très clair de création et de réutilisation d'une chaîne. Mais voici ce que dit le processeur CloudFormation…
Erreur de validation du modèle: Erreur de format du modèle: chaque attribut de mappage doit être une chaîne ou une liste.
Je partage donc votre frustration qu'il ne semble pas y avoir de moyen dans un modèle pour fournir l'effet d'une variable de chaîne temporaire.
… Pour autant que je puisse voir. Mais la réponse que vous avez reçue à l'origine disait le contraire (bien que sans exemple).
Donc, si quelqu'un a un exemple de solution de contournement, alors s'il vous plaît, pourrait-il le partager?
la source
Vous pouvez utiliser des paramètres ou des mappages pour stocker des chaînes que vous pouvez utiliser dans vos modèles.
la source
malheureusement, j'ai trouvé qu'il n'était pas possible de faire ce que j'essayais de réaliser. ça n'aide pas mais ça y est.
la source
Nous faisons en fait notre nom de pile CloudFormation exactement
{ProjectName}-{Environment}
pendantaws cloudformation deploy
. Avez-vous pris en compte cette convention de dénomination pour le nom de votre pile?Ensuite, vous pouvez simplement le référencer comme
{ "Fn:Sub": "${AWS::StackName}" }
.la source