如何仅使用 aws codebuild 服务将 github 代码复制到 s3 存储桶?

How to copy github code to s3 bucket using only aws codebuild service?

我想在仅代码构建服务的帮助下将 gitHub 的最新代码复制到 amazon s3 存储桶中。

我知道使用 codepipeline 和 codedeploy 服务非常简单。但我更感兴趣的是它如何仅通过代码构建服务实现。

目前,我在githib 仓库中没有任何类型的java/scala/node js 代码,也不想执行编译,运行 或测试代码。我只是想在发生 PUSH 事件时将文件从 github 复制到 s3 存储桶。

请指导我如何为此用例配置代码构建服务。

请分享您对此问题的想法和链接。

提前致谢。

请查看此文档:

CodeBuild - GitHub webhooks

CodeBuild Artifacts

主要思想:

您可以创建从 GitHub 到 CodeBuild 的 Webhook。 GitHub 中的每个 PUSH 都会启动一个 CodeBuild 容器。 此容器获取工件(存储库)。

在 CodeBuild 本身中,您已经可以访问工件,因此例如您可以使用 boto3 (Python)/aws-cli 与 s3 存储桶交互并上传工件。

我已按照以下链接完成此任务。

https://docs.aws.amazon.com/codebuild/latest/userguide/getting-started-create-build-project-console.html

我通过向 buildspec 文件指定以下命令,设法将 github 最新代码复制到 s3 存储桶。

注意:最初,我的印象是我需要配置 aws cli,但这里并非如此。已经在codebuild环境中配置好了。

buildpsec 文件

注意:确保您已向代码构建默认 服务角色 添加足够的权限(即 s3 读写),如下所示。