2016-10-03 1 views
1

J'ai un gabarit qui est une pile principale pour notre produit. Je suis en train de changer tous les templates de JSON à YAML, en utilisant la nouvelle fonctionnalité de type "! If". J'ai eu à l'origine la partie gênante de mon regard modèles comme suit (cela fonctionne en JSON):Fonctions de chaînage AWS CloudFormation

"CreateProdResources" : {"Fn::And" : [{"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "Environment"}, "beta"]} ]}, {"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "Environment"}, "eubeta"]} ]} ]} 

Je veux changer cela YAML, de sorte que cette partie du modèle ressemble maintenant à ceci:

CreateProdResources: !And: - !Not: - !Equals: - Ref: Environment - beta - !Not: - !Equals: - Ref: Environment - eubeta

La formation de nuages ​​est en train de lancer une erreur YAML pas bien formée, à cause de l'enchaînement! fonctions à l'intérieur d'un ensemble.

Répondre

1

à la chaîne des fonctions YAML AWS CloudFormation, comme ne suit:

CreateProdResources: 
    !And 
    - !Not 
    - !Equals [!Ref "Environment", "beta"] 
    - !Not 
    - !Equals [!Ref "Environment", "eubeta"] 
+0

[Ce] (http://www.yamllint.com/), [ce] (http: // yaml-ligne- parser.appspot.com/) et [this] (http://codebeautify.org/yaml-validator) en ligne YAML parseurs/vérificateurs ainsi que mon analyseur python indiquent que c'est YAML invalide. Etes-vous sûr de ne pas manquer une indentation sur l'avant-dernière ligne? – Anthon

+0

tout ce qui se trouve sous la ligne "CreteProdResources" doit être sur deux espaces vers la droite. – troz