有没有办法强制使用 AWS CodeDeploy 进行全新部署?
Is there a way to force a clean slate deployment with AWS CodeDeploy?
如果我使用 AWS CodeDeploy 执行部署,但 ApplicationStop 挂钩脚本不正确(失败),我似乎根本无法进行新部署,因为之前(失败)部署的 ApplicationStop 挂钩是 运行 而不是新的,它总是失败。
除了删除和重新创建应用程序 and/or 部署组之外,还有什么方法可以让代码部署像全新部署一样进行部署,而不是 运行 ApplicationStop 挂钩?
相关的,是否可以忽略 ApplicationStop 中的错误?
是的,可以忽略 ApplicationStop 中的错误。 CreateDeployment API 调用有一个标志“ignoreApplicationStopFailures”[1],可以在这种情况下使用。
如果失败的原因是上次成功部署的脚本永远不会 运行 成功,请创建一个新部署(您也可以复制一个部署)并指定 ApplicationStop 失败应该是忽略。您可以通过两种方式执行此操作:
使用 AWS CodeDeploy 控制台创建部署。在 Create deployment 页面上的 ApplicationStop lifecycle event failure 下,选择 Don't fail the deployment to an instance if this lifecycle event on the instance fails。
使用 AWS CLI 调用创建部署命令并包含 --ignore-application-stop-failures 选项。
当您再次部署应用程序修订时,即使 ApplicationStop 生命周期脚本失败,部署也会继续。如果新修订包括 ApplicationStop 生命周期事件的固定脚本,则未来的部署无需应用此修复即可成功。
参考文献:
如果我使用 AWS CodeDeploy 执行部署,但 ApplicationStop 挂钩脚本不正确(失败),我似乎根本无法进行新部署,因为之前(失败)部署的 ApplicationStop 挂钩是 运行 而不是新的,它总是失败。
除了删除和重新创建应用程序 and/or 部署组之外,还有什么方法可以让代码部署像全新部署一样进行部署,而不是 运行 ApplicationStop 挂钩?
相关的,是否可以忽略 ApplicationStop 中的错误?
是的,可以忽略 ApplicationStop 中的错误。 CreateDeployment API 调用有一个标志“ignoreApplicationStopFailures”[1],可以在这种情况下使用。
如果失败的原因是上次成功部署的脚本永远不会 运行 成功,请创建一个新部署(您也可以复制一个部署)并指定 ApplicationStop 失败应该是忽略。您可以通过两种方式执行此操作:
使用 AWS CodeDeploy 控制台创建部署。在 Create deployment 页面上的 ApplicationStop lifecycle event failure 下,选择 Don't fail the deployment to an instance if this lifecycle event on the instance fails。
使用 AWS CLI 调用创建部署命令并包含 --ignore-application-stop-failures 选项。
当您再次部署应用程序修订时,即使 ApplicationStop 生命周期脚本失败,部署也会继续。如果新修订包括 ApplicationStop 生命周期事件的固定脚本,则未来的部署无需应用此修复即可成功。
参考文献: