你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本快速入门中,你将使用 Azure CLI 创建一个事件网格自定义主题,并为该主题创建事件中心订阅。 然后,将示例事件发送到该自定义主题,并验证这些事件是否已传递到事件中心。
Azure 事件网格是一个高度可缩放的无服务器事件代理,可用于通过事件集成应用程序。 事件网格将事件传送到支持的事件处理程序,例如 Azure 事件中心。 事件处理程序。
如果没有 Azure 帐户,请在开始前创建一个免费帐户。
创建资源组
事件网格主题是 Azure 资源。 在 Azure 资源组中创建它们。 资源组是在其中部署和管理 Azure 资源的逻辑集合。
使用 az group create 命令创建资源组。 以下示例在 gridResourceGroup 位置创建一个名为 westus2 的资源组。
选择“打开 Cloud Shell”,在右侧窗格中打开 Azure Cloud Shell。 选择 “复制 ”按钮以复制命令,将其粘贴到 Cloud Shell 中,然后选择 Enter 键以运行命令。
az group create --name gridResourceGroup --location westus2
启用事件网格资源提供程序
如果这是首次在 Azure 订阅中使用事件网格,则可能需要注册事件网格资源提供程序。 运行以下命令,注册提供程序:
az provider register --namespace Microsoft.EventGrid完成注册可能需要一些时间。 若要查看状态,请运行以下命令:
az provider show --namespace Microsoft.EventGrid --query "registrationState"当
registrationState为Registered后,即可继续。
创建自定义主题
事件网格主题提供用户定义的终结点,你可向该终结点发布事件。 以下示例在资源组中创建自定义主题。
将 <TOPIC NAME> 替换为自定义主题的唯一名称。 事件网格主题名称必须唯一,因为域名系统 (DNS) 条目表示它。
指定主题的名称:
topicname="<TOPIC NAME>"运行下面的命令来创建主题:
az eventgrid topic create --name $topicname --location westus2 --resource-group gridResourceGroup
创建事件中心
在订阅自定义主题之前,创建事件消息的终结点。 创建用于收集事件的事件中心。
为事件中心命名空间指定唯一的名称:
namespace="<EVENT HUBS NAMESPACE NAME>"运行以下命令,在该命名空间中创建事件中心命名空间和名为
demohub的事件中心:hubname=demohub az eventhubs namespace create --name $namespace --resource-group gridResourceGroup az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup
订阅自定义主题
订阅事件网格主题,告知事件网格要跟踪哪些事件。以下示例订阅创建的自定义主题。 它传递终结点的事件中心的资源 ID。 终结点的格式如下:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>
以下脚本获取事件中心的资源 ID,并订阅事件网格主题。 它将终结点类型设置为 eventhub 并使用终结点的事件中心 ID。
hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name subtoeventhub \
--endpoint-type eventhub \
--endpoint $hubid
创建事件订阅的帐户必须对事件中心具有写权限。
向自定义主题发送事件
触发一个事件,查看事件网格如何将消息分发到终结点。 首先,获取自定义主题的 URL 和密钥:
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
为简单起见,本文使用示例事件数据发送到自定义主题。 通常情况下,应用程序或 Azure 服务会发送事件数据。
cURL 工具发送 HTTP 请求。 本文使用 cURL 向自定义主题发送事件。 以下示例将三个事件发送到事件网格主题:
for i in 1 2 3
do
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 -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
在 Azure 门户中,事件中心命名空间的 “概述 ”页显示事件网格将这三个事件发送到事件中心。
事件中心实例的“概述”页上会显示相同的图表。demohub
通常,你将创建一个从事件中心检索事件消息的应用程序。 有关详细信息,请参阅:
清理资源
如果打算继续使用此自定义主题和订阅,请不要删除本文中创建的资源。 否则,使用以下命令删除资源组:
az group delete --name gridResourceGroup
相关内容
现在你已了解如何创建主题和事件订阅,接下来可详细了解事件网格的功能:
- 关于事件网格
- 将 Azure Blob 存储事件路由到自定义 Web 终结点
- 通过 Azure 事件网格和逻辑应用监视虚拟机的更改
- 将事件中心捕获的数据从 Azure 存储迁移到 Azure Synapse Analytics
若要了解如何使用各种编程语言将事件发布到事件网格以及如何在事件网格中使用事件,请查看以下示例: