AWS CodePipeline无法将构件上传至AWS S3

6
作为自动化(Android)构建和测试过程的一部分,我配置了一个AWS代码管道,首先从GitHub获取代码并触发构建(通过aws codebuild)。构建显示为已成功完成,但作为构建过程结果生成的工件(apk文件)未上传到s3存储桶(公共存储桶)。日志清楚地表明上传成功,如附图所示![here] here。代码管道也显示一切都成功了,如附图所示here
然而,如果我直接从aws codebuild屏幕运行aws codebuild项目,则会成功将工件上传到s3存储桶!
我尝试更改存储桶权限为公共/非公共等,但迄今为止没有成功。
2个回答

12

CodePipeline将覆盖CodeBuild的构件存储桶,我猜它正在将构件移动到自己的存储桶中。您可以通过运行以下命令来查看CodePipeline的存储桶。

codepipeline get-pipeline --name PipelineName--query pipeline.[artifactStore]

[
    {
        "type": "S3",
        "location": "codepipeline-us-east-1-xxxxxxxx"
    }
]
如果您正在使用CloudFormation创建管道,则可以使用ArtifactStore配置存储桶。 更新CodePipeline中的ArtifactStore: 目前,我没有看到通过控制台更新ArtifactStore的方法,但可以使用update-pipeline命令完成。
获取管道详细信息:
aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

编辑管道以更新artifactStore中的S3存储桶,然后运行命令。

aws codepipeline update-pipeline --cli-input-json file://pipeline.json

你似乎是对的。codepipeline 似乎将它放在其他存储桶中。有没有配置选项,让我们可以决定 s3 存储桶呢? - ranjjose
1
你可以使用CLI或CloudFormation更新你的流水线,我目前不见得有通过控制台进行更新的方法。已在答案中更新命令。 - Sudharsan Sivasankaran
+1 点赞。帮助我调试了我的问题。需要一些额外的信息 https://stackoverflow.com/questions/53370873/codepipeline-restricting-artifact-properties-in-codebuild - Private

0

我遇到了同样的问题,在 S3 中找不到应该保存 CodeBuild 构件的 MyAppBuild 文件夹。退出网页控制台,然后重新登录,文件夹现在就可见了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接