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

Codestar流水线执行成功但EC2实例无部署文件求助

排查AWS Codestar流水线成功但EC2无部署文件的问题

刚接触AWS Codestar踩这种“流水线全绿但实例没东西”的坑真的太闹心了,我之前也碰到过类似情况,给你梳理几个最可能的原因和实操排查方向:

1. 构建/部署配置文件的路径或规则错了

Codestar的部署逻辑依赖buildspec.yml和appspec.yml这两个核心配置,很容易在这里踩坑:

  • 检查buildspec.yml的artifacts部分:你有没有把需要部署的文件都包含进来?比如如果你的应用是构建后生成dist目录,那要确保artifacts指定了从dist目录取文件,而不是根目录(根目录可能包含node_modules等不需要的文件,甚至可能漏了构建产物)。举个正确的例子:
    artifacts:
      files:
        - '**/*'
      base-directory: 'dist'
    
  • 检查appspec.yml的文件复制规则:确认source和destination路径是否匹配。比如你要把部署包的所有文件放到EC2的/home/ec2-user/my-app目录,那配置应该是:
    files:
      - source: /
        destination: /home/ec2-user/my-app
    
    如果路径写错了,流水线会显示成功,但文件会被复制到错误的位置,你自然找不到。

2. EC2上的CodeDeploy Agent出问题了

流水线显示成功不代表EC2上的部署代理真的接收到了指令,可能Agent没运行或者报错了:

  • 先在EC2上用SSH登录,运行sudo service codedeploy-agent status看状态,如果显示not running,就重启它:sudo service codedeploy-agent restart。
  • 查看Agent的日志:tail -f /var/log/aws/codedeploy-agent/codedeploy-agent.log,找最近的部署记录,有没有类似“Failed to download artifact from S3”“Permission denied”这类报错——这些都是关键线索。

3. IAM权限不足(最容易被忽略的点)

流水线和EC2实例的IAM角色权限不够,会导致部署包无法从S3传输到EC2:

  • CodePipeline角色:要确保它有向部署包所在S3桶上传文件的权限(s3:PutObject)。
  • EC2实例角色:要允许它从同一个S3桶下载文件(s3:GetObject)。
    很多时候新手会用默认角色,但默认角色的权限可能没覆盖到你的S3桶,需要手动添加对应的桶权限策略。

4. 构建阶段没生成有效产物

虽然本地npm start正常,但流水线的构建阶段可能没正确执行依赖安装或构建命令:

  • 检查buildspec.yml的build部分,有没有包含npm install或者npm run build?比如:
    build:
      commands:
        - npm install
        - npm run build
    
    如果少了这些命令,构建出来的产物可能是空的或者不完整,流水线虽然成功,但没东西可部署。

5. 目标目录权限或冲突问题

EC2上的应用目录可能存在权限问题,导致自动部署时无法写入文件,但手动上传时你用了root或有权限的用户:

  • 检查目标目录的权限:ls -ld /home/ec2-user/my-app,看看部署用户(通常是codedeploy用户)有没有读写权限。
  • 查看CodeDeploy的部署日志:在/opt/codedeploy-agent/deployment-root/下面找到对应部署ID的日志文件,里面会详细记录文件复制的过程,有没有报错。

按照这个顺序排查,大概率能找到问题所在——我当时就是因为buildspec.yml里漏了指定base-directory,导致构建产物没被正确打包,流水线绿了但EC2上啥都没有。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:31:55