Краткое руководство. Подписка на события Службы коммуникации Azure
Из этого краткого руководства вы узнаете, как подписаться на события из Службы коммуникации Azure с помощью портала, Azure CLI, PowerShell и пакета SDK для .NET.
Вы можете настроить подписки на события для ресурсов Служб коммуникации с помощью портал Azure или Azure CLI, PowerShell или пакета SDK для управления сеткой событий Azure.
В этом кратком руководстве мы рассмотрим процесс настройки веб-перехватчика в качестве подписчика для событий SMS из Службы коммуникации Azure. Полный список событий см. на этой странице.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Ресурс Службы коммуникации Azure.
- Создайте веб-перехватчик для получения событий. Доставка событий веб-перехватчика.
Регистрация поставщика ресурсов Сетки событий
В этой статье описывается регистрация поставщика ресурсов Сетки событий. Если вы использовали сетку событий раньше в той же подписке, перейдите к следующему разделу.
На портале Azure сделайте следующее:
В меню слева выберите Подписки.
Выберите подписку, которую вы хотите использовать для сетки событий из списка подписок.
На странице Подписка выберите Поставщики ресурсов в разделе Параметры в меню слева.
Найдите Microsoft.EventGrid и убедитесь, что состояние не зарегистрировано.
Выберите Microsoft.EventGrid в списке поставщиков.
Выберите Зарегистрировать на панели команд.
Обновите страницу, чтобы убедиться, что состояние Microsoft.EventGrid изменено на Зарегистрировано.
Создание подписки на события
Чтобы создать подписку на события для Службы коммуникации Azure, выполните следующие действия. В этой статье показано, как создать подписку на событие для Службы коммуникации Azure для получения событий через веб-перехватчик.
Чтобы создать подписку на событие для ресурса Службы коммуникации Azure, сначала войдите в портал Azure. В левом верхнем углу страницы выберите ресурс Служб коммуникации.
- Выберите вкладку "События" в меню слева.
- Выберите " + Подписка на события".
- На странице Создать подписку на событие выполните следующие действия:
Укажите имя для подписки на событие.
Введите имя для имени раздела системы.
Выберите типы событий, которые необходимо получить в подписке на события.
Дополнительные сведения о событиях служб коммуникации см. в разделе "События служб коммуникации"
Выберите тип конечной точки в качестве веб-перехватчика.
Выберите " Настроить конечную точку"
Введите ссылку на веб-перехватчик и выберите " Подтвердить выбор".
На вкладке "Фильтры" добавьте имена типов событий, которые нужно отфильтровать в подписке, и добавить фильтры атрибутов контекста, которые вы хотите использовать в подписке. Затем нажмите кнопку Далее: Дополнительные функции в нижней части страницы.
Чтобы включить сохранение недоставленых событий и настроить политики повтора, выберите Дополнительные функции.
Затем выберите Создать.
Обновление подписки на события
Чтобы обновить подписку на событие для Службы коммуникации Azure, выполните следующие действия. В этом разделе показано, как обновить подписку на события для Службы коммуникации Azure, чтобы обновить события, которые вы хотите получить через веб-перехватчик.
Чтобы обновить подписку на событие для ресурса Службы коммуникации Azure, сначала войдите в портал Azure. В левом верхнем углу страницы выберите ресурс Служб коммуникации.
Выберите вкладку "События" в меню слева.
Выберите подписки на события и выберите подписку на события, которую вы хотите обновить.
На странице "Подписка на события" выберите вкладку "Фильтры". Выберите типы событий, которые необходимо получить в подписке на события.
Чтобы включить сохранение недоставленых событий и настроить политики повтора, выберите Дополнительные функции.
Чтобы обновить веб-перехватчик для получения событий, нажмите кнопку "Изменить рядом с ссылкой веб-перехватчика" и введите новую конечную точку веб-перехватчика.
Удалить подписку на события
Чтобы удалить подписку на события для Службы коммуникации Azure, выполните следующие действия.
Чтобы удалить подписку на событие для ресурса Службы коммуникации Azure, сначала войдите в портал Azure. В левом верхнем углу страницы выберите ресурс Служб коммуникации.
Выберите вкладку "События" в меню слева.
Выберите подписки на события и выберите подписку на события, которую вы хотите удалить.
На странице "Подписка на события" нажмите кнопку "Удалить" в верхней части страницы.
Следующие шаги
- Список событий служб коммуникации см. в разделе "События служб коммуникации".
- Список поддерживаемых обработчиков событий см. в статье Обработчики событий.
- См. дополнительные сведения о доставке сообщений и повторных попытках в Сетке событий.
- Общие сведения о службе "Сетка событий" см. в разделе Общие сведения о службе "Сетка событий Azure".
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установка интерфейса командной строки Azure
- Ресурс Служб коммуникации Azure
- Создайте веб-перехватчик для получения событий. Доставка событий веб-перехватчика
Регистрация поставщика ресурсов Сетки событий
В этой статье описывается регистрация поставщика ресурсов Сетки событий. Если вы использовали сетку событий раньше в той же подписке, перейдите к следующему разделу.
Выполните следующую команду для регистрации поставщика:
az provider register --namespace Microsoft.EventGrid
Регистрация может занять некоторое время. Чтобы проверка состояние, выполните следующую команду:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Когда состояние
registrationState
изменится наRegistered
, вы сможете продолжить работу.
Создание подписки на события
Чтобы создать подписки на события для ресурса Службы коммуникации 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, с помощью Azure CLI используйте 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>
Следующие шаги
- Дополнительные сведения о других командах см. в Сетка событий Azure CLI.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Последняя версия пакета SDK для .NET Core для вашей операционной системы.
- Получите последнюю версию пакета SDK для управления .NET для Microsoft Сетка событий Azure.
- Получите последнюю версию библиотеки удостоверений Azure.
- Ресурс Службы коммуникации Azure.
Регистрация поставщика ресурсов Сетки событий
В этой статье описывается регистрация поставщика ресурсов Сетки событий. Если вы использовали сетку событий раньше в той же подписке, перейдите к следующему разделу.
На портале Azure сделайте следующее:
В меню слева выберите Подписки.
Выберите подписку, которую вы хотите использовать для сетки событий из списка подписок.
На странице Подписка выберите Поставщики ресурсов в разделе Параметры в меню слева.
Найдите Microsoft.EventGrid и убедитесь, что состояние не зарегистрировано.
Выберите Microsoft.EventGrid в списке поставщиков.
Выберите Зарегистрировать на панели команд.
Обновите страницу, чтобы убедиться, что состояние Microsoft.EventGrid изменено на Зарегистрировано.
Установка пакета SDK
Сначала установите библиотеку управления Microsoft Сетка событий Azure для .NET с помощью NuGet:
dotnet add package Azure.ResourceManager.EventGrid;
Включите пакет SDK для управления сеткой событий в проект C#:
using Microsoft.Azure.Management.EventGrid;
using Microsoft.Azure.Management.EventGrid.Models;
Проверка подлинности с помощью библиотеки удостоверений Azure
Необходимые условия:
- Создайте приложение Microsoft Entra и субъект-службу и настройте секрет клиента или доверенный сертификат, выданный центром сертификации, следуя инструкциям ниже.
- Сохраните секрет или сертификат в Azure Keyvault.
- Предоставьте участник или владельцу доступ к подписке в этом приложении, следуя инструкциям ниже.
- Дополнительные сведения о авторизации доступа к ресурсам Сетки событий см. здесь.
Библиотека удостоверений Azure предоставляет поддержку проверки подлинности маркера Microsoft Entra ID (ранее Azure Active Directory) в пакете SDK Azure. Он предоставляет набор реализаций TokenCredential, которые можно использовать для создания клиентов пакета SDK Azure, поддерживающих проверку подлинности маркера Microsoft Entra. Подробнее об этом можно прочитать здесь.
- Включите клиентную библиотеку удостоверений Azure для .NET с NuGet:
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
- Включение библиотеки удостоверений Azure в проект C#
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
Вы можете передать секретные учетные данные или учетные данные сертификата для получения маркера доступа на основе настройки субъекта-службы.
Получение маркера доступа с помощью секретных учетных данных
Чтобы получить учетные данные секрета, необходимо прочитать его из keyvault, созданного в компоненте "Предварительные требования 2" с помощью SecretClient.
// Authenticate the Keyvault client with DefaultAzureCredential and get the secret. SecretClient secretClient = new SecretClient(new Uri("https://myvault.vault.azure.net/"), new DefaultAzureCredential()); string clientSecret = await secretClient.GetSecretAsync(secretName).Value; // Get access token using secret credentials string[] scopes = { "https://management.azure.com/.default" }; var application = ConfidentialClientApplicationBuilder .Create('your-servicePrincipal-appId') .WithAuthority(authorityUri: new Uri(authority), validateAuthority: true) .WithTenantId('your-tenant_id') .WithClientSecret(clientSecret) .Build(); var token = await application .AcquireTokenForClient(scopes) .ExecuteAsync();
Получение маркера доступа с помощью учетных данных сертификата
Чтобы получить учетные данные сертификата, необходимо прочитать его из keyvault, созданного в компоненте "Предварительные требования 2" с помощью CertificateClient.
Дополнительные сведения о центре конфигурации приложений Microsoft Entra см. здесь
// Authenticate the certificate client with DefaultAzureCredential and get the certificate. CertificateClient certificateClient = new SecretClient(new Uri("https://myvault.vault.azure.net/"), new DefaultAzureCredential()); X509Certificat2 cert = await certificateClient.DownloadCertificateAsync(certificateName); // Get access token using certificate credentials string[] scopes = { "https://management.azure.com/.default" }; string authority = "https://login.microsoftonline.com/<tenant>/"; var application = ConfidentialClientApplicationBuilder .Create('<servicePrincipal-appId>') .WithAuthority(authorityUri: new Uri(authority), validateAuthority: true) .WithTenantId("<tenantId>") .WithCertificate(cert) .Build(); var token = await application .AcquireTokenForClient(scopes) .WithSendX5C(true) .ExecuteAsync();
Проверка подлинности EventGridManagementClient с помощью маркера доступа с помощью учетных данных секрета или сертификата
// Authenticate EventGridManagementClient with Microsoft Entra ID access token credential
eventGridClient = new EventGridManagementClient(new Uri("https://management.azure.com/"),
new TokenCredentials(token.AccessToken));
eventGridClient.SubscriptionId = 'your_subscripiton_id';
Создание подписки на события
В этом примере кода показано, как создать подписку на события для конечной точки подписчика веб-перехватчика.
string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";
string[] includedEventTypes = new string[]{ "Microsoft.Communication.SMSReceived",
"Microsoft.Communication.SMSDeliveryReportReceived"
};
EventSubscription eventSubscription = new EventSubscription(
name: "<eventSubscriptionName>",
eventDeliverySchema: "EventGridSchema",
filter: new EventSubscriptionFilter(
includedEventTypes: includedEventTypes),
destination: new WebHookEventSubscriptionDestination(webhookUri));
await eventGridClient.EventSubscriptions.CreateOrUpdateAsync(
scope: resourceId,
eventSubscriptionName: "<eventSubscriptionName>",
eventSubscriptionInfo: eventSubscription);
Обновление подписки на события
В этом примере кода показано, как обновить подписку на события для добавления дополнительных событий, которые необходимо получить в конечной точке подписчика веб-перехватчика.
string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";
string[] additionalEventTypes = new string[]{
"Microsoft.Communication.ChatMessageReceived"
};
await eventGridClient.EventSubscriptions.UpdateAsync(
scope: resourceId,
eventSubscriptionName: "<eventSubscriptionName>",
eventSubscriptionUpdateParameters: new EventSubscriptionUpdateParameters(
filter: new EventSubscriptionFilter(includedEventTypes: additionalEventTypes)));
Удаление подписки на события
В этом примере кода показано, как удалить подписку на события для конечной точки подписчика веб-перехватчика.
string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";
await eventGridClient.EventSubscriptions.DeleteAsync(
scope: resourceId,
eventSubscriptionName: "<eventSubscriptionName>");
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установка модуля Azure Az PowerShell
- Ресурс Служб коммуникации Azure
- Создайте веб-перехватчик для получения событий. Доставка событий веб-перехватчика
Регистрация поставщика ресурсов Сетки событий
В этой статье описывается регистрация поставщика ресурсов сетки событий. Если вы использовали сетку событий раньше в той же подписке, перейдите к следующему разделу.
- Выполните следующую команду:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- Регистрация может занять некоторое время. Чтобы проверить состояние, выполните следующую команду:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Когда состояние RegistrationStatus
изменится на Registered
, вы сможете продолжить работу.
Создание подписки на события
Сначала необходимо установить модуль Служб коммуникации Azure Az.EventGrid
с помощью следующей команды.
PS C:\> Install-Module Az.EventGrid
С помощью команды Connect-AzAccount войдите в подписку Azure и следуйте инструкциям на экране:
Connect-AzAccount
Если удостоверение связано с несколькими подписками, установите активную подписку на подписку ресурса 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, с помощью Azure PowerShell используйте 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
Следующие шаги
- Дополнительные сведения о других командах см. в разделе "Модуль PowerShell Az.EventGrid".
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по