如何取消运行18小时的AWS CodePipeline至Elastic Beanstalk部署任务?
解决Elastic Beanstalk部署停滞及重新部署问题
我来帮你一步步解决这个问题,从取消停滞的部署到重新初始化流程都给你梳理清楚:
一、取消停滞的Elastic Beanstalk部署任务
首先得把跑了18小时的部署任务停下来,有两种常用方法:
控制台操作(直观易上手)
- 打开AWS Elastic Beanstalk控制台,找到你的目标应用和对应的环境
- 在环境详情页的顶部,点开Actions下拉菜单,选择Cancel deployment
- 在弹出的确认窗口里确认操作就行。如果这个选项是灰色的,别着急,先刷新页面等控制台加载完(毕竟你那边显示蓝色加载轮,状态同步可能有延迟)
AWS CLI操作(强制终止,适合控制台没反应的情况)
如果控制台操作没效果,用CLI命令来强制终止:
aws elasticbeanstalk abort-environment-update --environment-name 你的环境名称
把命令里的你的环境名称替换成实际的Elastic Beanstalk环境名,执行后部署任务会立刻终止。
二、修复CodePipeline状态不更新的问题
取消部署后,CodePipeline可能还停留在旧状态,你可以这么做:
- 打开CodePipeline控制台,找到你的流水线
- 点击顶部的Release change,重新触发一次流水线,让它同步最新的环境状态
- 如果还是没更新,直接在流水线的部署阶段点击Retry按钮,强制刷新状态
三、非生产环境下删除数据库重新部署的可行性
完全可以!既然是非生产环境,没有数据风险,从头初始化是快速解决问题的好办法,步骤如下:
- 先按上面的方法取消当前的停滞部署
- 删除对应的测试数据库(比如RDS实例或者你用的其他数据库服务),一定要确认是测试环境的,别误删生产库
- 先把Django项目的代码问题修复好:比如移除
settings.py里已删除App的配置,清理相关的migrations文件(如果有的话) - 重新触发CodePipeline流水线,或者直接用Elastic Beanstalk重新部署代码——如果你的环境配置了自动创建数据库的脚本,或者关联了RDS,会自动重建数据库
- 部署完成后,初始化数据库:
- 可以通过Elastic Beanstalk控制台的Configuration > Software > Environment properties配置好数据库连接变量,然后用SSH连接到EC2实例执行:
source /var/app/venv/*/bin/activate python manage.py migrate
- 可以通过Elastic Beanstalk控制台的Configuration > Software > Environment properties配置好数据库连接变量,然后用SSH连接到EC2实例执行:
内容的提问来源于stack exchange,提问作者MarkyMark1000
相关产品推荐
相关产品推荐

