Partager via


Guide de démarrage rapide : S’abonner aux événements Azure Communication Services

Cet article explique comment vous abonner aux événements d’Azure Communication Services via le portail, Azure CLI, PowerShell et le SDK .NET.

Vous pouvez configurer des abonnements aux événements pour les ressources Communication Services via le portail Azure, Azure CLI, PowerShell ou le SDK Azure Event Grid Management.

Ce guide de démarrage rapide décrit le processus de configuration d’un webhook en tant qu’abonné à des événements SMS provenant d’Azure Communication Services. Pour obtenir la liste complète des événements, consultez Azure Communication Services comme source Azure Event Grid.

Prérequis

Enregistrer le fournisseur de ressources Event Grid

Cet article décrit comment enregistrer le fournisseur de ressources Event Grid. Si vous avez déjà utilisé Event Grid dans le même abonnement, passez à la section suivante.

Dans le portail Azure, procédez comme suit :

  1. Sélectionner Abonnements dans le menu de gauche.

  2. Sélectionnez l’abonnement que vous souhaitez utiliser pour Event Grid dans la liste des abonnements.

  3. Dans la page Abonnement, sélectionnez Fournisseurs de ressources dans la section Paramètres du menu de gauche.

  4. Recherchez Microsoft.EventGrid et assurez-vous que l’état est Non inscrit.

  5. Sélectionnez Microsoft.EventGrid dans la liste des fournisseurs.

  6. Sélectionnez Inscrire dans la barre de commandes.

    Image montrant l’enregistrement du fournisseur Microsoft.EventGrid avec l’abonnement Azure.

  7. Actualisez pour vous assurer que l’état de Microsoft.EventGrid est modifié en Inscrit.

    Image montrant l’enregistrement réussi du fournisseur Microsoft.EventGrid avec l’abonnement Azure.

Créer un abonnement aux événements

Pour créer un abonnement aux événements pour la ressource Azure Communication Services, commencez par vous connecter au portail Azure. Dans le coin supérieur gauche de la page, sélectionnez la ressource Communication Services.

  1. Sélectionnez l’onglet Événements dans le menu de gauche.
  2. Sélectionnez + Abonnement aux événements.

Capture d’écran mettant en évidence le bouton Créer un abonnement aux événements dans le portail Azure.

  1. Dans la page Créer un abonnement aux événements, effectuez les étapes suivantes :
    1. Entrez un nom pour l’abonnement aux événements.

    2. Saisissez un nom pour la rubrique Système.

    3. Sélectionnez les types d’événements que vous souhaitez recevoir dans le cadre de l’abonnement aux événements.

      Capture d’écran montrant la sélection des types d’événements.

      Pour plus d’informations, consultez Événements Communication Services.

    4. Sélectionnez le type de point de terminaison en tant que Webhook.

      Capture d’écran montrant la sélection de type de point de terminaison.

    5. Sélectionnez Configurer un point de terminaison

      Capture d’écran mettant en évidence la page Créer un événement dans le portail Azure.

    6. Entrez le lien vers le webhook et sélectionnez Confirmer la sélection.

      Capture d’écran mettant en évidence la page Sélectionner un point de terminaison webhook dans le portail Azure.

    7. Sous l’onglet Filtres, ajoutez les noms des types d’événements que vous souhaitez filtrer dans l’abonnement. Ajoutez les filtres d’attribut de contexte que vous souhaitez utiliser dans l’abonnement. Puis, sélectionnez Suivant : Fonctionnalités supplémentaires en bas de la page.

      Capture d’écran mettant en évidence la page Créer des filtres Event Grid dans le portail Azure.

    8. Pour activer le lettrage mort et personnaliser les stratégies de nouvelle tentative, sélectionnez Fonctionnalités supplémentaires.

      Capture d’écran illustrant l’onglet Fonctionnalités supplémentaires de la page Créer un abonnement aux événements.

    9. Quand vous avez terminé, sélectionnez Créer.

Mise à jour de l’abonnement aux événements

Cette section explique comment mettre à jour un abonnement aux événements pour Azure Communication Services afin de mettre à jour les événements que vous souhaitez recevoir via Webhook.

Pour mettre à jour un abonnement aux événements pour la ressource Azure Communication Services, commencez par vous connecter au portail Azure. Dans le coin supérieur gauche de la page, sélectionnez la ressource Communication Services.

  1. Sélectionnez l’onglet Événements dans le menu de gauche.

  2. Sélectionnez Abonnements aux événements, puis l’abonnement à l’événement que vous souhaitez mettre à jour.

    Capture d’écran mettant en évidence le bouton Abonnements aux événements dans le portail Azure.

  3. Dans la page Abonnement aux événements, sélectionnez l’onglet Filtres. Sélectionnez les types d’événements que vous souhaitez recevoir dans le cadre de l’abonnement aux événements.

    Capture d’écran montrant la sélection des types d’événements à mettre à jour.

  4. Pour activer le lettrage mort et personnaliser les stratégies de nouvelle tentative, sélectionnez Fonctionnalités supplémentaires.

    Capture d’écran illustrant l’onglet Fonctionnalités supplémentaires de la page Mettre à jour un abonnement aux événements.

  5. Pour mettre à jour le webhook pour recevoir des événements, sélectionnez Modifier à côté du lien de webhook et entrez le nouveau point de terminaison du webhook.

    Capture d’écran montrant le lien Modifier le point de terminaison du webhook dans la page Abonnement aux événements.

  6. Lorsque vous avez terminé, sélectionnez Enregistrer.

    Capture d’écran montrant le bouton Enregistrer dans le portail Azure.

Supprimer l’abonnement à l’événement

Pour supprimer un abonnement aux événements pour Azure Communication Services, suivez ces étapes.

Pour supprimer un abonnement aux événements pour la ressource Azure Communication Services, commencez par vous connecter au portail Azure. Dans le coin supérieur gauche de la page, sélectionnez la ressource Communication Services.

  1. Sélectionnez l’onglet Événements dans le menu de gauche.

  2. Sélectionnez Abonnements aux événements, puis l’abonnement à l’événement que vous souhaitez supprimer.

    Capture d’écran mettant en évidence le bouton Abonnements aux événements pour accéder à l’abonnement aux événements à supprimer dans le portail Azure.

  3. Dans la page Abonnement aux événements, sélectionnez Supprimer en haut de la page.

    Capture d’écran mettant en évidence le bouton Supprimer dans le portail Azure.

Étapes suivantes

Prérequis

Enregistrer le fournisseur de ressources Event Grid

Cet article décrit comment enregistrer le fournisseur de ressources Event Grid. Si vous avez déjà utilisé Event Grid dans le même abonnement, passez à la section suivante.

  1. Exécutez la commande suivante pour enregistrer le fournisseur :

    az provider register --namespace Microsoft.EventGrid
    
  2. L’inscription peut prendre un certain temps. Pour vérifier l'état, exécutez la commande suivante :

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

    Lorsque registrationState est Registered, vous êtes prêt à continuer.

Créer un abonnement aux événements

Pour créer des abonnements aux évènements pour la ressource Azure Communication Services, connectez-vous à Azure CLI. Vous pouvez vous connecter en exécutant la commande az login depuis le terminal, puis fournir vos informations d’identification.

Pour créer un abonnement aux événements en utilisant Azure CLI, utilisez la commande 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  

Pour une liste d’événements Communication Services, consultez événements Communication Services.

Abonnements à la liste des événements

Pour répertorier tous les abonnements aux événements existants configurés pour une ressource Azure Communication Services à l’aide d’Azure CLI, utilisez la commande az eventgrid event-subscription list.

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

Mise à jour de l’abonnement aux événements

Pour mettre à jour un abonnement aux événements existant à l’aide d’Azure CLI, utilisez la commande 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

Supprimer l’abonnement à l’événement

Pour supprimer un abonnement aux événements existant à l’aide d’Azure CLI, utilisez la commande az eventgrid event-subscription delete.

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

Étapes suivantes

Prérequis

Enregistrer le fournisseur de ressources Event Grid

Cet article décrit comment enregistrer le fournisseur de ressources Event Grid. Si vous avez déjà utilisé Event Grid dans le même abonnement, passez à la section suivante.

Dans le portail Azure, procédez comme suit :

  1. Sélectionner Abonnements dans le menu de gauche.

  2. Sélectionnez l’abonnement que vous souhaitez utiliser pour Event Grid dans la liste des abonnements.

  3. Dans la page Abonnement, sélectionnez Fournisseurs de ressources dans la section Paramètres du menu de gauche.

  4. Recherchez Microsoft.EventGrid et assurez-vous que l’état est Non inscrit.

  5. Sélectionnez Microsoft.EventGrid dans la liste des fournisseurs.

  6. Sélectionnez Inscrire dans la barre de commandes.

    Image montrant l’enregistrement du fournisseur Microsoft.EventGrid avec l’abonnement Azure.

  7. Actualisez pour vous assurer que l’état de Microsoft.EventGrid est modifié en Inscrit.

    Image montrant l’enregistrement réussi du fournisseur Microsoft.EventGrid avec l’abonnement Azure.

Installer le SDK

Tout d’abord, installez la bibliothèque de gestion Microsoft Azure Event Grid pour .NET avec NuGet :

dotnet add package Azure.ResourceManager.EventGrid;

Incluez le Kit de développement logiciel (SDK) Event Grid Management dans votre projet C# :

