尽管 AWS 认为使用 git webhooks 是过时的做法,但关于 aws codestar 连接的文档似乎有点稀缺。我想创建一个通用管道,可以在第一次提交新存储库时触发(它包含一个 TF config 文件夹)。为此,我需要能够监控何时使用 aws codestar 连接。我认为这样做意味着我可以构建更好的扩展能力。
但是似乎没有一个有据可查的方法来监控“任何东西”何时访问 codestar 连接:
在上图中,可以看到发生了一项需要获得许可才能执行的操作,但该操作无法直接访问。在 cloud trail 中,我发现了一个带有如下有效负载的操作:
"eventTime": "2021-07-06T11:22:46Z",
"eventSource": "codestar-connections.amazonaws.com",
"eventName": "UseConnection",
"awsRegion": "us-east-1",
"sourceIPAddress": "codepipeline.amazonaws.com",
"userAgent": "codepipeline.amazonaws.com",
"requestParameters": {
"connectionArn": "arn:aws:codestar-connections:*:connection/",
"referenceType": "COMMIT",
"reference": {
"FullRepositoryId": "GitHub-User/Github-Repo",
"Commit": "SHA"
}
},
我相信这足以让我使用我想要的东西。当此事件触发时,我可以使用 Lambda 侦听器创建 SNS 通知,但这需要设置基础设施来监控 CloudTrail 事件。
但是当我研究这个时,我注意到 AWS 事件桥似乎知道 codestar 连接:
请注意,如果我更进一步,我可以得到如下所示的内容:
{
"source": [
"aws.codestar-connections"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"codestar-connections.amazonaws.com"
]
}
}
...但我没有看到任何示例事件,因为如果它们在那里,我似乎应该这样做。而且我找不到描述如何使 codestar 连接将 UseConnection 事件记录到 cloudwatch 的文档。
如果可以使用它,那么我可以使用更直接的方法,而无需构建基础设施来监控 CloudTrail 事件。
这可以做到吗?