Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
在本快速入门中,你将创建一个主题,使用 Webhook 终结点创建该主题的订阅,触发示例事件,然后查看结果。 通常,你会将事件发送到处理事件数据并执行操作的终结点。 但是,为了简化本教程,你会将事件发送到收集并显示消息的 Web 应用。
先决条件
- 如果没有Azure订阅,请在开始前创建一个 trial 帐户。
- 如果你不熟悉Azure Event Grid,请参阅 Event Grid 概述。
创建自定义主题
事件网格主题提供用户定义的终结点,可向其发布事件。
登录到 Azure 门户。
在主题的搜索栏中,键入“事件网格主题”,然后从下拉列表中选择“事件网格主题” 。
在“事件网格主题”页上的工具栏中选择“+ 创建”。
在“创建主题”页上执行以下步骤:
部署成功后,选择“转到资源”以导航到您的主题的Event Grid Topic页。 请将此页保持打开状态, 稍后在本快速入门中需要使用它。
注意
为保持快速入门的简单性,只需使用 '基本信息' 页即可创建主题。 有关在向导的其他页面上配置网络、安全性和数据驻留设置的详细步骤,请参阅创建自定义主题。
创建消息终结点
在为自定义主题创建订阅之前,请先创建事件消息的终结点。 通常情况下,终结点基于事件数据执行操作。 为了简化本快速入门,请部署显示事件消息的 预生成的 Web 应用。 部署的解决方案包括应用服务计划、应用服务 Web 应用以及来自GitHub的源代码。
在本文中,选择 部署到 Azure 将方案部署到您的订阅。 在Azure门户中,提供参数的值。
在 “自定义部署 ”页上,完成以下步骤:
在“查看 + 创建”页面上,选择“创建”。
部署可能需要几分钟时间才能完成。 在门户中选择 “警报 ”(钟形图标),然后选择“ 转到资源组”。
在“资源组”页上,在资源列表中,选择你创建的 Web 应用(在以下示例中为 contosoegriviewer)。
在 Web 应用的“应用服务”页上,选择相应的 URL 以导航到该网站。 URL 应采用以下格式:
https://<your-site-name>.chinacloudsites.cn。确认你可以看到站点,但尚未有任何活动发布到站点。
订阅自定义主题
订阅事件网格主题,告知事件网格要跟踪哪些事件,以及发送事件的位置。
在自定义主题的“事件网格主题”页上的工具栏中,选择“+ 事件订阅”。
在“创建事件订阅”页上执行以下步骤:
再次查看 Web 应用,你会注意到系统已向该应用发送订阅验证事件。 选择眼睛图标以展开事件数据。 事件网格发送验证事件,以便终结点可以验证它是否想要接收事件数据。 Web 应用包含用于验证订阅的代码。
向您的主题发送事件
现在,触发一个事件,看看事件网格如何将消息分发到终结点。 使用Azure CLI或 PowerShell 将测试事件发送到自定义主题。 通常,应用程序或Azure服务发送事件数据。
第一个示例使用Azure CLI。 它获取自定义主题的 URL 和密钥,以及示例事件数据。 将自定义主题名称用于 <topic name>。 它将创建示例事件数据。 JSON 的 data 元素是事件的有效负载。 可以将任何格式正确的 JSON 置于此字段中。 也可将主题字段用于高级路由和筛选。 CURL 是发送 HTTP 请求的实用工具。
Azure CLI
运行以下命令以获取主题的 终结点 。 复制并粘贴命令后,请在运行命令之前更新主题名称和资源组名称。 将示例事件发布到此主题端点。
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)运行以下命令以获取自定义主题的 密钥 。 复制并粘贴命令后,请在运行命令之前更新主题名称和资源组名称。 它是事件网格主题的主密钥。 若要从 Azure 门户获取此密钥,请切换到 Event Grid Topic 页的 Access keys 选项卡。 若要将事件发布到自定义主题,需要访问密钥。
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)复制以下包含事件定义的语句,然后按 ENTER。
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'运行以下 Curl 命令以发布事件。 在命令中,将
aeg-sas-key标头设置为之前获取的访问密钥。curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
第二个示例使用 PowerShell 执行类似的步骤。
设置以下变量。 复制并粘贴每个命令后,更新主题名称和资源组名称,然后运行该命令:
资源组:
$resourceGroupName = "<resource group name>"事件网格主题名称:
$topicName = "<topic name>"运行以下命令以获取主题的终结点和密钥:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName准备活动。 在 PowerShell 窗口中复制并运行这些语句。
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"使用 Invoke-WebRequest cmdlet 发送事件。
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
在事件网格查看器中验证
你已触发事件,并且事件网格已将消息发送到订阅时配置的终结点。 查看 Web 应用以查看刚刚发送的事件。
清理资源
如果打算继续处理此事件,请不要清除本文中创建的资源。 否则,请删除本文中创建的资源。
在左侧菜单中选择 资源组 。 如果在左侧菜单中看不到它,请在左侧菜单中选择 “所有服务 ”,然后选择 “资源组”。
选择资源组以打开 “资源组 ”页。
在工具栏中选择 “删除资源组 ”。
输入资源组的名称以确认删除,然后选择“删除”。
相关内容
了解如何创建自定义主题和事件订阅后,请详细了解事件网格的功能:
- 将 Blob 存储事件路由到自定义 Web 终结点
- Azure Event Grid 示例适用于 .NET
- 适用于 Java 的 Azure Event Grid 示例