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

CodeDeploy AfterInstall Hook未执行,求助获取详细日志方法

解决CodeDeploy AfterInstall Hook未执行及日志排查问题

核心日志位置

首先纠正日志路径误区:你找到的codedeploy-agent-deployments.log通常不记录脚本执行细节,真正有用的日志在以下两个位置:

  • 脚本执行详细日志:每个部署实例都有独立的脚本日志,路径为/opt/codedeploy-agent/deployment-root/<部署组UUID>/<部署ID>/logs/scripts.log。该文件会记录钩子脚本的所有标准输出、错误输出及执行返回码。
  • Agent运行日志:查看CodeDeploy Agent本身的运行状态,路径为/var/log/aws/codedeploy-agent/codedeploy-agent.log。这里能看到Agent是否成功读取appspec.yml、是否识别到AfterInstall钩子、是否尝试启动脚本等关键信息。

快速定位最新部署日志的命令:

# 按时间排序列出部署目录,取最新的5个
ls -lt /opt/codedeploy-agent/deployment-root/ | head -5

钩子未执行的常见排查点

结合你的场景,部署显示成功但脚本无动作,大概率是以下原因:

  • 脚本路径错误:appspec.yml中的location是相对于部署包根目录的路径,需确认data/afterinstall.sh确实在打包后的根目录下,而非嵌套在其他子目录中。
  • 脚本缺少执行权限:打包前必须给脚本添加执行权限:chmod +x data/afterinstall.sh,否则Agent无法执行脚本,且不会主动报错。
  • appspec.yml格式错误:YAML对缩进严格,检查Hooks、AfterInstall及子项的缩进是否一致(建议用2个空格缩进),格式错误会导致Agent忽略钩子配置。
  • 脚本逻辑问题:你的脚本中/final_path如果不存在,cd命令会失败,但默认情况下脚本不会终止执行,后续touch也不会生效。可以在脚本开头添加set -e,让脚本在遇到错误时立即退出,便于排查。

验证方法

  1. 重新触发一次部署,同时实时监控Agent日志:
tail -f /var/log/aws/codedeploy-agent/codedeploy-agent.log
  1. 部署完成后,找到对应部署的scripts.log,查看是否有脚本执行记录及错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:40:33