Delen via


Quickstart: Abonneren op Azure Communication Services-gebeurtenissen

In dit artikel wordt uitgelegd hoe u zich kunt abonneren op gebeurtenissen van Azure Communication Services via de portal, Azure CLI, PowerShell en .NET SDK.

U kunt gebeurtenisabonnementen instellen voor Communication Services-resources via Azure Portal, Azure CLI, PowerShell of met de Azure Event Grid Management SDK.

In deze quickstart wordt het proces beschreven voor het instellen van een webhook als abonnee voor SMS-gebeurtenissen van Azure Communication Services. Zie Azure Communication Services als een Azure Event Grid-bron voor een volledige lijst met gebeurtenissen.

Vereisten

De Event Grid-resourceprovider registreren

In dit artikel wordt beschreven hoe u de Event Grid-resourceprovider registreert. Als u Event Grid eerder hebt gebruikt in hetzelfde abonnement, gaat u verder met de volgende sectie.

Voer in Azure Portal de volgende stappen uit:

  1. Selecteer Abonnementen in het linkermenu.

  2. Selecteer het abonnement dat u wilt gebruiken voor Event Grid in de lijst met abonnementen.

  3. Selecteer op de pagina Abonnement resourceproviders onder Instellingen in het linkermenu.

  4. Zoek naar Microsoft.EventGrid en controleer of de status niet is geregistreerd.

  5. Selecteer Microsoft.EventGrid in de lijst met providers.

  6. Selecteer Registreren op de opdrachtbalk.

    Afbeelding van de registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

  7. Vernieuwen om ervoor te zorgen dat de status van Microsoft.EventGrid wordt gewijzigd in Geregistreerd.

    Afbeelding van de geslaagde registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

Gebeurtenisabonnement maken

Als u een gebeurtenisabonnement wilt maken voor een Azure Communication Services-resource, meldt u zich eerst aan bij Azure Portal. Selecteer in de linkerbovenhoek van de pagina de Communication Services-resource.

  1. Selecteer het tabblad Gebeurtenissen in het linkermenu.
  2. Selecteer + Gebeurtenisabonnement.

Schermopname met de knop Gebeurtenisabonnement maken gemarkeerd in Azure Portal.

  1. Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:
    1. Voer een naam in voor het gebeurtenisabonnement.

    2. Voer een naam in voor de naam van het systeemonderwerp.

    3. Selecteer de gebeurtenistypen die u wilt ontvangen voor het gebeurtenisabonnement.

      Schermopname van de selectie van gebeurtenistypen.

      Zie Communication Services-gebeurtenissen voor meer informatie.

    4. Selecteer het eindpunttype als webhook.

      Schermopname van de selectie van het eindpunttype.

    5. Een eindpunt configureren selecteren

      Schermopname met de pagina Gebeurtenis maken gemarkeerd in Azure Portal.

    6. Voer de koppeling naar de webhook in en selecteer Selectie bevestigen.

      Schermopname van de pagina webhookeindpunt selecteren in Azure Portal.

    7. Voeg op het tabblad Filters de namen toe van de gebeurtenistypen die u wilt filteren in het abonnement. Voeg eventuele contextkenmerkfilters toe die u wilt gebruiken in het abonnement. Selecteer vervolgens Volgende: Aanvullende functies onder aan de pagina.

      Schermopname met de pagina Filters maken van Event Grid gemarkeerd in Azure Portal.

    8. Als u beleid voor mislukte brieven wilt inschakelen en beleid voor opnieuw proberen wilt aanpassen, selecteert u Aanvullende functies.

      Schermopname van het tabblad Aanvullende functies van de pagina Gebeurtenisabonnement maken.

    9. Wanneer u klaar bent, selecteert u Maken.

Gebeurtenisabonnement bijwerken

In deze sectie wordt beschreven hoe u een gebeurtenisabonnement voor Azure Communication Services bijwerkt om de gebeurtenissen die u wilt ontvangen via Webhook bij te werken.

Als u een gebeurtenisabonnement voor azure Communication Services-resource wilt bijwerken, meldt u zich eerst aan bij Azure Portal. Selecteer in de linkerbovenhoek van de pagina de Communication Services-resource.

  1. Selecteer het tabblad Gebeurtenissen in het linkermenu.

  2. Selecteer Gebeurtenisabonnementen en selecteer het gebeurtenisabonnement dat u wilt bijwerken.

    Schermopname van de knop Gebeurtenisabonnement in Azure Portal.

  3. Selecteer op de pagina Gebeurtenisabonnement het tabblad Filters . Selecteer de gebeurtenistypen die u wilt ontvangen voor het gebeurtenisabonnement.

    Schermopname van de selectie van gebeurtenistypen die moeten worden bijgewerkt.

  4. Als u beleid voor mislukte brieven wilt inschakelen en beleid voor opnieuw proberen wilt aanpassen, selecteert u Aanvullende functies.

    Schermopname van het tabblad Aanvullende functies van de pagina Gebeurtenisabonnement bijwerken.

  5. Als u de webhook wilt bijwerken om gebeurtenissen te ontvangen, selecteert u Wijzigen naast de webhookkoppeling en voert u het nieuwe webhookeindpunt in.

    Schermopname van de koppeling Het webhookeindpunt wijzigen op de pagina Gebeurtenisabonnement.

  6. Selecteer Opslaan wanneer u klaar bent.

    Schermopname van de knop Opslaan in Azure Portal.

