Amazon web services 如何仅使用aws codebuild服务将github代码复制到s3 bucket?

Amazon web services 如何仅使用aws codebuild服务将github代码复制到s3 bucket?,amazon-web-services,amazon-s3,aws-codebuild,Amazon Web Services,Amazon S3,Aws Codebuild,我想在代码构建服务的帮助下,将gitHub的最新代码复制到AmazonS3 bucket中 我知道使用codepipeline和codedeploy服务非常简单。但我更感兴趣的是,看看只有使用codebuild服务才能做到这一点 目前,我在githib存储库中没有任何java/scala/node js代码,也不想执行编译、运行或测试代码。我只是想在发生推送事件时将文件从github复制到s3 bucket 请指导我如何为此用例配置codebuild服务 请分享您对此问题的想法和链接 提前感谢。

我想在代码构建服务的帮助下,将gitHub的最新代码复制到AmazonS3 bucket中

我知道使用codepipeline和codedeploy服务非常简单。但我更感兴趣的是,看看只有使用codebuild服务才能做到这一点

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

请指导我如何为此用例配置codebuild服务

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


提前感谢。

请查看此文档:

主要思想是:

您可以从GitHub到CodeBuild创建webhook。 GitHub中的每一次推送都会启动一个代码构建容器。 此容器获取工件存储库


在代码构建本身中,您已经可以访问工件,例如,您可以使用boto3 Python/aws cli与s3 bucket交互并上载工件。

请查看以下文档:

主要思想是:

您可以从GitHub到CodeBuild创建webhook。 GitHub中的每一次推送都会启动一个代码构建容器。 此容器获取工件存储库


在代码构建本身中,您已经可以访问工件,例如,您可以使用boto3 Python/aws cli与s3 bucket交互并上载工件。

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

通过在buildspec文件中指定以下命令,我成功地将github最新代码复制到s3 bucket

注意:最初,我的印象是需要配置aws cli,但这里不是这样。它已经在codebuild环境中配置

buildpsec文件

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

我按照以下链接完成了这项任务

通过在buildspec文件中指定以下命令,我成功地将github最新代码复制到s3 bucket

注意:最初,我的印象是需要配置aws cli,但这里不是这样。它已经在codebuild环境中配置

buildpsec文件

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

感谢@saggi的回复。请分享更多关于builspec文件的详细信息。我的意思是,我的buildspec文件会是什么样子?我不明白你关于这两个问题的第二点。您能更详细地解释一下吗?容器是否会有github代码的最新副本?如果是,那么容器中存储github代码的默认位置是什么?这取决于使用哪种语言进行编码。例如,我使用python,对于python来说,boto3是AWS SDKinteract,可以轻松地使用AWS服务。简单解释:首先必须创建CodeBuild项目。CodeBuild是一个容器,它将运行的命令来自buildspec.yaml。创建项目时,可以在CodeBuild配置中提供此文件:1。存储在s3中的文件的路径。2.硬编码yaml。3.存储库中文件存储的路径。请参阅文档:是的,每次启动CodeBuild项目时,该项目都会得到您推送到存储库的最新代码。嗨,saggi,谢谢您的回复。我正在考虑指定aws s3同步。s3://bucket\u buildspec文件中的name命令。这是正确的选择吗?。我相信代码生成运行时环境在默认情况下没有aws凭据访问权限。请与我分享关于如何为build env设置aws凭据的链接,谢谢@saggi的回复。请分享更多关于builspec文件的详细信息。我的意思是,我的buildspec文件会是什么样子?我不明白你关于这两个问题的第二点。您能更详细地解释一下吗?容器是否会有github代码的最新副本?如果是,那么容器中存储github代码的默认位置是什么?这取决于使用哪种语言进行编码。例如,我使用python,对于python来说,boto3是AWS SDKinteract,可以轻松地使用AWS服务。简单解释:首先必须创建CodeBuild项目。CodeBuild是一个容器,它将运行的命令来自buildspec.yaml。创建项目时,可以在CodeBuild配置中提供此文件:1。存储在s3中的文件的路径。2.硬编码yaml。3.存储库中文件存储的路径。请参阅文档:是的,每次启动CodeBuild项目时,该项目都会得到您推送到存储库的最新代码。嗨,saggi,谢谢您的回复。我正在考虑指定aws s3同步。s3://bucket\u buildspec文件中的name命令。这是正确的选择吗?。我相信代码构建运行时环境没有 默认情况下,ws-credentials访问。你能和我分享一下关于如何为build env设置aws凭据的链接吗?