我试图使用嵌套堆栈,当我的ChangeSet被执行时,我得到了以下错误:
Requires capabilities : [CAPABILITY_AUTO_EXPAND]
我去创建了一个使用cloudformation的管道。
这可用于创建管道:
Configuration:
ActionMode: CHANGE_SET_REPLACE
ChangeSetName: changeset
RoleArn: ??
Capabilities: CAPABILITY_IAM
StackName: appsync-graphql
TemplatePath: BuildArtifact::output.yaml这不能:
Configuration:
ActionMode: CHANGE_SET_REPLACE
ChangeSetName: changeset
RoleArn: ??
Capabilities:
- CAPABILITY_IAM
- CAPABILITY_AUTO_EXPAND
StackName: appsync-graphql
TemplatePath: BuildArtifact::output.yaml错误是:“属性配置的值必须是具有字符串(或简单类型)属性的对象”。
这是我找到的最近的文档:UpdateStack.html
它说:Type: Array of strings用于capabilites,aws文档也这样说,但没有给出一个例子。
因此,我没有任何其他的想法来尝试拥有CAPABILITY_AUTO_EXPAND功能。
发布于 2018-12-06 00:26:30
我尝试了另一个变体,它成功了!
Configuration:
..
Capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
...发布于 2018-12-01 08:33:16
我从基顿·霍奇森那里得到了答案,这个cli命令有效:
sam deploy --template-file output.yaml --stack-name <AppName> --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND注意,这里没有逗号。
我仍然不知道如何更改管道模板以使其工作。
发布于 2020-06-14 15:54:02
我尝试了上面的解决方案,今天(2020年6月)使用更高级别的sam对我起作用的是在列出的功能之间添加了一个空间。在这个文本文件解释中没有弹性是完全疯狂的。SAM的cli是开源的,所以我想我可以把我的代码放在嘴边,然后提交一个PR。不管怎么说。
samconfig.toml
...
capabilities = "CAPABILITY_IAM CAPABILITY_AUTO_EXPAND"
...然后:
sam deploy
输出:
...
Capabilities : ["CAPABILITY_IAM", "CAPABILITY_AUTO_EXPAND"]
...https://stackoverflow.com/questions/53543397
复制相似问题