【问题标题】:Find which resource triggered CodePipeline when multiple resources from CodeCommit当来自 CodeCommit 的多个资源时,查找哪个资源触发了 CodePipeline
【发布时间】:2019-05-02 13:23:19
【问题描述】:

我正在使用 AWS 并使用多个资源 (CodeCommit) 创建了一个 CodePipeline。我正确地收到了这样的事件:

{'CodePipeline.job': {'id': '...

在这种情况下,我可以找到每个 CodeCommit 资源的最新提交,但我没有找到如何确定哪个特定资源触发了 CodePipeline 执行。这是可行的吗?感谢您的帮助。

【问题讨论】:

    标签: aws-lambda aws-codepipeline aws-codecommit


    【解决方案1】:

    目前尚不支持,但将来会支持。 现在,也许您可​​以通过在 cloudtrail 中跟踪 StartPipelineExecution 的事件名称并将其与源的提交时间进行比较来解决。

    【讨论】:

      【解决方案2】:

      我很确定您可以从 codepipeline 获得提交消息:

      aws codepipeline get-pipeline-state --name PIPELINE_NAME
      

      尝试使用 jq 或 bash 解析它

      【讨论】:

        【解决方案3】:

        这将告诉您哪些资源触发了管道。您需要为其提供 pipeline-namepipelineExecutionId

        aws codepipeline list-pipeline-executions --pipeline-name <YOUR-PIPELINE-NAME> | jq -r '.[] | .[] | select(.pipelineExecutionId=="<PIPELINE-EXEXUTION-ID>") | .trigger.triggerDetail'
        

        我没有在 codeBuild 中尝试过,仅在 CLI 中尝试过,但您可能可以从 codeBuild 提供的变量中获取这些所需的变量。

        https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html

        【讨论】:

          猜你喜欢
          • 2021-11-13
          • 2021-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-09
          相关资源
          最近更新 更多