来自 CodePipeline (AWS) 的 CodeBuild (AWS)

CodeBuild (AWS) from CodePipeline (AWS)

我正在尝试使用 CodePipeline (AWS) 触发多个构建,当管道触发 CodeBuild 时,CodeBuild 失败并出现下一个错误:

[Container] 2018/02/07 19:30:20 Waiting for DOWNLOAD_SOURCE

Message: Access Denied

补充信息:

我前几天才发现这个。我不确定它是否在任何地方都有记录,但在代码管道中绝对不清楚 UI.

CodePipeline 启动的任何 CodeBuild 项目必须已通过 CodePipelineUI创建。它不能是 "standalone" CodeBuild 项目。

当您从 CodePipeline UI 创建 CodeBuild 项目时,"Source Provider" 设置为 "AWS CodePipeline",这在您自己创建 CodeBuild 项目时不可用。

CodePipeline 从 GitHub 中检索它自己的源代码。然后将该源代码传递给您的 CodeBuild 项目。如果您的项目从 GitHub 获取自己的源代码,那么这似乎会导致您描述的问题:

[Container] 2018/02/06 14:58:37 Waiting for agent ping
[Container] 2018/02/06 14:58:37 Waiting for DOWNLOAD_SOURCE

要解决此问题,您必须编辑 CodePipeline "build" 阶段,然后在 "AWS CodeBuild, Configure Your Project" 下选择 "Create a new build project"。您可以从现有项目复制大部分设置并在源代码中重复使用 buildspec.yml 文件。

我有完全相同的错误。当我单独 运行 时,Codebuild 工作正常,但为了使其在 CodePipeline 中工作,我必须更新我的 CodePipeline 角色以允许访问 S3 存储桶。

解决此问题的方法是使用 CodePipeline 向导创建 CodeBuild。 通过这种方式,向导会为 CodeBuild 提供必要的权限。