【问题标题】:cloudformation deploy capability_auto_expandcloudformation 部署能力_auto_expand
【发布时间】:2020-07-31 05:44:07
【问题描述】:

我正在尝试创建一个脚本来自动部署/更新我的 SAM 堆栈。我正在使用批处理来执行此操作。现在我有:

call aws cloudformation deploy --template-file "serverless.yml"  ^
--stack-name %1   ^ 
--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM^
--parameter-overrides   ^
  StageName=%1^
{some other parameters}
--role-arn {my role arn}

其中 %1 是带有堆栈/阶段名称的批处理参数。

当我尝试运行它时,我在 cloudformation 控制台中收到错误,我需要 CAPABILITY_AUTO_EXPAND 来更新我的一些堆栈。看文档,好像 aws cloudformation deploy 不支持这个功能?并且 aws cloudformation update-stack 不接受模板的文件名。

关于如何做到这一点的任何建议?

【问题讨论】:

    标签: amazon-web-services batch-file deployment amazon-cloudformation aws-cli


    【解决方案1】:

    也许你应该使用干净的格式

     aws cloudformation deploy \
        --region "${region}" \
        --template-file output.yaml \
        --stack-name "${stackName}" \
        --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND \
        --parameter-overrides ;
    

    【讨论】:

      【解决方案2】:

      查看类似question 提供的答案以及与cli 命令相关的答案。

      抱歉,我会使用评论而不是回答,但还没有权限。

      【讨论】:

      • 这不起作用。我使用 sam deploy 而不是 aws cloudformation deploy,并将功能放在最后。并且权限仍然无效。
      【解决方案3】:

      切换到 sam deploy 后,我发现这是换行前后空格的问题。

      特别是我觉得我的空格太多了

      --stack-name %1{space}{space}{space}^{space}
      

      然后在功能行之后没有空格。清理了整个命令中的间距,现在可以使用了

      我认为最大的问题是 ^

      之后的空格

      【讨论】:

        猜你喜欢
        • 2017-10-21
        • 2018-09-14
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 2019-10-06
        相关资源
        最近更新 更多