无法为特定通道和特定事件(StartChannel)触发lambda



我们创建了一个由Eventbridge触发的Lambda。此事件桥应响应媒体直播频道的直播。当频道正在流式传输时,我们使用它来打开一系列警报,然后在单独的lambda上,当频道停止时关闭警报。

我们可以根据AWS文档触发lambda。这是事件桥的建议事件模式:

{
"source": [
"aws.medialive"
],
"resources": [
"arn:aws:medialive:us-west-2:111122223333:channel:1234567"
] 
}

问题是,我们还需要添加特定的事件名称,以便lambda在需要时触发

"eventName": ["StartChannel"]

我们已经尝试了几种模式,但添加eventName后都不起作用。像这个:

{
"source": [
"aws.medialive"
],
"resources":["arn:aws:medialive:us-west-2:111122223333:channel:1234567"],
"detail-type": ["StartChannel"]
}

或者这个:

{
"source": ["aws.medialive"],
"detail": {
"eventSource": ["medialive.amazonaws.com"],
"eventName": ["StartChannel"]
},
"resources": ["arn:aws:medialive:us-west-2:111122223333:channel:1234567"]
}

我们还尝试使用";AWS API Call via Cloudtrail";但这并不好,因为它没有指定事件,只是状态的改变:

{
"version": "0",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"detail-type": "MediaLive Channel State Change",
"source": "aws.medialive",
"account": "111122223333",
"time": "1970-01-01T00:00:00Z",
"region": "us-east-2",
"resources": ["arn:aws:medialive:us-west-2:111122223333:channel:1234567"],
"detail": {
"pipeline": "1",
"message": "Pipeline started for channel"
}
} 

有什么想法吗?

我们终于得到了它:

{
"source": ["aws.medialive"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["medialive.amazonaws.com"],
"eventName": ["StartChannel"],
"responseElements": {
"arn": [{
"prefix": "arn:aws:medialive:us-west-2:111122223333:channel:1234567"
}]
}
}
}

成功了。干杯

最新更新