2017-02-02 1 views
2

J'essaie de démarrer avec AWS Cloudformation, mais je reçois le même message d'erreur, non utile, pour chaque modèle que j'essaie d'utiliser, dont la plupart ont été copiés directement à partir du site Web AWS .La commande AWS cloudformation échoue sur les modèles d'exemple AWS

Je cours

aws cloudformation validate-template --template-body hellobucket.yml 

et obtenir l'erreur

An error occurred (ValidationError) when calling the ValidateTemplate operation: Template format error: unsupported structure. 

Peu importe quel fichier j'utiliser comme modèle. Par exemple, le fichier hellobucket.yml, vient directement du guide AWS à l'utilisation CloudFormation comme un exemple super simple d'un modèle de travail: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html

Ce lien dit:

Jetons un coup d'oeil à un très modèle de base. Le modèle suivant déclare une seule ressource de type AWS :: S3 :: Bucket: avec le nom HelloBucket.

YAML

Resources: 
    HelloBucket: 
    Type: AWS::S3::Bucket 

Si vous utilisez ce modèle pour créer une pile, AWS CloudFormation va créer un seau Amazon S3. La création d'un compartiment est simple, car AWS CloudFormation peut créer un compartiment avec les paramètres par défaut.

MAIS ne fonctionne pas. Aucune idée de ce que veut dire cli quand il est dit que la structure n'est pas supportée et que je n'ai aucune piste pour la résoudre.

Toute aide appréciée. Merci!

Répondre

2

Apparemment, ce message d'erreur très inutile vient d'un formatage incorrect dans la commande cli.

Pour l'indicateur --template-body, il faut inclure le chemin de fichier complet du système dans le fichier modèle avec le préfixe file://.

La position correcte, runnable de la commande ci-dessus est

aws cloudformation validate-template --template-body file://{path_to_file}/hellobucket.yml 

plus d'informations ici: https://randops.org/2016/11/11/confusing-syntax-error-with-aws-cli-and-cf-templates/

+1

le sys d'erreur que la chaîne « hellobucket.yml » est pas un modèle de CloudFormation approprié qui est vrai; – hellomichibye

+1

Mon test montre que le chemin d'accès relatif au fichier fonctionne à partir de la ligne de commande, tant que 'file: //' est inclus – Jon

+0

Correct, donc cela fonctionne 'file: //./ my.yaml' –