Gebeurtenisabonnement verwijderen

Volg deze stappen om een gebeurtenisabonnement voor Azure Communication Services te verwijderen.

Als u een gebeurtenisabonnement voor een Azure Communication Services-resource wilt verwijderen, meldt u zich eerst aan bij Azure Portal. Selecteer in de linkerbovenhoek van de pagina de Communication Services-resource.

  1. Selecteer het tabblad Gebeurtenissen in het linkermenu.

  2. Selecteer Gebeurtenisabonnementen en selecteer het gebeurtenisabonnement dat u wilt verwijderen.

    Schermopname van de knop Gebeurtenisabonnementen om toegang te krijgen tot het gebeurtenisabonnement dat moet worden verwijderd in Azure Portal.

  3. Selecteer Verwijderen boven aan de pagina Gebeurtenisabonnement.

    Schermopname met de knop Verwijderen gemarkeerd in Azure Portal.

Volgende stappen

Vereisten

De Event Grid-resourceprovider registreren

In dit artikel wordt beschreven hoe u de Event Grid-resourceprovider registreert. Als u Event Grid eerder hebt gebruikt in hetzelfde abonnement, gaat u verder met de volgende sectie.

  1. Voer de volgende opdracht uit om de provider te registreren:

    az provider register --namespace Microsoft.EventGrid
    
  2. Het kan even duren voordat de registratie is voltooid. Voer de volgende opdracht uit om de status te controleren:

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

    Wanneer registrationStateRegistered is, bent u klaar om door te gaan.

Gebeurtenisabonnement maken

Als u gebeurtenisabonnementen wilt maken voor een Azure Communication Services-resource, meldt u zich aan bij Azure CLI. U kunt zich aanmelden bij het uitvoeren van de az login opdracht vanuit de terminal en vervolgens uw referenties opgeven.

Als u een gebeurtenisabonnement wilt maken met behulp van de Azure CLI, gebruikt u de az eventgrid event-subscription create opdracht:

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  

Zie Communication Services-gebeurtenissen voor een lijst met Communication Services-gebeurtenissen.

Gebeurtenisabonnementen vermelden

Als u alle bestaande gebeurtenisabonnementen wilt weergeven die zijn ingesteld voor een Azure Communication Services-resource met behulp van de Azure CLI, gebruikt u de az eventgrid event-subscription list opdracht.

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

Gebeurtenisabonnement bijwerken

Als u een bestaand gebeurtenisabonnement wilt bijwerken met behulp van de Azure CLI, gebruikt u de az eventgrid event-subscription update opdracht.

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

Gebeurtenisabonnement verwijderen

Als u een bestaand gebeurtenisabonnement wilt verwijderen met behulp van de Azure CLI, gebruikt u de az eventgrid event-subscription delete opdracht.

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

Volgende stappen

Vereisten

De Event Grid-resourceprovider registreren

In dit artikel wordt beschreven hoe u de Event Grid-resourceprovider registreert. Als u Event Grid eerder hebt gebruikt in hetzelfde abonnement, gaat u verder met de volgende sectie.

Voer in Azure Portal de volgende stappen uit:

  1. Selecteer Abonnementen in het linkermenu.

  2. Selecteer het abonnement dat u wilt gebruiken voor Event Grid in de lijst met abonnementen.

  3. Selecteer op de pagina Abonnement resourceproviders onder Instellingen in het linkermenu.

  4. Zoek naar Microsoft.EventGrid en controleer of de status niet is geregistreerd.

  5. Selecteer Microsoft.EventGrid in de lijst met providers.

  6. Selecteer Registreren op de opdrachtbalk.

    Afbeelding van de registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

  7. Vernieuwen om ervoor te zorgen dat de status van Microsoft.EventGrid wordt gewijzigd in Geregistreerd.

    Afbeelding van de geslaagde registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

Installeer de SDK

Installeer eerst de Microsoft Azure Event Grid-beheerbibliotheek voor .NET met NuGet:

dotnet add package Azure.ResourceManager.EventGrid;

Neem de Event Grid Management SDK op in uw C#-project:

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

Verifiëren met Azure Identity-bibliotheek

