Delen via


Quickstart: Abonneren op Azure Communication Services-gebeurtenissen

In deze quickstart leert u 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 of Azure CLI, PowerShell of met de Azure Event Grid Management SDK.

Voor deze quickstart doorlopen we het proces voor het instellen van webhook als abonnee voor SMS-gebeurtenissen van Azure Communication Services. Zie deze pagina 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.

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

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

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

Gebeurtenisabonnement maken

Als u een gebeurtenisabonnement voor Azure Communication Services wilt maken, gebruikt u de volgende stappen. In dit artikel wordt beschreven hoe u een gebeurtenisabonnement voor Azure Communication Services maakt om gebeurtenissen te ontvangen via Webhook.

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.

  • Selecteer op het tabblad Gebeurtenissen in het menu links.
  • Selecteer op + Gebeurtenisabonnement.

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

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

    Screenshot that shows the selection of event types.

    Zie Communication Services-gebeurtenissen voor meer informatie over Communication Services-gebeurtenissen

  4. Selecteer het eindpunttype als webhook.

    Screenshot that shows the selection of endpoint type.

  5. Een eindpunt configureren selecteren

    Screenshot highlighting the create event page in the Azure portal.

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

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

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

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

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

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

  9. Wanneer u klaar bent, selecteert u Maken.

Gebeurtenisabonnement bijwerken

Voer de volgende stappen uit om een gebeurtenisabonnement voor Azure Communication Services bij te werken. 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 de gebeurtenisabonnementen en selecteer het gebeurtenisabonnement dat u wilt bijwerken.

    Screenshot highlighting the event subscription button in the Azure portal.

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

    Screenshot that shows the selection of event types to update.

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

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

  5. Als u de webhook wilt bijwerken om gebeurtenissen te ontvangen, selecteert u Wijzigen naast de webhookkoppeling en voert u het nieuwe webhookeindpunt in. Screenshot that shows the Change the webhook endpoint link in the Event Subscription page.

  6. Wanneer u klaar bent, selecteert u Opslaan, Screenshot that shows the save button in the Azure portal.

Gebeurtenisabonnement verwijderen

Als u een gebeurtenisabonnement voor Azure Communication Services wilt verwijderen, gebruikt u de volgende stappen.

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 op het tabblad Gebeurtenissen in het menu links.

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

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

  3. Selecteer bovenaan op de pagina Gebeurtenisabonnement de knop Verwijderen .

    Screenshot highlighting the delete button in the 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 uw referenties opgeven. Voer de volgende opdracht uit om het gebeurtenisabonnement voor de resource te maken:

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, gebruikt az eventgrid event-subscription list u de opdracht met behulp van de Azure CLI.

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.

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

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

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

De SDK installeren

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 vertrouwd certificaat in dat is uitgegeven door de certificeringsinstantie door de instructies hier te volgen.
  2. Sla het geheim of het certificaat op in de Azure KeyVault.
  3. Geef inzender of eigenaar toegang tot het abonnement voor die toepassing door de instructies hier te volgen.
  4. Lees hier 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 kunnen worden gebruikt om Azure SDK-clients te bouwen die ondersteuning bieden voor Microsoft Entra-tokenverificatie. Hier vindt u 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. De Azure Identity-bibliotheek opnemen 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 hebt gemaakt in Vereisten 2 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 hebt gemaakt in Vereisten 2 met behulp van CertificateClient.

      Meer informatie over de Microsoft Entra-toepassingsconfiguratie-instantie vindt u hier

      // 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. EventGridManagementClient verifiëren 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_subscripiton_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

Zorg er eerst voor dat u de Azure Communication Services-module Az.EventGrid installeert met behulp van de volgende opdracht.

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

    Connect-AzAccount
    
  • 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, gebruikt u de Get-AzEventGridSubscription opdracht met behulp van Azure PowerShell.

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