You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CodeDeploy如何在EC2实例上执行终端命令实现部署自动化

AWS CodeDeploy 自动执行部署操作实现方案

你可以通过CodeDeploy原生的AppSpec配置文件绑定生命周期钩子,实现部署过程中自动执行自定义命令,具体操作如下:

实现步骤

  • 首先在你的Django项目根目录新建appspec.yml配置文件,该文件必须放在部署制品包的根目录,CodeDeploy会自动识别该配置执行对应操作
  • 新建脚本目录存放自定义执行命令,避免配置文件过于冗余
  • 配置完成后将项目代码、appspec.yml、脚本目录一起打包为zip/tar.gz格式的制品包,上传到CodeDeploy对应的制品源即可

配置示例

appspec.yml 参考配置

version: 0.0
os: linux
files:
  # 配置构建包代码映射到EC2实例的目标路径,可按需修改为你的项目实际部署路径
  - source: /
    destination: /opt/bitnami/projects/your-django-project
permissions:
  # 匹配Bitnami环境默认的运行用户权限,避免访问报错
  - object: /opt/bitnami/projects/your-django-project
    pattern: "**"
    owner: bitnami
    group: daemon
hooks:
  # 构建包解压完成后执行目录创建、文件复制等初始化操作
  AfterInstall:
    - location: scripts/init_env.sh
      runas: root
  # 初始化完成后重启Apache服务生效配置
  ApplicationStart:
    - location: scripts/restart_apache.sh
      runas: root

自定义脚本示例

在项目根目录新建scripts目录,存放两个脚本文件,打包前先执行chmod +x scripts/*.sh给脚本赋予执行权限:

  1. scripts/init_env.sh 存放目录创建、文件复制命令
#!/bin/bash
# 按需修改为你需要创建的目录路径
mkdir -p /opt/bitnami/projects/your-django-project/static
mkdir -p /opt/bitnami/projects/your-django-project/media
# 按需修改为你需要复制的文件路径
cp /data/backup/.env /opt/bitnami/projects/your-django-project/.env
# 统一修正项目目录权限
chown -R bitnami:daemon /opt/bitnami/projects/your-django-project
  1. scripts/restart_apache.sh 存放服务重启命令
#!/bin/bash
/opt/bitnami/ctlscript.sh restart apache

注意事项

  • 提前确认EC2实例上已安装并正常运行CodeDeploy Agent,可执行sudo systemctl status codedeploy-agent查看运行状态
  • 如果执行权限相关报错,可给codedeploy用户配置免密sudo权限,在/etc/sudoers.d/codedeploy文件中添加内容:codedeploy ALL=(ALL) NOPASSWD:ALL

内容的提问来源于stack exchange,提问作者Volatil3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:06:06