using Microsoft.Azure.Management.EventGrid;
using Microsoft.Azure.Management.EventGrid.Models;

S’authentifier avec la bibliothèque Azure Identity

Prérequis

  1. Créez une application Microsoft Entra et un principal de service, puis configurez une clé secrète client ou un certificat approuvé émis par une autorité de certification. Suivez les instructions dans Inscrire une application Microsoft Entra et créer un principal de service.
  2. Stockez le secret ou le certificat dans Le coffre de clés Azure.
  3. Donnez au contributeur ou au propriétaire l’accès à l’abonnement à cette application en suivant les instructions dans Accorder un accès utilisateur aux ressources Azure à l’aide du portail Azure.
  4. En savoir plus sur l’Autorisation d’accès aux ressources Event Grid.

La bibliothèque Azure Identity prend en charge l’authentification par jeton Microsoft Entra ID (anciennement Azure Active Directory) dans le SDK Azure. Elle fournit un ensemble d’implémentations de TokenCredential, que vous pouvez utiliser pour construire des clients du SDK Azure prenant en charge l’authentification par jeton Microsoft Entra. Pour plus d’informations, consultez Bibliothèque de client Azure Identity pour .NET.

  1. Inclure la bibliothèque de client Azure Identity pour .NET avec NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Inclure la bibliothèque Azure Identity dans votre projet C#.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. Vous pouvez transmettre les informations d’identification secrètes ou les informations d’identification du certificat pour obtenir le jeton d’accès, en fonction de la configuration de votre principal de service.

    • Obtenir un jeton d’accès à l’aide d’informations d’identification secrètes

      Pour obtenir les informations d’identification du secret, vous devez le lire à partir du coffre de clés que vous avez créé dans la configuration requise 2 à l’aide de 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();
      
    • Obtenez un jeton d’accès en utilisant les informations d’identification du certificat.

      Pour obtenir les informations d’identification du certificat, vous devez le lire à partir du coffre de clés que vous avez créé dans la configuration requise 2 à l’aide de CertificateClient.

      En savoir plus sur l’autorité de configuration de l’application Microsoft Entra dans Options de configuration d’application.

      // 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. Authentifier EventGridManagementClient avec un jeton d’accès à l’aide d’un secret ou des informations d’identification d’un certificat.

// 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';

Créer un abonnement à un événement

Cet exemple de code montre comment créer l’abonnement à un événement pour le point de terminaison de l’abonné(e) du 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);

Mise à jour de l’abonnement aux événements

Cet exemple de code montre comment mettre à jour l’abonnement aux événements pour ajouter d’autres événements que vous souhaitez recevoir sur le point de terminaison de l’abonné 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)));

Supprimer l’abonnement à l’événement

Cet exemple de code montre comment supprimer l’abonnement à un événement pour le point de terminaison de l’abonné(e) du webhook.

string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";

await eventGridClient.EventSubscriptions.DeleteAsync(
    scope: resourceId,
    eventSubscriptionName: "<eventSubscriptionName>");

Prérequis

Enregistrer le fournisseur de ressources Event Grid

Cet article décrit comment enregistrer le fournisseur de ressources Event Grid. Si vous avez déjà utilisé Event Grid dans le même abonnement, passez à la section suivante.

  1. Exécutez la commande suivante :
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. L’inscription peut prendre un certain temps. Pour vérifier l’état, exécutez :
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Lorsque RegistrationStatus est Registered, vous êtes prêt à continuer.

Créer un abonnement aux événements

Tout d’abord, installez le module Azure Communication Services Az.EventGrid à l’aide de la commande suivante.

PS C:\> Install-Module Az.EventGrid
  1. Connectez-vous à votre abonnement Azure à l’aide de la commande Connect-AzAccount, puis suivez les instructions à l’écran.

    Connect-AzAccount
    
  2. Si votre identité est associée à plusieurs abonnements, définissez votre abonnement actif sur l’abonnement de la ressource Web PubSub à déplacer.

    $context = Get-AzSubscription -SubscriptionId <subscription-id>
    Set-AzContext $context
    

Pour créer un abonnement aux événements à l’aide d’Azure PowerShell, utilisez la commande 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>"

Pour une liste d’événements Communication Services, consultez événements Communication Services.

Abonnements à la liste des événements

Pour répertorier tous les abonnements aux événements existants configurés pour une ressource Azure Communication Services à l’aide d’Azure PowerShell, utilisez la commande Get-AzEventGridSubscription.

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

Mise à jour de l’abonnement aux événements

Pour mettre à jour un abonnement aux événements existant à l’aide d’Azure PowerShell, utilisez la commande 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"
 

Supprimer l’abonnement à l’événement

Pour supprimer un abonnement aux événements existant à l’aide d’Azure PowerShell, utilisez la commande Remove-AzEventGridSubscription.

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

Étapes suivantes