问题 设置aws cloudformation template-validate的功能


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

# aws cloudformation validate-template --template-body file:///path/to/mytemplate.json

然而,我得到的回应是:

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

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

你如何设置能力?


9965
2017-07-20 06:55


起源

我也有同样的问题。 --capabilities=CAPABILITY_IAM 同 create-stack cli命令会产生堆栈 validate-stack 似乎也需要这种功能,但没有添加它的cli选项 - Vorsprung
也许这不是一个错误,而只是信息? - Alex Harvey
这不是错误。这是一个通知,通知您执行时 create-stack 要么 update-stack 你必须指定 CAPABILITY_IAM 能力。 - jbird
如果您可以将其转换为答案,我可以将问题标记为已解决。 - Alex Harvey


答案:


Capabilities 和 CapabilitiesReason 来自的输出 validate-template 不是错误。它们是正常输出,列出了需要指定功能的资源(通过 --capabilities)跑步时 create-stack 要么 update-stack 在将来。

您可以通过检查确认验证验证成功而没有错误 返回代码 是 0 表示命令已成功完成。

的文档 验证模板 产出如下:

功能  - >(列表)

模板中的功能。如果您的模板包含IAM资源,则必须指定 CAPABILITY_IAM 要么 CAPABILITY_NAMED_IAM 使用时此参数的值 create-stack 要么 update-stack 模板的动作;否则,这些行动将返回 InsufficientCapabilities 错误。   有关更多信息,请参阅 确认AWS CloudFormation模板中的IAM资源

CapabilitiesReason  - >(字符串)

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


12



设计不佳。输出完全表明需要的东西是不对的。 - Michael Mügge
使用aws一段时间后@MichaelMügge我必须说很多AWS UI和cli的设计很差,只需要习惯它的怪癖:) - Millenjo