我正在dynamic构buildTemplateURL。
"TemplateURL" : { "Fn::Join" : ["", [ { "Ref" : "TemplateURL"}, "substack.template" ]] }
我正在AWS控制台中运行CloudFormation模板。
我从一个使用IAM资源的模板开始,当直接运行堆栈时,控制台会提示我确认IAMfunction。
然后我尝试从父堆栈调用同一个堆栈,但没有收到相同的提示。
该堆栈然后失败,消息:
需要function:[CAPABILITY_IAM]
文档表明,我可以通过多种方式运行CF脚本。 有很多关于CLI / API的文档并提供了function参数,但似乎没有关于如何确保在通过控制台运行时应用它的信息。
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
AWS CloudFormation模板中的IAM资源
我现在已经通过论坛提出了一个问题,但是没有回复(还没有): https : //forums.aws.amazon.com/thread.jspa?threadID=139160
我怀疑这是一个在控制台中的错误,因为似乎没有任何文档如何通过控制台更改行为,据我所知,这应该只是工作。
任何人都遇到同样的问题,或者可以报告说,它工作正常吗?
我刚刚遇到了这个问题,我的问题是没有选中checkbox“我承认这个模板可能会导致AWS CloudFormation创buildIAM资源”。 在更新我的堆栈之前的最后一个屏幕上。
当dynamic构buildTemplateURL时,validation检查器无法预先查看是否存在IAM资源,这就是为什么它不会要求IAM_CAPABILITIES。
解决此问题的最佳解决scheme(现在)将是在主模板中创build一个虚拟IAM资源以获取提示。
如果您正在使用CLI或boto,则可以包含“function”参数。 这是一个列表,但目前唯一被接受的条目是“CAPABILITY_IAM”。
cf.update_stack(..., capabilities=['CAPABILITY_IAM'])
要么
cf.create_stack(..., capabilities=['CAPABILITY_IAM'])
这将授予整个堆栈树IAM创build权限。