Inicio rápido: suscripción a eventos de Azure Communication Services
En este artículo se explica cómo suscribirse a eventos de Azure Communication Services a través del portal, la CLI de Azure, PowerShell y el SDK de .NET.
Puede configurar suscripciones de eventos para los recursos de Communication Services mediante Azure Portal, la CLI de Azure, PowerShell o con el SDK de administración de Event Grid de Azure.
En este inicio rápido se describe el proceso de configuración de un webhook como suscriptor para eventos SMS de Azure Communication Services. Para obtener una lista completa de eventos, consulte Azure Communication Services como origen de Azure Event Grid.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Azure Communication Services.
- Cree un webhook para recibir eventos. Consulte Entrega de eventos de Webhook.
Registro del proveedor de recursos de Event Grid
En este artículo se describe cómo registrar el proveedor de recursos de Event Grid. Si usó Event Grid antes en la misma suscripción, vaya a la siguiente sección.
En Azure Portal, realice los siguientes pasos:
En el menú de la izquierda, seleccione Suscripciones.
Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.
En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.
Busque Microsoft.EventGrid y confirme que el estado es No registrado.
Seleccione Microsoft.EventGrid en la lista de proveedores.
Seleccione Registrar en la barra de comandos.
Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.
Creación de la suscripción de eventos
Para crear una suscripción de eventos para el recurso de Azure Communication Services, inicie sesión primero en Azure Portal. En la esquina superior izquierda de la página, seleccione el recurso de Communication Services.
- Seleccione la pestaña Eventos en el menú de la izquierda.
- Seleccione + Suscripción de eventos.
- En la página Crear suscripción de eventos, siga estos pasos:
Escriba un nombre para la suscripción a eventos.
Escriba un nombre para el tema del sistema.
Seleccione los tipos de eventos que desea recibir en la suscripción de eventos.
Para obtener más información, consulte Eventos de Communication Services.
Seleccione el tipo de punto de conexión como Web Hook.
Seleccione Configurar un punto de conexión
Escriba el vínculo al webhook y seleccione Confirmar selección.
En la pestaña Filtros, agregue los nombres de los tipos de evento que desea filtrar en la suscripción. Agregue los filtros de atributos de contexto que quiera usar en la suscripción. A continuación, seleccione Siguiente: Características adicionales en la parte inferior de la página.
Para habilitar la cola de mensajes fallidos y personalizar las directivas de reintento, seleccione Características adicionales.
Cuando haya terminado, seleccione Crear.
Actualización de suscripción de eventos
En esta sección se muestra cómo actualizar una suscripción de eventos para Azure Communication Services para actualizar los eventos que desea recibir a través de Webhook.
Para actualizar una suscripción de eventos para el recurso de Azure Communication Services, inicie sesión primero en Azure Portal. En la esquina superior izquierda de la página, seleccione el recurso de Communication Services.
Seleccione la pestaña Eventos en el menú de la izquierda.
Seleccione Suscripciones de eventos y seleccione la suscripción de eventos que desea actualizar.
En la página Suscripción de eventos, seleccione la pestaña Filtros. Seleccione los tipos de eventos que desea recibir en la suscripción de eventos.
Para habilitar la cola de mensajes fallidos y personalizar las directivas de reintento, seleccione Características adicionales.
Para actualizar el webhook para recibir eventos, seleccione Cambiar junto al vínculo de webhook y escriba el nuevo punto de conexión de webhook.
Cuando haya terminado, seleccione Guardar.
Eliminación de una suscripción a evento
Para eliminar una suscripción de eventos para Azure Communication Services, siga estos pasos.
Para eliminar una suscripción de eventos para el recurso de Azure Communication Services, inicie sesión primero en Azure Portal. En la esquina superior izquierda de la página, seleccione el recurso de Communication Services.
Seleccione la pestaña Eventos en el menú de la izquierda.
Seleccione Suscripciones de eventos y seleccione la suscripción de eventos que desea eliminar.
En la página Suscripción de eventos, seleccione Eliminar en la parte superior de la página.
Pasos siguientes
- Para obtener una lista sobre los eventos de Communication Services, consulte Eventos de Communication Services.
- Para obtener una lista de controladores de eventos compatibles, consulte Controladores de eventos.
- Para obtener información sobre la entrega de eventos y los reintentos, consulte Entrega de mensajes de Event Grid y reintento.
- Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Instale la CLI de Azure.
- Un recurso de Azure Communication Services.
- Cree un webhook para recibir eventos. Consulte Entrega de eventos de Webhook.
Registro del proveedor de recursos de Event Grid
En este artículo se describe cómo registrar el proveedor de recursos de Event Grid. Si usó Event Grid antes en la misma suscripción, vaya a la siguiente sección.
Ejecute el siguiente comando para registrar el proveedor:
az provider register --namespace Microsoft.EventGrid
El registro puede tardar unos instantes en finalizar. Para comprobar el estado, ejecute el comando siguiente:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Cuando
registrationState
seaRegistered
, estará preparado para continuar.
Creación de la suscripción de eventos
Para crear suscripciones de eventos para el recurso de Azure Communication Services, inicie sesión en la CLI de Azure. Puede iniciar sesión mediante la ejecución del az login
comando desde el terminal y, a continuación, proporcionar sus credenciales.
Para crear una suscripción de eventos mediante la CLI de Azure, use el comando 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
Para obtener una lista sobre los eventos de Communication Services, consulte Eventos de Communication Services.
Lista de suscripciones de eventos
Para enumerar todas las suscripciones de eventos existentes configuradas para un recurso de Azure Communication Services mediante la CLI de Azure, use el comando az eventgrid event-subscription list
.
az eventgrid event-subscription list
--source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
Actualización de suscripción de eventos
Para actualizar una suscripción de eventos existente mediante la CLI de Azure, use el comando 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
Eliminación de una suscripción a evento
Para eliminar una suscripción de eventos existente mediante la CLI de Azure, use el comando az eventgrid event-subscription delete
.
az eventgrid event-subscription delete
--name EventsWebhookSubscription
--source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
Pasos siguientes
- Para obtener información sobre otros comandos, consulte CLI de Azure Event Grid.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- La versión más reciente del SDK de .NET Core para su sistema operativo.
- La versión más reciente del SDK de administración de Microsoft Azure Event Grid de .NET.
- La versión más reciente de la biblioteca de Azure Identity.
- Un recurso de Azure Communication Services.
Registro del proveedor de recursos de Event Grid
En este artículo se describe cómo registrar el proveedor de recursos de Event Grid. Si usó Event Grid antes en la misma suscripción, vaya a la siguiente sección.
En Azure Portal, realice los siguientes pasos:
En el menú de la izquierda, seleccione Suscripciones.
Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.
En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.
Busque Microsoft.EventGrid y confirme que el estado es No registrado.
Seleccione Microsoft.EventGrid en la lista de proveedores.
Seleccione Registrar en la barra de comandos.
Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.
Instalación del SDK
En primer lugar, instale la biblioteca de administración de Microsoft Azure Event Grid para .NET con NuGet:
dotnet add package Azure.ResourceManager.EventGrid;
Incluya el SDK de administración de Event Grid en el proyecto de C#:
using Microsoft.Azure.Management.EventGrid;
using Microsoft.Azure.Management.EventGrid.Models;
Autenticación con la biblioteca de identidades de Azure
Requisitos previos
- Cree una aplicación de Microsoft Entra y una entidad de servicio y configure un secreto de cliente o un certificado de confianza emitido por la entidad de certificación. Siga las instrucciones de Registrar una aplicación de Microsoft Entra y crear una entidad de servicio.
- Almacene el secreto o el certificado en Azure Keyvault.
- Conceda acceso de colaborador o propietario a la suscripción a esa aplicación siguiendo las instrucciones de Concesión de acceso de un usuario a los recursos de Azure mediante Azure Portal.
- Obtenga más información sobre Autorización del acceso a los recursos de Event Grid.
La biblioteca de Azure Identity proporciona compatibilidad con la autenticación de token de Microsoft Entra ID (anteriormente Azure Active Directory) a través del SDK de Azure. Proporciona un conjunto de implementaciones de TokenCredential, que puede usar para construir clientes de Azure SDK que admitan la autenticación de tokens de Microsoft Entra. Para más información, consulte Biblioteca cliente de Azure Identity para .NET.
- Incluya la biblioteca cliente de Azure Identity para .NET con NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
- Incluya la biblioteca de identidades de Azure en el proyecto de C#.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
Puede pasar las credenciales secretas o las credenciales de certificado para obtener el token de acceso, en función de cómo esté configurada la entidad de servicio.
Obtención del token de acceso mediante credenciales secretas
Para obtener las credenciales secretas, debe leerla del almacén de claves que creó en Requisito previo 2 mediante 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();
Obtenga el token de acceso mediante credenciales de certificado.
Para obtener las credenciales de certificado, debe leerla del almacén de claves que creó en Requisitos previos 2 mediante CertificateClient.
Obtenga más información sobre la entidad de configuración de aplicaciones de Microsoft Entra en Opciones de configuración de aplicaciones.
// 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();
Autentíquese
EventGridManagementClient
con el token de acceso mediante credenciales secretas o de certificado.
// 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';
Creación de la suscripción a eventos
En este ejemplo de código se muestra cómo crear la suscripción de eventos para el punto de conexión del suscriptor de webhook.
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);
Actualización de suscripción de eventos
En este ejemplo de código se muestra cómo actualizar la suscripción de eventos para agregar más eventos que desea recibir en el punto de conexión del suscriptor de webhook.
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)));
Eliminación de una suscripción de evento
En este ejemplo de código se muestra cómo eliminar la suscripción de eventos para el punto de conexión del suscriptor de webhook.
string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";
await eventGridClient.EventSubscriptions.DeleteAsync(
scope: resourceId,
eventSubscriptionName: "<eventSubscriptionName>");
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Instale el Módulo Azure Az PowerShell.
- Un recurso de Azure Communication Services.
- Cree un webhook para recibir eventos. Consulte Entrega de eventos de Webhook.
Registro del proveedor de recursos de Event Grid
En este artículo se describe cómo registrar el proveedor de recursos de Event Grid. Si usó Event Grid antes en la misma suscripción, vaya a la siguiente sección.
- Ejecute el siguiente comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Cuando RegistrationStatus
sea Registered
, estará preparado para continuar.
Creación de la suscripción de eventos
En primer lugar, instale el módulo Az.EventGrid
de Azure Communication Services con el siguiente comando.
PS C:\> Install-Module Az.EventGrid
Inicie sesión en la suscripción a Azure con el comando Connect-AzAccount y siga las instrucciones de la pantalla.
Connect-AzAccount
Si la identidad está asociada a más de una suscripción, establezca la suscripción activa en suscripción del recurso Web PubSub que desea mover.
$context = Get-AzSubscription -SubscriptionId <subscription-id> Set-AzContext $context
Para crear una suscripción de eventos mediante el Azure PowerShell, use el comando 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>"
Para obtener una lista sobre los eventos de Communication Services, consulte Eventos de Communication Services.
Lista de suscripciones de eventos
Para enumerar todas las suscripciones de eventos existentes configuradas para un recurso de Azure Communication Services mediante el Azure PowerShell, use el Get-AzEventGridSubscription
comando.
Get-AzEventGridSubscription
-ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>"
Actualización de suscripción de eventos
Para actualizar una suscripción de eventos existente mediante el Azure PowerShell, use el Update-AzEventGridSubscription
comando.
$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"
Eliminación de una suscripción a evento
Para eliminar una suscripción de eventos existente mediante el Azure PowerShell, use el Remove-AzEventGridSubscription
comando.
Get-AzResource
-ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>" | Remove-AzEventGridSubscription -EventSubscriptionName ES2
Pasos siguientes
- Para obtener información sobre otros comandos, consulte módulo de PowerShell Az.EventGrid.