教程:将 Azure 媒体服务事件存储在 Azure Log Analytics 中
警告
Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南。
Azure 媒体服务事件
Azure 媒体服务 v3 在 Azure 事件网格上发出事件。 你可以通过多种方式订阅事件并将其存储在数据存储中。 在本教程中,你将使用逻辑应用流订阅媒体服务事件。 系统将为每个事件触发逻辑应用,并将事件的主体存储在 Azure Log Analytics 中。 一旦将事件存储到 Azure Log Analytics 中,就可以使用其他 Azure 服务来创建仪表板、监视这些事件并针对其发出警报,但本教程不会对此进行介绍。
将了解如何执行以下操作:
- 创建无代码逻辑应用流
- 订阅 Azure 媒体服务事件主题
- 分析事件并存储到 Azure Log Analytics
- 从 Azure Log Analytics 查询事件
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
先决条件
- Azure 订阅。
- 媒体服务帐户和资源组。
- Log Analytics 工作区
使用逻辑应用订阅媒体服务事件
- 在 Azure 门户中,如果尚未执行此操作,则创建一个 Log Analytics 工作区。 你需要工作区 ID 和其中一个密钥,因此请使该浏览器窗口保持打开状态。 然后,在另一个选项卡或窗口中打开门户。
- 导航到要使用的媒体服务帐户。
- 选择“事件”。 这将显示订阅 Azure 媒体服务事件的所有方法。
- 选择“逻辑应用”以创建逻辑应用。 这将打开逻辑应用设计器,你可以在其中创建流来捕获事件,并将其推送到 Log Analytics。
- 选择“登录”进行 Azure 事件网格连接。
- 选择要使用的租户(订阅)。 将显示登录屏幕。
- 登录到你的 Azure 帐户。
- 选择“登录”。 逻辑应用将连接到该订阅的 Azure 事件网格。
- 选择“继续”。 将出现“当资源事件发生时”屏幕。
- 将“订阅”字段中的值保留为原样。
- 从“资源类型”下拉列表中选择“Microsoft.Media.MediaServices”。
- 选择“事件类型项”。 此时将列出 Azure 媒体服务发出的所有事件。 可以选择要跟踪的事件。可以添加多个事件类型。 (稍后将对逻辑应用流进行一些小的更改,以将每个事件类型存储在单独的 Log Analytics 日志中,并将事件类型名称动态传播到 Log Analytics 日志名称。)
- 选择“另存为”。
- 为逻辑应用命名。 默认情况下,资源组处于选中状态。 其他设置保持不变,然后选择“创建”。 你将返回到 Azure 主屏幕。
创建操作
你已订阅事件,接下来创建操作。
- 如果门户已将你带回主屏幕,请导航回到刚刚创建的逻辑应用,方法是在“所有资源”中搜索应用名称。
- 选择要使用的应用。
- 选择“逻辑应用设计器”。 将显示设计器屏幕。
- 选择“+ 新步骤”。
- 搜索“Azure Log Analytics 数据收集器”,然后选择它。
- 返回到 Log Analytics 工作区的标签页或窗口。
- 选择“代理”。 这将显示已生成的代理密钥。
- 选择 Log Analytics 代理说明旁边的向下箭头。
- 复制“工作区 ID”值。
- 在另一个浏览器选项卡或窗口中的 Azure Log Analytics 数据收集器下,选择“发送数据”,为连接命名,然后将工作区 ID 粘贴到“工作区 ID”字段中。
- 返回到“工作区”浏览器标签页或窗口,然后复制“主密钥”值。
- 在另一个浏览器标签页或窗口中,将主密钥值粘贴到“工作区密钥”字段中。
- 选择“创建” 。 现在,你将创建 JSON 请求正文和自定义日志名称。
- 选择“JSON 请求正文”字段。 此时将显示指向“添加动态内容”的链接。
- 选择“添加动态内容”。
- 选择“主题”。
- 选择“自定义日志名称”。 此时将显示指向“添加动态内容”的链接。
- 选择“主题”
- 选择逻辑应用的代码视图。 查找“Inputs”和“Log-Type”行。
- 在“操作”下查找项。
- 将
body
的值从"@triggerBody()?['topic']"
更改为"@{triggerBody()}"
。 这是为了向 Log Analytics 分析整条消息。 - 将
Log-Type
从"@triggerBody()?['topic']"
更改为"@replace(triggerBody()?['eventType'],'.','')"
。 (这将替换“.”,因为它们不能出现在 Log Analytics 日志名称中。) - 选择“保存” 。
- 若要进行验证,请选择“逻辑应用设计器”。
- 当你检查资源组中的所有资源时,系统会列出一个逻辑应用和两个逻辑应用 API 连接器(一个用于事件,一个用于 Log Analytics)。 有关事件网格系统主题的详细信息,请阅读事件网格系统主题。
测试
创建逻辑应用后,创建实时事件并使用本地实时编码器启动实时传送流。 如果之前尚未为媒体服务设置实时事件,请尝试 OBS 快速入门
验证事件
在实时流中,Azure 媒体服务会发出各种触发逻辑应用流的事件。 若要进行验证,请导航到逻辑应用,并确定媒体服务中的事件是否触发了任何触发器。
- 导航到逻辑应用概述页,应会看到“运行历史记录”列出了已成功完成的作业。
- 选择一个成功的作业。 系统将显示运行时作业的详细信息。
- 选择“发送数据”将其展开。 在本例中,
MicrosoftMediaLiveEventEncoderConnected
事件显示它已被捕获,并显示分析后的正文。 这是推送到 Azure Log Analytics 工作区的内容。
验证日志
导航到先前创建的 Log Analytics 工作区。
选择“日志”。
关闭“示例查询”弹出窗口。
将出现一个“自定义日志”列表。 选择向下箭头将其展开。 在这里,你将看到事件名称
MicrosoftMediaLiveEventEncoderConnected
。选择该事件名称将其展开。
选择“眼睛”图标时,它将显示查询结果的预览。
选择“在查询编辑器中查看”,然后选择“TimeGenerated UTC”列表下的项,以将其展开并查看原始数据。
删除资源
如果不想继续使用在本教程中创建的资源,请确保删除资源组中的所有资源,否则系统将继续收费。