如果我使用AWS CodeDeploy执行的ApplicationStop挂钩的脚本不正确(失败)的部署,似乎根本无法进行新的部署,因为运行的是先前(失败)部署的ApplicationStop挂钩,而不是新的一,但它总是不断失败。
除了删除和重新创建应用程序和/或部署组之外,还有什么方法可以告诉代码部署进行部署,就好像它是一个全新的部署,而不是运行ApplicationStop挂钩吗?
相关地,是否可以忽略ApplicationStop中的错误?
是,可以忽略ApplicationStop中的错误。 CreateDeployment API调用具有标志“ ignoreApplicationStopFailures” [1],可以在这种情况下使用。
如果失败的原因是上一次成功部署中的脚本将永远无法成功运行,请创建一个新部署(您也可以复制一个部署)并指定应忽略ApplicationStop故障。您可以通过两种方式执行此操作:
使用AWS CodeDeploy控制台创建部署。在“创建部署”页面上的“ ApplicationStop生命周期事件失败”下,选择“如果实例上的此生命周期事件失败,则不要将实例部署失败”。
使用AWS CLI调用create-deployment命令并包括--ignore-application-stop-failures选项。
当再次部署应用程序修订版时,即使ApplicationStop生命周期脚本失败,部署也将继续。如果新修订版包含针对ApplicationStop生命周期事件的固定脚本,则将来的部署无需应用此修补程序就可以成功。
参考文献: