【问题标题】:get webhook that triggered the AWS CodePipeline run获取触发 AWS CodePipeline 运行的 webhook
【发布时间】:2021-05-16 17:45:36
【问题描述】:

背景:

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

问题:

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

【问题讨论】:

    标签: amazon-web-services boto3 aws-cli aws-codepipeline


    【解决方案1】:

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

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

    如果您的管道可能同时运行,请确保您首先获得当前执行 ID,以免混淆。您可以按照 here 的建议在 CodeBuild 中使用单行代码来执行此操作。

    【讨论】:

    • 啊,我在文档上查看了该命令。感谢您的参考和提示@berenbums
    猜你喜欢
    • 2019-03-02
    • 2020-08-08
    • 2020-03-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多