Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 根据请求生成分支的代码管道_Amazon Web Services_Aws Codepipeline_Aws Codebuild - Fatal编程技术网

Amazon web services 根据请求生成分支的代码管道

Amazon web services 根据请求生成分支的代码管道,amazon-web-services,aws-codepipeline,aws-codebuild,Amazon Web Services,Aws Codepipeline,Aws Codebuild,我正在尝试创建一个代码管道,当我向AWS中的主分支发出请求时,它将构建我的分支。我有许多开发人员在我的组织中工作,所有的开发人员都在他们自己的分支上工作。我不太熟悉创建lambda函数。希望有一个解决方案您可以在每次创建新的拉请求时动态创建管道。在旧的CodePipeline UI中查找CodeCommit触发器,您需要lambda 基本上它是这样工作的:复制现有管道并更新源分支 这不是最好的,但却是做你想做的事情的唯一方法 我当时在场,出于以下原因不推荐: 在我所在的地区,我达到了20个限制:

我正在尝试创建一个代码管道,当我向AWS中的主分支发出请求时,它将构建我的分支。我有许多开发人员在我的组织中工作,所有的开发人员都在他们自己的分支上工作。我不太熟悉创建lambda函数。希望有一个解决方案

您可以在每次创建新的拉请求时动态创建管道。在旧的CodePipeline UI中查找CodeCommit触发器,您需要lambda

基本上它是这样工作的:复制现有管道并更新源分支

这不是最好的,但却是做你想做的事情的唯一方法

我当时在场,出于以下原因不推荐:

在我所在的地区,我达到了20个限制:更改检测设置为定期检查源代码更改的管道的最大数量——但是,您肯定想要这个功能 branch deleted触发器无法正常工作,因此当分支合并到master中时,无法删除创建的管道。
如果您需要所述的工作流,我建议您使用Github.com。对此很抱歉。

您可以在每次创建新的请求时动态创建管道。在旧的CodePipeline UI中查找CodeCommit触发器,您需要lambda

基本上它是这样工作的:复制现有管道并更新源分支

这不是最好的,但却是做你想做的事情的唯一方法

我当时在场,出于以下原因不推荐:

在我所在的地区,我达到了20个限制:更改检测设置为定期检查源代码更改的管道的最大数量——但是,您肯定想要这个功能 branch deleted触发器无法正常工作,因此当分支合并到master中时,无法删除创建的管道。
如果您需要所述的工作流,我建议您使用Github.com。对此很抱歉。

我们可以通过以下方法获得动态分支支持

AWS代码管道中的一个限制是,我们必须在创建管道时指定分支名称。但是,我们可以使用下面所示的体系结构来克服这个问题

创建一个Lambda函数,将GitHub web钩子数据作为输入,使用boto3将其与AWS pipelinepull管道和更新集成,使用API网关将Lambda函数的调用作为rest调用,最后创建一个指向GitHub存储库的web钩子

外部链接:


相关线程:

我们可以通过以下方法获得动态分支支持

AWS代码管道中的一个限制是,我们必须在创建管道时指定分支名称。但是,我们可以使用下面所示的体系结构来克服这个问题

创建一个Lambda函数,将GitHub web钩子数据作为输入,使用boto3将其与AWS pipelinepull管道和更新集成,使用API网关将Lambda函数的调用作为rest调用,最后创建一个指向GitHub存储库的web钩子

外部链接:


相关线程:

我最近实现了一种方法,使用CodeBuild GitHub webhook支持运行初始单元测试和构建,然后将源存储库和构建的构件作为压缩归档发布到S3

然后,您可以使用S3归档作为CodePipeline中的源文件,在那里您可以通过集成测试、分段部署等转换PR工件和代码


这是一个非常强大的模式,尽管这里的一个陷阱是,如果您在同一时间创建了许多pull请求,您可以得到代码管道执行被取代,因为一次只能执行一个给定的阶段这实际上是一个非常重要的属性,尤其是当您的集成测试针对共享资源运行,并且您不希望应用程序的多个实例同时运行数据设置/拆卸任务时。为了克服这个问题,我在CodeBuild发布S3工件时将S3通知发布到SQS FIFO队列,然后轮询队列,将每个工件复制到触发CodePipeline的不同S3位置,但只有在第一个CodePipeline源代码阶段之后当前没有等待执行的执行时,才可以执行。

我最近实现了一种方法,使用CodeBuild GitHub webhook支持运行初始单元测试和构建,然后将源存储库和构建的人工制品作为压缩存档发布到S3

然后,您可以使用S3归档作为CodePipeline中的源文件,在那里您可以通过集成测试、分段部署等转换PR工件和代码

这是一个非常强大的模式,尽管这里有一个陷阱,即如果您一次创建了很多pull请求,那么您可以得到CodePipelin
e执行被取代给定一次只能执行一个给定阶段这实际上是一个非常重要的属性,特别是当您的集成测试针对共享资源运行,并且您不希望应用程序的多个实例同时运行数据设置/拆卸任务时。为了克服这个问题,我在CodeBuild发布S3工件时将S3通知发布到SQS FIFO队列,然后轮询队列,将每个工件复制到触发CodePipeline的不同S3位置,但是,只有在第一个CodePipeline源代码阶段之后,当前没有等待执行的执行。

您的git repo在哪里?CodeCommit或Github?git repo在代码提交中可能是的副本,但是否可以动态更改分支?git repo在哪里?CodeCommit或Github?git repo的代码可能重复,但是否可以动态更改分支?如URL中所述,只需使用建议的更改检测方法,而不是在管道中定期检查,以避免此限制。我想它们是指GitHub webhooks。正如您的URL中所述,只需使用推荐的更改检测方法,而不是在管道中定期检查,以避免此限制。我猜他们指的是GitHub webhooks。