设置 aws cloudformation template-validate 的功能

Posted

技术标签:

【中文标题】设置 aws cloudformation template-validate 的功能【英文标题】:Setting the capability for aws cloudformation template-validate 【发布时间】:2016-11-23 06:41:01 【问题描述】:

我正在尝试验证 Cloudformation 模板。我发出的命令是:

▶ aws cloudformation validate-template --template-body file://template.json

然而,我得到的回应是:

"CapabilitiesReason": "The following resource(s) require capabilities: 
  [AWS::IAM::Role]", 

很遗憾,我找不到任何设置功能的方法。

你如何设置能力?

【问题讨论】:

我也有同样的问题。 --capabilities=CAPABILITY_IAMcreate-stack cli 命令生成堆栈,但 validate-stack 似乎也需要此功能,但没有添加它的 cli 选项 这不是错误。这是一个通知,通知您在执行create-stackupdate-stack 时必须指定CAPABILITY_IAM 功能。 【参考方案1】:

validate-templateCapabilitiesCapabilitiesReason 输出不是错误。它们是正常输出,列出了需要在未来运行 create-stackupdate-stack 时指定(通过 --capabilities)的功能的资源。

您可以通过检查return code 是否为0(表示命令已成功完成)来确认验证成功且没有错误。

validate-template 输出的文档如下:

能力 ->(列表)

模板中的功能。如果您的模板包含 IAM 资源,则当您对模板使用 create-stackupdate-stack 操作时,必须为此参数指定 CAPABILITY_IAMCAPABILITY_NAMED_IAM 值;否则,这些操作将返回 InsufficientCapabilities 错误。 如需更多信息,请参阅Acknowledging IAM Resources in AWS CloudFormation Templates。

CapabilitiesReason ->(字符串)

在 Capabilities 响应元素中生成值的资源列表。

【讨论】:

糟糕的设计。输出完全表明需要的东西有问题。 @MichaelMügge 在使用 aws 一段时间后,我必须说很多 AWS UI 和 cli 设计不佳,人们只需要习惯它的怪癖 :)

以上是关于设置 aws cloudformation template-validate 的功能的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?

如何使用 cloudformation 在 AWS cognito 上设置验证属性?

设置 aws cloudformation template-validate 的功能

AWS 中的 cloudformation 最佳实践

AWS CloudFormation 可以调用 AWS API 吗?

AWS学习笔记--利用CloudFormation管理AWS资源