Cloudformation 模板验证

Posted

技术标签:

【中文标题】Cloudformation 模板验证【英文标题】:Cloudformation template validate 【发布时间】:2015-02-14 07:54:45 【问题描述】:

根据aws validate-template,我进行了测试以验证来自 URL 和本地文件的相同模板。

但我得到了不同的输出。

直接从 URL 测试:

$ aws cloudformation validate-template --template-url https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template

    "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
    "Parameters": []

但是当我把它下载到本地,然后再次测试。

$ wget https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template

2014-12-16 14:48:27 (11.1 MB/s) - 'S3_Bucket.template' saved [652/652]

$ aws cloudformation validate-template --template-body S3_Bucket.template

A client error (ValidationError) occurred when calling the ValidateTemplate operation: Template format error: JSON not well-formed. (line 1, column 10)

有什么想法吗?

【问题讨论】:

【参考方案1】:

我现在知道如何解决它。你需要给文件full pathfile:///

aws cloudformation validate-template --template-body file:///home/local/test/S3_Bucket.template

或使用相对路径( file:// 而不是 file:/// ):

aws cloudformation validate-template --template-body file://S3_Bucket.template

【讨论】:

您也可以使用相对 URL,只需 file://(不是双斜杠,也不是三斜杠)。 我认为这是新功能。我的答案是4岁。 AWS 必须改进它。

以上是关于Cloudformation 模板验证的主要内容,如果未能解决你的问题,请参考以下文章

DevOps on AWS之Cloudformation概念介绍篇

Cloudformation 模板验证

AWS CloudFormation 条件模板验证

cloudformation 验证返回:无效的模板资源属性

cloudFormation 模板验证错误:如何拆分 serverless.yml 文件

AWS cloudformation 错误:模板验证错误:模板错误:资源 NotificationsTopic 不支持 Fn::GetAtt 中的属性类型 Arn