获取触发 AWS CodePipeline 运行 的 webhook

get webhook that triggered the AWS CodePipeline run

背景:

我计划创建一个在初始源代码阶段具有多个源代码操作的代码管道。每个源操作都是一个 GitHub 存储库,它将拥有自己的 AWS CodePipeline webhook。在管道的下一阶段中,我想要一个调用操作,该操作将获取触发管道 运行 的管道执行的 webhook,并将下游构建阶段的输入工件设置为与触发关联的源操作网络钩子。例如,如果 repo A 的 webhook 导致管道执行 #1,则调用操作将以某种方式识别 repo A 的 webhook 是触发器,然后将 repo A 的输出工件传递到下游构建阶段。

问题:

我还没有找到获取触发管道的 Codepipeline webhook 的解决方案 运行。查看 boto3 Codepipeline 文档,我得到的最接近的是 list_webhooks,它标识了 webhook 关联的管道,但与该 webhook 是否触发了 Codepipeline 执行 ID 123 无关。

在这种情况下,list_pipeline_executions 命令应该可以帮助您。它为您提供 CodePipeline 执行摘要,其中第一个结果是 latest 执行 ID。每个摘要都有一个 trigger 属性,其中包含有关如何触发执行的信息。对于 webhook,它看起来像这样:

"trigger": {
    "triggerType": "Webhook",
    "triggerDetail": "arn:aws:codepipeline:<region>:<account-id>:webhook:<webhook-id>"
}

如果您的管道可能 运行 并发,请确保您首先获得 当前 执行 ID,以免混淆。您可以按照建议 here.

在 CodeBuild 中使用一行来完成此操作