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

CodePipeline获取错误构件?CodeBuild未传递指定目录产物问题咨询

问题排查及解决方案

你遇到的CodeBuild输出产物不符合预期的问题,可以按以下步骤排查修改:

  1. 修正buildspec.yml的artifacts配置
    你当前配置中的discard-paths: yes会将base-directory下所有匹配到的文件全部平铺到产物根目录,不会保留原有的目录结构,极易导致EB部署时识别目录异常。可以将该配置移除或显式设为no,保留发布文件的原有目录结构,修改后的完整配置参考:
version: 0.2

phases:
  pre_build:
    commands:
      - dotnet restore
      - dotnet build
  build:
    commands:
      - dotnet publish -c Release -r linux-x64 -o ./output --self-contained false
      # 新增output目录内容打印,确认发布产物生成正确
      - ls ./output
artifacts:
  files:
    - '**/*'
  base-directory: ./output
  discard-paths: no
  1. 检查CodePipeline阶段配置
    如果修改buildspec后问题依旧,大概率是Pipeline的阶段引用错误:
  • 确认Deploy(部署到EB)阶段引用的输入工件是Build阶段的输出工件,而非Source阶段的输出工件(Source阶段输出的就是代码仓库根目录内容,和你遇到的异常表现一致)
  • 确认CodeBuild项目的buildspec路径配置正确,默认读取代码根目录的buildspec.yml,如果你的文件存放在子目录,需要在CodeBuild项目配置中指定对应路径。
  1. 产物验证
    可以直接在CodeBuild的历史构建记录中下载对应构建的产物压缩包,解压查看内容是否为./output目录下的发布产物,即可快速定位问题是出在CodeBuild的构建配置,还是Pipeline的阶段引用配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:54:00