AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();
AWSMediaLive mediaLiveClient = AWSMediaLiveClientBuilder.standard()
.withCredentials(credentialsProvider)
.withRegion(region)
.build();
public void handleStreamEvent(InputStream inputStream, OutputStream outputStream, Context context) throws Exception {
// 从事件中解析出流 ID 和事件类型
Map event = (Map) new ObjectMapper().readValue(inputStream, Map.class);
String streamId = (String) ((Map) event.get("detail")).get("streamId");
String eventType = (String) event.get("detail-type");
// 根据事件类型执行相应的操作
if (eventType.equals("MediaLive Channel State Change")) {
// Check if the channel is started
DescribeChannelRequest describeChannelRequest = new DescribeChannelRequest().withChannelId(streamId);
DescribeChannelResult describeChannelResult = mediaLiveClient.describeChannel(describeChannelRequest);
ChannelState channelState = describeChannelResult.getChannel().getState();
if (channelState.equals(ChannelState.RUNNING)) {
// Channel has started
// Do something
} else {
// Channel has not started
// Do something else
}
} else {
// Other event types
// Do something else
}
}
使用 AWS Lambda 控制台创建一个新的 Lambda 函数,并将 Lambda 函数代码 Zip 归档文件上传。确保使用正确的 IAM 角色和执行程序。
创建一个新的 Amazon EventBridge 规则来触发 Lambda 函数。在规则配置中,选择 AWS MediaLive 服务,并定义所需的过滤器和目标。
完成上述操作后,您的 Lambda 函数现在应该能够准确地处理 AWS MediaLive 流开始和停止事件,并执行所需的操作。