AWS CodePiplene不会将文件上传到S3存储桶

时间:2020-08-24 09:09:39

标签: amazon-web-services amazon-s3 aws-codepipeline aws-codebuild

我有执行以下步骤的AWS CodePipline:

enter image description here

当我手动运行CodeBuild阶段时,2个工件成功上传到s3。

enter image description here

当我更改代码并将其推送到CodeCommit时,管道成功执行,但是构件没有上载到S3存储桶。当我读取管道日志时,它断言2个文件已成功上传到S3存储桶。但是文件不在S3存储桶中。

管道和CodeBuild都使用相同的S3存储桶。这些是管道日志。日志的最后3行断言2个工件已成功上传到S#存储桶。

Container] 2020/08/24 08:25:55 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2020/08/24 08:25:55 Phase context status code:  Message: 
[Container] 2020/08/24 08:25:55 Expanding base directory path: ./build-artifacts
[Container] 2020/08/24 08:25:55 Assembling file list
[Container] 2020/08/24 08:25:55 Expanding ./build-artifacts
[Container] 2020/08/24 08:25:55 Expanding file paths for base directory ./build-artifacts
[Container] 2020/08/24 08:25:55 Assembling file list
[Container] 2020/08/24 08:25:55 Expanding **/*
[Container] 2020/08/24 08:25:55 Found 2 file(s)
[Container] 2020/08/24 08:25:56 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED
[Container] 2020/08/24 08:25:56 Phase context status code:  Message: 

2 个答案:

答案 0 :(得分:2)

如评论中所述,您看不到存储桶中的工件的原因是CodePipeline(CP)会将其存储在 CP的存储桶中。您可以检查CP的铲斗。

工件将被压缩,尽管存储桶中的文件没有扩展名,并且具有随机名称。您可以下载文件,添加zip扩展名并解压缩以进行验证。

部署到S3的一种方法是通过Deploy操作和Amazaon S3操作提供程序。但这只会部署zip,不会解压缩。我认为这不是您的目标。

另一种方法是在CodeBuild项目中使用 AWS CLI 将“人工”工件复制到所需的存储桶中。这可能是最简单的方法

答案 1 :(得分:0)

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命令来完成。

获取pipleline详细信息:

aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

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

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

答案参考:https://stackoverflow.com/a/49292819/11758843

相关问题