Vereisten

  1. Maak een Microsoft Entra-toepassing en service-principal en stel een clientgeheim of een vertrouwd certificaat in dat is uitgegeven door de certificeringsinstantie. Volg de instructies in Een Microsoft Entra-app registreren en maak een service-principal.
  2. Sla het geheim of het certificaat op in de Azure KeyVault.
  3. Geef inzender of eigenaar toegang tot het abonnement voor die toepassing aan de hand van de instructies bij Een gebruiker toegang verlenen tot Azure-resources met behulp van De Azure-portal.
  4. Lees meer over het autoriseren van toegang tot Event Grid-resources.

De Azure Identity-bibliotheek biedt verificatieondersteuning voor Tokens van Microsoft Entra ID (voorheen Azure Active Directory) in de Azure SDK. Het biedt een set TokenCredential-implementaties, die u kunt gebruiken om Azure SDK-clients te maken die ondersteuning bieden voor Microsoft Entra-tokenverificatie. Zie de Azure Identity-clientbibliotheek voor .NET voor meer informatie.

  1. Neem de Azure Identity-clientbibliotheek voor .NET op met NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Neem de Azure Identity-bibliotheek op in uw C#-project.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. U kunt de geheime referenties of certificaatreferenties doorgeven om toegangstokens op te halen, op basis van de configuratie van uw service-principal.

    • Toegangstoken ophalen met behulp van geheime referenties

      Als u de geheime referenties wilt ophalen, moet u deze lezen uit de Sleutelkluis die u in Prerequisite 2 hebt gemaakt met behulp van 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();
      
    • Toegangstoken ophalen met behulp van certificaatreferenties.

      Als u de certificaatreferenties wilt ophalen, moet u deze lezen uit de Sleutelkluis die u in Prerequisite 2 hebt gemaakt met behulp van CertificateClient.

      Lees meer over de Microsoft Entra-toepassingsconfiguratie-instantie in de opties voor toepassingsconfiguratie.

      // 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. Verifiëren EventGridManagementClient met toegangstoken met behulp van geheime of certificaatreferenties.

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

Gebeurtenisabonnement maken

In dit codevoorbeeld ziet u hoe u het gebeurtenisabonnement voor het eindpunt van de webhook-abonnee maakt.

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);

Gebeurtenisabonnement bijwerken

In dit codevoorbeeld ziet u hoe u het gebeurtenisabonnement bijwerkt om meer gebeurtenissen toe te voegen die u wilt ontvangen op het eindpunt van de webhook-abonnee.

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)));

Gebeurtenisabonnement verwijderen

In dit codevoorbeeld ziet u hoe u het gebeurtenisabonnement voor het eindpunt van de webhook-abonnee verwijdert.

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

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

Vereisten

De Event Grid-resourceprovider registreren

In dit artikel wordt beschreven hoe u de Event Grid-resourceprovider registreert. Als u Event Grid eerder hebt gebruikt in hetzelfde abonnement, gaat u verder met de volgende sectie.

  1. Voer de volgende opdracht uit:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. Het kan even duren voordat de registratie is voltooid. Voer de volgende opdracht uit om de status te controleren:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Wanneer RegistrationStatusRegistered is, bent u klaar om door te gaan.

Gebeurtenisabonnement maken

Installeer eerst de Azure Communication Services-module Az.EventGrid met behulp van de volgende opdracht.

PS C:\> Install-Module Az.EventGrid
  1. Meld u aan bij uw Azure-abonnement met de opdracht Connect-AzAccount en volg de aanwijzingen op het scherm.

    Connect-AzAccount
    
  2. Als uw identiteit is gekoppeld aan meer dan één abonnement, stelt u uw actieve abonnement in op het abonnement van de Web PubSub-resource die u wilt verplaatsen.

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

Als u een gebeurtenisabonnement wilt maken met behulp van Azure PowerShell, gebruikt u de New-AzEventGridSubscription opdracht.

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

Zie Communication Services-gebeurtenissen voor een lijst met Communication Services-gebeurtenissen.

Gebeurtenisabonnementen vermelden

Als u alle bestaande gebeurtenisabonnementen wilt weergeven die zijn ingesteld voor een Azure Communication Services-resource met behulp van Azure PowerShell, gebruikt u de Get-AzEventGridSubscription opdracht.

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

Gebeurtenisabonnement bijwerken

Als u een bestaand gebeurtenisabonnement wilt bijwerken met behulp van Azure PowerShell, gebruikt u de Update-AzEventGridSubscription opdracht.

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

Gebeurtenisabonnement verwijderen

Als u een bestaand gebeurtenisabonnement wilt verwijderen met behulp van Azure PowerShell, gebruikt u de Remove-AzEventGridSubscription opdracht.

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

Volgende stappen