从CodeCommit查找多个资源时,查找哪个资源触发了CodePipeline

时间:2018-11-30 11:28:13

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我很确定您可以从代码管道中获取提交消息:

aws codepipeline get-pipeline-state --name PIPELINE_NAME

尝试使用jq或bash对其进行解析

答案 2 :(得分:0)

这将告诉您哪些资源触发了管道。您需要为其指定 pipeline-name pipelineExecutionId

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