【问题标题】:Is there a way to force a clean slate deployment with AWS CodeDeploy?有没有办法强制使用 AWS CodeDeploy 进行全新部署?
【发布时间】:2020-01-31 04:41:59
【问题描述】:

如果我使用 AWS CodeDeploy 执行部署,其中 ApplicationStop 挂钩的脚本不正确(失败),我似乎根本无法进行新的部署,因为之前(失败)部署中的 ApplicationStop 挂钩正在运行,而不是新的,而且总是失败。

除了删除和重新创建应用程序和/或部署组之外,还有什么方法可以告诉代码部署执行部署,就好像它是一个全新的部署一样,而不是运行 ApplicationStop 挂钩?

与此相关,是否可以忽略 ApplicationStop 中的错误?

【问题讨论】:

    标签: amazon-web-services aws-code-deploy


    【解决方案1】:

    是的,可以忽略 ApplicationStop 中的错误。 CreateDeployment API 调用有一个标志“ignoreApplicationStopFailures”[1],可以在这种情况下使用。

    如果失败的原因是上一次成功部署中的脚本永远不会成功运行,请创建一个新部署(您也可以复制一个部署)并指定应忽略 ApplicationStop 失败。您可以通过两种方式做到这一点:

    1. 使用 AWS CodeDeploy 控制台创建部署。在创建部署页面的 ApplicationStop 生命周期事件失败下,选择如果实例上的此生命周期事件失败,则不要将部署失败。

    2. 使用 AWS CLI 调用 create-deployment 命令并包含 --ignore-application-stop-failures 选项。

    当您再次部署应用程序修订版时,即使 ApplicationStop 生命周期脚本失败,部署也会继续。如果新修订包含 ApplicationStop 生命周期事件的固定脚本,则未来的部署可以在不应用此修复的情况下成功。

    参考资料:

    [1]https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html#CodeDeploy-CreateDeployment-request-ignoreApplicationStopFailures

    [2]https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-deployments-lifecycle-event-failures

    【讨论】:

      猜你喜欢
      • 2018-09-16
      • 2020-04-02
      • 1970-01-01
      • 2012-11-04
      • 2010-12-01
      • 1970-01-01
      • 2017-10-13
      • 2014-06-06
      相关资源
      最近更新 更多