Azure 事件网格是针对云的事件处理服务。 在本快速入门中,你将使用 Azure PowerShell 订阅 Azure Cache for Redis 事件、触发事件并查看结果。
通常,你会将事件发送到处理事件数据并执行操作的终结点。 但是,为了简化本快速入门,你需要将事件发送到要收集和显示消息的 Web 应用。 完成本快速入门所述步骤后,即可看到事件数据已发送到 Web 应用。
本快速入门要求运行最新版本的 Azure PowerShell。 如需进行安装或升级,请参阅安装和配置 Azure PowerShell。
使用 Connect-AzAccount -Environment AzureChinaCloud
命令登录到 Azure 订阅,然后按照屏幕上的说明进行身份验证。
Connect-AzAccount -Environment AzureChinaCloud
此示例使用 chinanorth2,并将所选内容存储在变量中以供整个过程使用。
$location = "chinanorth2"
事件网格主题部署为单个 Azure 资源,且必须在 Azure 资源组下进行预配。 资源组是在其中部署和管理 Azure 资源的逻辑集合。
使用 New-AzResourceGroup 命令创建资源组。
以下示例在“chinanorth2”位置创建名为“gridResourceGroup”的资源组。
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
New-AzRedisCache
-ResourceGroupName <String>
-Name <String>
-Location <String>
[-Size <String>]
[-Sku <String>]
[-RedisConfiguration <Hashtable>]
[-EnableNonSslPort <Boolean>]
[-TenantSettings <Hashtable>]
[-ShardCount <Int32>]
[-MinimumTlsVersion <String>]
[-SubnetId <String>]
[-StaticIP <String>]
[-Tag <Hashtable>]
[-Zone <String[]>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
若要详细了解如何在 PowerShell 中创建缓存实例,请查看 Azure PowerShell 参考。
在订阅主题之前,让我们创建事件消息的终结点。 通常情况下,终结点基于事件数据执行操作。 为了简化此快速入门,将部署用于显示事件消息的预建的 Web 应用。 所部署的解决方案包括应用服务计划、应用服务 Web 应用和 GitHub 中的源代码。
将 <your-site-name>
替换为 Web 应用的唯一名称。 Web 应用名称必须唯一,因为它是 DNS 条目的一部分。
$sitename="<your-site-name>"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroup `
-TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" `
-siteName $sitename `
-hostingPlanName viewerhost
部署可能需要几分钟才能完成。 部署成功后,请查看 Web 应用以确保它正在运行。 在 Web 浏览器中导航到 https://<your-site-name>.chinacloudsites.cn
应会看到站点上当前未显示任何消息。
在此步骤中,你将订阅主题,使事件网格知道你想要跟踪哪些事件。以下示例将订阅你创建的缓存实例,并将 Web 应用中的 URL 作为事件通知的终结点进行传递。 Web 应用的终结点必须包括后缀 /api/updates/
。
$cacheId = (Get-AzRedisCache -ResourceGroupName $resourceGroup -Name $cacheName).Id
$endpoint="https://$sitename.chinacloudsites.cn/api/updates"
New-AzEventGridSubscription `
-EventSubscriptionName <event_subscription_name> `
-Endpoint $endpoint `
-ResourceId $cacheId
再次查看 Web 应用,并注意现已向该应用发送了订阅验证事件。 选择眼睛图标以展开事件数据。 事件网格发送验证事件,以便终结点可以验证它是否想要接收事件数据。 Web 应用包含用于验证订阅的代码。
现在,让我们触发一个事件,看事件网格如何将消息分发到终结点。
Import-AzRedisCache
[-ResourceGroupName <String>]
-Name <String>
-Files <String[]>
[-Format <String>]
[-Force]
[-PassThru]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
若要详细了解如何在 PowerShell 中导入内容,请查看 Azure PowerShell 参考。
现已触发事件,并且事件网格已将消息发送到订阅时配置的终结点。 查看 Web 应用以查看刚刚发送的事件。
[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
"eventType": "Microsoft.Cache.ImportRDBCompleted",
"topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
"data": {
"name": "ImportRDBCompleted",
"timestamp": "2020-12-10T18:07:54.4937063+00:00",
"status": "Succeeded"
},
"subject": "ImportRDBCompleted",
"dataversion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]
如果计划继续使用此 Azure Cache for Redis 实例和事件订阅,请不要清理在本快速入门中创建的资源。 如果不打算继续学习,请使用以下命令删除这些资源。
Remove-AzResourceGroup -Name $resourceGroup
你现已了解如何创建主题和事件订阅后,接下来请详细了解 Azure Cache for Redis 事件以及事件网格的功能: