你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

订阅事件

本文介绍如何通过门户、Azure CLI、PowerShell 和 .NET SDK 从 Azure 通信服务订阅事件。

可以通过 Azure 门户或 Azure CLI、PowerShell 或者使用 Azure 事件网格管理 SDK 为通信服务资源设置事件订阅。

本文描述了将 Webhook 设置为 Azure 通信服务中短信事件的订阅者过程。 有关事件的完整列表,请参阅 Azure 通信服务作为 Azure 事件网格源

先决条件

注册事件网格资源提供程序

本文介绍如何注册事件网格资源提供程序。 如果之前在同一订阅中使用了事件网格,请跳到下一部分。

在 Azure 门户中,执行以下步骤:

  1. 在左侧菜单中选择“订阅”。

  2. 从订阅列表中选择要用于事件网格的订阅

  3. 在“订阅”页左侧菜单的“设置”下,选择“资源提供程序”。

  4. 搜索 Microsoft.EventGrid,并确认“状态”为“未注册”。

  5. 在提供程序列表中选择“Microsoft.EventGrid”。

  6. 在命令栏上选择“注册”。

    显示向 Azure 订阅注册 Microsoft.EventGrid 提供程序的图像。

  7. 刷新以确保 Microsoft.EventGrid 的状态更改为“已注册”。

    图像显示 Microsoft.EventGrid 提供程序已成功注册到 Azure 订阅。

创建事件订阅

若要为 Azure 通信服务资源创建事件订阅,请首先登录到 Azure 门户。 在页面左上角,选择通信服务资源。

  1. 在左侧菜单上选择“事件”选项卡。

  2. 选择“+ 事件订阅”。

    突出显示 Azure 门户中的“创建事件订阅”按钮的屏幕截图。

  3. 在“创建事件订阅”页上执行以下步骤:

    1. 输入事件订阅的名称。

    2. 在“系统主题名称”字段中输入一个名称。

    3. 选择要在事件订阅中接收的事件类型。

      显示选择事件类型的屏幕截图。

      有关详细信息,请参阅通信服务事件

    4. 选择“Web Hook”作为终结点类型。

      显示选择终结点类型的屏幕截图。

    5. 选择“配置终结点”

      突出显示 Azure 门户中“创建事件”页的屏幕截图。

    6. 输入 Webhook 的链接,然后选择“确认选择”

      突出显示 Azure 门户中“选择 Webhook 终结点”页的屏幕截图。

    7. 在“筛选器”选项卡中,添加要在订阅中筛选的事件类型的名称。 添加要在订阅中使用的任何上下文属性筛选器。 然后,在页面底部选择“下一步: 其他功能”

      突出显示 Azure 门户中“事件网格创建筛选器”页的屏幕截图。

    8. 若要启用死信和自定义重试策略,请选择“其他功能”

      显示“创建事件订阅”页的“其他功能”选项卡的屏幕截图。

    9. 完成后,选择“创建”。

更新事件订阅

本部分介绍如何更新 Azure 通信服务事件订阅,以更新想要通过 Webhook 接收的事件。

若要更新 Azure 通信服务资源事件订阅,请首先登录到 Azure 门户。 在页面左上角,选择通信服务资源。

  1. 在左侧菜单上选择“事件”选项卡。

  2. 选择“事件订阅”,然后选择要更新的事件订阅

    突出显示 Azure 门户中的事件订阅按钮的屏幕截图。

  3. 在“事件订阅”页上,选择“筛选器”选项卡。选择要在事件订阅中接收的事件类型。

    显示选择要更新的事件类型的屏幕截图。

  4. 若要启用死信和自定义重试策略,请选择“其他功能”

    显示“更新事件订阅”页的“其他功能”选项卡的屏幕截图。

  5. 若要更新 Webhook 以接收事件,请选择 Webhook 链接旁边的“更改”,然后输入新的 Webhook 终结点

    显示“事件订阅”页中的“更改 Webhook 终结点”链接的屏幕截图。

  6. 完成后,选择“保存”

    显示 Azure 门户中的“保存”按钮的屏幕截图。

删除事件订阅

若要删除 Azure 通信服务的事件订阅,请使用以下步骤。

若要删除 Azure 通信服务资源事件订阅,请首先登录到 Azure 门户。 在页面左上角,选择通信服务资源。

  1. 在左侧菜单上选择“事件”选项卡。

  2. 选择“事件订阅”,然后选择要删除的事件订阅

    突出显示在 Azure 门户中用于访问要删除事件订阅的“事件订阅”按钮的屏幕截图。

  3. 在“事件订阅”页上,从页面顶部选择“删除”。

    突出显示 Azure 门户中的“删除”按钮的屏幕截图。

后续步骤

先决条件

注册事件网格资源提供程序

本文介绍如何注册事件网格资源提供程序。 如果之前在同一订阅中使用了事件网格,请跳到下一部分。

  1. 运行以下命令,注册提供程序:

    az provider register --namespace Microsoft.EventGrid
    
  2. 完成注册可能需要一些时间。 若要查看状态,请运行以下命令:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    registrationStateRegistered 后,即可继续。

创建事件订阅

若要为 Azure 通信服务资源创建事件订阅,请登录 Azure CLI。 可以从终端运行 az login 命令并提供凭据进行登录。

若要使用 Azure CLI 创建事件订阅,请使用 az eventgrid event-subscription create 命令:

az eventgrid event-subscription create 
    --name EventsWebhookSubscription
    --source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
    --included-event-types Microsoft.Communication.SMSReceived Microsoft.Communication.SMSDeliveryReportReceived
    --endpoint-type webhook 
    --endpoint https://azureeventgridviewer.azurewebsites.net/api/updates  

有关通信服务事件的列表,请参阅通信服务事件

列出事件订阅

若要使用 Azure CLI 列出为 Azure 通信服务资源设置的所有现有事件订阅,请使用 az eventgrid event-subscription list 命令。

az eventgrid event-subscription list 
    --source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>    

更新事件订阅

若要使用 Azure CLI 更新现有事件订阅,请使用 az eventgrid event-subscription update 命令。

az eventgrid event-subscription update 
    --name EventsWebhookSubscription
    --source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
    --included-event-types Microsoft.Communication.SMSReceived Microsoft.Communication.SMSDeliveryReportReceived Microsoft.Communication.ChatMessageReceived
    --endpoint-type webhook 
    --endpoint https://azureeventgridviewer.azurewebsites.net/api/updates

删除事件订阅

若要使用 Azure CLI 删除现有事件订阅,请使用 az eventgrid event-subscription delete 命令。

az eventgrid event-subscription delete 
    --name EventsWebhookSubscription 
    --source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>

后续步骤

先决条件

注册事件网格资源提供程序

本文介绍如何注册事件网格资源提供程序。 如果之前在同一订阅中使用了事件网格,请跳到下一部分。

  1. 运行以下命令:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. 完成注册可能需要一些时间。 若要检查状态,请运行:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

RegistrationStatusRegistered 后,即可继续。

创建事件订阅

首先,使用以下命令安装 Azure 通信服务模块 Az.EventGrid

PS C:\> Install-Module Az.EventGrid
  1. 使用 Connect-AzAccount 命令登录到 Azure 订阅,然后按屏幕说明操作。
Connect-AzAccount
  1. 如果你的标识已关联到多个订阅,请将你的活动订阅设置为要移动的 Web PubSub 资源的订阅。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context

若要使用 Azure PowerShell 创建事件订阅,请使用 New-AzEventGridSubscription 命令。

$includedEventTypes = "Microsoft.Communication.SMSReceived", "Microsoft.Communication.SMSDeliveryReportReceived"
New-AzEventGridSubscription 
    -EndpointType webhook
    -Endpoint https://azureeventgridviewer.azurewebsites.net/api/updates
    -EventSubscriptionName EventsWebhookSubscription 
    -IncludedEventType $includedEventTypes
    -ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>"

有关通信服务事件的列表,请参阅通信服务事件

列出事件订阅

若要使用 Azure PowerShell 列出为 Azure 通信服务资源设置的所有现有事件订阅,请使用 Get-AzEventGridSubscription 命令。

Get-AzEventGridSubscription 
    -ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>"

更新事件订阅

若要使用 Azure PowerShell 更新现有事件订阅,请使用 Update-AzEventGridSubscription 命令。

$includedEventTypes = "Microsoft.Communication.SMSReceived", "Microsoft.Communication.SMSDeliveryReportReceived", "Microsoft.Communication.ChatMessageReceived"
Update-AzEventGridSubscription 
    -EventSubscriptionName ES2 
    -IncludedEventType $includedEventTypes
    -ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>" 
    -Endpoint https://azureeventgridviewer2.azurewebsites.net/api/updates
    -SubjectEndsWith "phoneNumber"
 

删除事件订阅

若要使用 Azure PowerShell 删除现有事件订阅,请使用 Remove-AzEventGridSubscription 命令。

Get-AzResource 
    -ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>" | Remove-AzEventGridSubscription -EventSubscriptionName ES2

后续步骤