Partekatu honen bidez:


Inicio rápido: suscripción a eventos de Azure Communication Services

En este inicio rápido, aprenderá a 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 a eventos para los recursos de Communication Services a través de Azure Portal o la CLI de Azure, PowerShell o con el SDK de administración de Event Grid de Azure.

En este inicio rápido, se explica el proceso de configuración del webhook como suscriptor para eventos SMS de Azure Communication Services. Para obtener una lista completa de eventos, consulte esta página.

Requisitos previos

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:

  1. En el menú de la izquierda, seleccione Suscripciones.

  2. Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.

  3. En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.

  4. Busque Microsoft.EventGrid y confirme que el estado es No registrado.

  5. Seleccione Microsoft.EventGrid en la lista de proveedores.

  6. Seleccione Registrar en la barra de comandos.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Creación de la suscripción de eventos

Para crear una suscripción de eventos para Azure Communication Services, siga estos pasos. En este artículo se muestra cómo crear una suscripción de eventos para que Azure Communication Services reciba eventos a través de Webhook.

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 del menú de la izquierda.
  • Seleccione + Suscripción de eventos.

Screenshot highlighting the create event subscription button in the Azure portal.

  • En la página Crear suscripción de eventos, siga estos pasos:
  1. Escriba un nombre para la suscripción a eventos.

  2. Escriba un nombre para el tema del sistema.

  3. Seleccione los tipos de eventos que desea recibir en la suscripción de eventos.

    Screenshot that shows the selection of event types.

    Para obtener más información sobre los eventos de Communication Services, consulte Eventos de Communication Services

  4. Seleccione el tipo de punto de conexión como Web Hook.

    Screenshot that shows the selection of endpoint type.

  5. Seleccione Configurar un punto de conexión

    Screenshot highlighting the create event page in the Azure portal.

  6. Escriba el vínculo al webhook y Seleccione Confirmar selección.

    Screenshot highlighting the select webhook endpoint page in the Azure portal.

  7. En la pestaña Filtros, agregue los nombres de los tipos de eventos que quiere filtrar en la suscripción y agregue los filtros de atributos de contexto que quiere usar en la suscripción. A continuación, seleccione Siguiente: Características adicionales en la parte inferior de la página.

    Screenshot highlighting Event Grid create filters page in the Azure portal.

  8. Para habilitar la cola de mensajes fallidos y personalizar las directivas de reintento, seleccione Características adicionales.

    Screenshot that shows the Additional features tab of the Create Event Subscription page.

  9. Cuando haya terminado, seleccione Crear.

Actualización de suscripción de eventos

Para actualizar una suscripción de eventos para Azure Communication Services, siga estos pasos. 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.

  1. Seleccione la pestaña Eventos del menú de la izquierda.

  2. Seleccione las suscripciones de eventos y seleccione la suscripción de eventos que desea actualizar.

    Screenshot highlighting the event subscription button in the Azure portal.

  3. 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.

    Screenshot that shows the selection of event types to update.

  4. Para habilitar la cola de mensajes fallidos y personalizar las directivas de reintento, seleccione Características adicionales.

    Screenshot that shows the Additional features tab of the Update Event Subscription page.

  5. 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. Screenshot that shows the Change the webhook endpoint link in the Event Subscription page.

  6. Cuando haya terminado, seleccione Guardar, Screenshot that shows the save button in the Azure portal.

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.

  1. Seleccione la pestaña Eventos del menú de la izquierda.

  2. Seleccione Suscripciones de eventos y seleccione la suscripción de eventos que desea eliminar.

    Screenshot highlighting the event subscriptions button to access event subscription to be deleted in the Azure portal.

  3. En la página Suscripción de eventos, seleccione el botón Eliminar de la parte superior.

    Screenshot highlighting the delete button in the Azure portal.

Pasos siguientes

Requisitos previos

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.

  1. Ejecute el siguiente comando para registrar el proveedor:

    az provider register --namespace Microsoft.EventGrid
    
  2. 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 sea Registered, 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. Para iniciar sesión, ejecute el comando az login desde el terminal y proporcione sus credenciales. Ejecute el siguiente comando para crear la suscripción de eventos para el recurso:

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 hacer una lista de 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

Requisitos previos

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:

  1. En el menú de la izquierda, seleccione Suscripciones.

  2. Seleccione la suscripción que desea usar para Event Grid en la lista de suscripciones.

  3. En la página Suscripción, seleccione Proveedores de recursos en Configuración del menú izquierdo.

  4. Busque Microsoft.EventGrid y confirme que el estado es No registrado.

  5. Seleccione Microsoft.EventGrid en la lista de proveedores.

  6. Seleccione Registrar en la barra de comandos.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Actualice para asegurarse de que el estado de Microsoft.EventGrid se cambia a Registrado.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Instalar el 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 Azure Identity

Requisitos previos:

  1. 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 siguiendo las instrucciones aquí.
  2. Almacene el secreto o el certificado en Azure Keyvault.
  3. Conceda al colaborador o al propietario acceso a la suscripción de esa aplicación siguiendo las instrucciones aquí.
  4. Obtenga más información sobre cómo autorizar el acceso a los recursos de Event Grid aquí.

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 se pueden usar para construir clientes del SDK de Azure que admitan la autenticación de tokens de Microsoft Entra. Puede leer más sobre este tema aquí.

  1. Incluya la biblioteca cliente de Azure Identity para .NET con NuGet:
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Inclusión de la biblioteca de Azure Identity en el proyecto de C#
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. 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 leerlas en el Keyvault que creó en Requisito previo n.º 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();
      
    • Obtención del token de acceso mediante credenciales de certificado

      Para obtener las credenciales de certificado, debe leerlas en el Keyvault que creó en Requisito previo n.º 2 mediante CertificateClient.

      Obtenga más información sobre la entidad de configuración de aplicaciones de Microsoft Entra aquí

      // 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();
      
  2. Autenticación de EventGridManagementClient con token de acceso mediante credenciales de certificado o secreto

// 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 quiere 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

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.

  1. Ejecute el siguiente comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. 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, asegúrese de instalar el módulo Azure Communication Services Az.EventGrid 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 la suscripción del recurso Web PubSub que quiera 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 hacer una lista de todas las suscripciones de eventos existentes configuradas para un recurso de Azure Communication Services, mediante el Azure PowerShell, use el comando Get-AzEventGridSubscription.

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 comando 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"
 

Eliminación de una suscripción a evento

Para eliminar una suscripción de eventos existente mediante el Azure PowerShell, use el comando Remove-AzEventGridSubscription.

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

Pasos siguientes