Freigeben über


Schnellstart: Abonnieren von Azure Communication Services-Ereignissen

In diesem Artikel erfahren Sie, wie Sie Ereignisse von Azure Communication Services über das Portal, Azure CLI, PowerShell und .NET SDK abonnieren.

Sie können Ereignisabonnements für Communication Services-Ressourcen über das Azure-Portal, Azure CLI, PowerShell oder mit dem Event Grid Management SDK von Azure einrichten.

Diese Schnellstartanleitung beschreibt den Prozess der Einrichtung eines Webhooks als Abonnent für SMS-Ereignisse von Azure Communication Services Schritt für Schritt. Eine vollständige Liste der Ereignisse finden Sie unter Azure Communication Services als Azure Event Grid-Quelle.

Voraussetzungen

Registrieren des Event Grid-Ressourcenanbieters

In diesem Artikel wird beschrieben, wie Sie den Event Grid-Ressourcenanbieter registrieren. Wenn Sie Event Grid zuvor im selben Abonnement verwendet haben, fahren Sie mit dem nächsten Abschnitt fort.

Führen Sie im Azure-Portal folgende Schritte aus:

  1. Wählen Sie im linken Menü Abonnements aus.

  2. Wählen Sie das Abonnement, das Sie für Event Grid verwenden möchten, aus der Abonnementliste aus.

  3. Wählen Sie auf der Seite Abonnement unter Einstellungen im linken Menü Ressourcenanbieter aus.

  4. Suchen Sie nach Microsoft.EventGrid, und vergewissern Sie sich, dass der Status Nicht registriert lautet.

  5. Wählen Sie microsoft.EventGrid in der Anbieterliste aus.

  6. Wählen Sie Registrieren auf der Befehlsleiste aus.

    Bild, das die Registrierung des Microsoft.EventGrid-Anbieters mit dem Azure-Abonnement zeigt.

  7. Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft.EventGrid in Registriert geändert wird.

    Bild zeigt die erfolgreiche Registrierung des Microsoft.EventGrid-Anbieters mit dem Azure-Abonnement zeigt.

Erstellen eines Ereignisabonnements

Melden Sie sich zunächst beim Azure-Portal an, um ein Ereignisabonnement für eine Azure Communication Services-Ressource zu erstellen. Wählen Sie in der oberen linken Ecke der Seite die Communication Services-Ressource aus.

  1. Wählen Sie im linken Menü die Registerkarte Ereignisse aus.
  2. Klicken Sie auf + Ereignisabonnement.

Screenshot mit der hervorgehobenen Schaltfläche zum Erstellen eines Ereignisabonnements im Azure-Portal.

  1. Gehen Sie auf der Seite Ereignisabonnement erstellen wie folgt vor:
    1. Geben Sie einen Namen für das Ereignisabonnement ein.

    2. Geben Sie einen Namen für das Systemthema ein.

    3. Wählen Sie die Ereignistypen aus, die Sie im Ereignisabonnement empfangen möchten.

      Screenshot der Auswahl von Ereignistypen.

      Weitere Informationen finden Sie unter Communication Services Events.

    4. Wählen Sie für den Endpunkttyp die Option „Webhook“ aus.

      Screenshot der Auswahl des Endpunkttyps.

    5. Wählen Sie Endpunkt konfigurieren aus

      Screenshot mit der hervorgehobenen Schaltfläche zum Erstellen einer Ereignisseite im Azure-Portal.

    6. Geben Sie den Link zum Webhook ein, und wählen Sie Auswahl bestätigen aus.

      Screenshot mit der hervorgehobenen Seite zum Auswählen einer Webhook-Endpunkts im Azure-Portal.

    7. Fügen Sie auf der Registerkarte Filter die Namen der Ereignistypen hinzu, die Sie im Abonnement filtern möchten. Fügen Sie alle Kontextattributefilter hinzu, die Sie im Abonnement verwenden möchten. Wählen Sie dann unten auf der Seite die Option Weiter: Zusätzliche Features aus.

      Screenshot mit der hervorgehobenen Seite zum Erstellen von Event Grid-Filtern im Azure-Portal.

    8. Wählen Sie Zusätzliche Features aus, um die Verarbeitung unzustellbarer Nachrichten zu aktivieren und Wiederholungsrichtlinien anzupassen.

      Screenshot der Registerkarte „Zusätzliche Features“ auf der Seite „Ereignisabonnement erstellen“.

    9. Wählen Sie abschließend die Option Erstellen.

Ereignisabonnement aktualisieren

In diesem Abschnitt erfahren Sie, wie Sie ein Ereignisabonnement für Azure Communication Services aktualisieren, um die Ereignisse zu aktualisieren, die Sie über einen Webhook empfangen möchten.

Melden Sie sich zunächst beim Azure-Portal an, um ein Ereignisabonnement für eine Azure Communication Services-Ressource zu aktualisieren. Wählen Sie in der oberen linken Ecke der Seite die Communication Services-Ressource aus.

  1. Wählen Sie im linken Menü die Registerkarte Ereignisse aus.

  2. Wählen Sie zunächst Ereignisabonnements und dann das Ereignisabonnement aus, das Sie aktualisieren möchten.

    Screenshot mit der hervorgehobenen Schaltfläche des Ereignisabonnements im Azure-Portal.

  3. Wählen Sie auf der Seite Ereignisabonnement die Registerkarte Filter aus. Wählen Sie die Ereignistypen aus, die Sie im Ereignisabonnement empfangen möchten.

    Screenshot der Auswahl der zu aktualisierenden Ereignistypen.

  4. Wählen Sie Zusätzliche Features aus, um die Verarbeitung unzustellbarer Nachrichten zu aktivieren und Wiederholungsrichtlinien anzupassen.

    Screenshot der Registerkarte „Zusätzliche Features“ auf der Seite „Ereignisabonnement aktualisieren“.

  5. Um den Webhook zum Empfangen von Ereignissen zu aktualisieren, wählen Sie neben dem Webhook-Link die Option Ändern aus, und geben Sie den neuen Webhook-Endpunkt ein.

    Screenshot des Links zum Ändern des Webhook-Endpunkts auf der Seite „Ereignisabonnement“.

  6. Wählen Sie dann die Option Schließen.

    Screenshot der Schaltfläche „Speichern“ im Azure-Portal.

Löschen eines Ereignisabonnements

Führen Sie die folgenden Schritte aus, um ein Ereignisabonnement für Azure Communication Services zu löschen.

Melden Sie sich zunächst beim Azure-Portal an, um ein Ereignisabonnement für eine Azure Communication Services-Ressource zu löschen. Wählen Sie in der oberen linken Ecke der Seite die Communication Services-Ressource aus.

  1. Wählen Sie im linken Menü die Registerkarte Ereignisse aus.

  2. Wählen Sie zunächst Ereignisabonnements und dann das Ereignisabonnement aus, das Sie löschen möchten.

    Screenshot, mit der hervorgehobenen Schaltfläche der Ereignisabonnements, um auf das Ereignisabonnement zuzugreifen, das im Azure-Portal gelöscht werden soll.

  3. Wählen Sie oben auf der Seite „Ereignisabonnement“ Löschen aus.

    Screenshot, der hervorgehobenen Schaltfläche „Löschen“ im Azure-Portal.

Nächste Schritte

Voraussetzungen

Registrieren des Event Grid-Ressourcenanbieters

In diesem Artikel wird beschrieben, wie Sie den Event Grid-Ressourcenanbieter registrieren. Wenn Sie Event Grid zuvor im selben Abonnement verwendet haben, fahren Sie mit dem nächsten Abschnitt fort.

  1. Führen Sie den folgenden Befehl aus, um den Anbieter zu registrieren:

    az provider register --namespace Microsoft.EventGrid
    
  2. Es kann einen Moment dauern, bis die Registrierung abgeschlossen ist. Führen Sie den folgenden Befehl aus, um den Status zu überprüfen:

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

    Wenn registrationStateRegistered ist, können Sie den Vorgang fortsetzen.

Erstellen eines Ereignisabonnements

Melden Sie sich bei Azure CLI an, um Ereignisabonnements einer Azure Communication Services-Ressource zu erstellen. Sie können sich anmelden, indem Sie den Befehl az login am Terminal ausführen und dann Ihre Anmeldeinformationen angeben.

Verwenden Sie den Befehl az eventgrid event-subscription create, um ein Ereignisabonnement mithilfe der Azure-Befehlszeilenschnittstelle zu erstellen:

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  

Eine Liste der Communication Services-Ereignisse finden Sie unter Communication Services-Ereignisse.

Ereignisabonnements auflisten

Verwenden Sie den Befehl az eventgrid event-subscription list, um alle vorhandenen Ereignisabonnements aufzulisten, die für eine Azure Communication Services-Ressource eingerichtet wurden, indem Siedie Azure CLI verwenden.

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

Ereignisabonnement aktualisieren

Verwenden Sie den Befehl az eventgrid event-subscription update, um ein vorhandenes Ereignisabonnement mithilfe der Azure CLI zu aktualisieren.

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

Löschen eines Ereignisabonnements

Verwenden Sie den Befehl az eventgrid event-subscription delete, um ein vorhandenes Ereignisabonnement mithilfe der Azure CLI zu löschen.

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

Nächste Schritte

Voraussetzungen

Registrieren des Event Grid-Ressourcenanbieters

In diesem Artikel wird beschrieben, wie Sie den Event Grid-Ressourcenanbieter registrieren. Wenn Sie Event Grid zuvor im selben Abonnement verwendet haben, fahren Sie mit dem nächsten Abschnitt fort.

Führen Sie im Azure-Portal folgende Schritte aus:

  1. Wählen Sie im linken Menü Abonnements aus.

  2. Wählen Sie das Abonnement, das Sie für Event Grid verwenden möchten, aus der Abonnementliste aus.

  3. Wählen Sie auf der Seite Abonnement unter Einstellungen im linken Menü Ressourcenanbieter aus.

  4. Suchen Sie nach Microsoft.EventGrid, und vergewissern Sie sich, dass der Status Nicht registriert lautet.

  5. Wählen Sie microsoft.EventGrid in der Anbieterliste aus.

  6. Wählen Sie Registrieren auf der Befehlsleiste aus.

    Bild, das die Registrierung des Microsoft.EventGrid-Anbieters mit dem Azure-Abonnement zeigt.

  7. Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft.EventGrid in Registriert geändert wird.

    Bild zeigt die erfolgreiche Registrierung des Microsoft.EventGrid-Anbieters mit dem Azure-Abonnement zeigt.

Das SDK installieren

Installieren Sie zunächst die Microsoft Azure Event Grid Management-Bibliothek für .NET mit NuGet:

dotnet add package Azure.ResourceManager.EventGrid;

Schließen Sie das Event Grid Management SDK in Ihr C#-Projekt ein:

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

Authentifizieren mit Azure Identity-Bibliothek

Voraussetzungen

  1. Erstellen Sie eine Microsoft Entra-Anwendung und einen Dienstprinzipal, und richten Sie einen geheimen Clientschlüssel oder ein vertrauenswürdiges Zertifikat ein, das von der Zertifizierungsstelle ausgestellt wurde. Folgen Sie den Anweisungen unter Registrieren einer Microsoft Entra-App und Erstellen eines Dienstprinzipals.
  2. Speichern Sie das Geheimnis oder das Zertifikat in Azure Keyvault.
  3. Gewähren Sie Mitwirkenden oder Besitzern Zugriff auf das Abonnement für diese Anwendung, indem Sie die Anweisungen unter Gewähren eines Benutzerzugriffs auf Azure-Ressourcen mithilfe des Azure-Portals befolgen.
  4. Weitere Informationen zum Autorisieren des Zugriffs auf Event Grid-Ressourcen.

Mit der Azure Identity-Bibliothek wird die Microsoft Entra ID-Tokenauthentifizierung (früher Azure Active Directory) für das Azure SDK unterstützt. Es bietet eine Reihe von TokenCredential-Implementierungen, die Sie zum Erstellen von Azure SDK-Clients verwenden können, welche die Microsoft Entra-Tokenauthentifizierung unterstützen. Weitere Informationen finden Sie unter Azure Identity-Clientbibliothek für .NET-.

  1. Schließen Sie die Azure Identity-Clientbibliothek für .NET mit NuGet ein.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Einschließen der Azure Identity-Bibliothek in Ihr C#-Projekt.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. Sie können entweder die geheimen Anmeldeinformationen oder die Zertifikatanmeldeinformationen übergeben, um Zugriffstoken abzurufen, basierend auf der Konfiguration des Dienstprinzipals.

    • Abrufen eines Zugriffstokens mithilfe geheimer Anmeldeinformationen

      Um die geheimen Anmeldeinformationen abzurufen, müssen Sie sie aus dem Keyvault lesen, den Sie in Voraussetzung 2 mithilfe des SecretClient erstellt haben.

      // 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();
      
    • Abrufen eines Zugriffstokens mithilfe von Zertifikatanmeldeinformationen.

      Um die Zertifikatanmeldeinformationen abzurufen, müssen Sie sie aus dem Keyvault lesen, den Sie in Voraussetzung 2 mithilfe des CertificateClient erstellt haben.

      Weitere Informationen zur Microsoft Entra-Anwendungskonfigurationsautorität finden Sie unter Anwendungskonfigurationsautorität.

      // 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. Authentifizieren von EventGridManagementClient mit Zugriffstoken mithilfe von geheimen Anmeldeinformationen oder Zertifikatanmeldeinformationen

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

Erstellen eines Ereignisabonnements

In diesem Codebeispiel wird gezeigt, wie Sie das Ereignisabonnement für den Webhook-Abonnentendpunkt erstellen.

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

Ereignisabonnement aktualisieren

In diesem Codebeispiel wird gezeigt, wie Sie das Ereignisabonnement aktualisieren, um weitere Ereignisse hinzuzufügen, die Sie auf dem Webhook-Abonnentendpunkt empfangen möchten.

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

Löschen eines Ereignisabonnements

In diesem Codebeispiel wird gezeigt, wie Sie das Ereignisabonnement für den Webhook-Abonnentendpunkt löschen.

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

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

Voraussetzungen

Registrieren des Event Grid-Ressourcenanbieters

In diesem Artikel wird beschrieben, wie Sie den Event Grid-Ressourcenanbieter registrieren. Wenn Sie Event Grid zuvor im selben Abonnement verwendet haben, fahren Sie mit dem nächsten Abschnitt fort.

  1. Führen Sie den folgenden Befehl aus:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. Es kann einen Moment dauern, bis die Registrierung abgeschlossen ist. Führen Sie Folgendes aus, um den Status zu überprüfen:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Wenn RegistrationStatusRegistered ist, können Sie den Vorgang fortsetzen.

Erstellen eines Ereignisabonnements

Installieren Sie zunächst das Azure Communication Services-Modul Az.EventGrid mithilfe des folgenden Befehls.

PS C:\> Install-Module Az.EventGrid
  1. Melden Sie sich mit dem Befehl Connect-AzAccount bei Ihrem Azure-Abonnement an, und folgen Sie den Anleitungen auf dem Bildschirm.

    Connect-AzAccount
    
  2. Wenn Ihre Identität mehreren Abonnements zugeordnet ist, legen Sie das aktive Abonnement auf das Abonnement der Web PubSub-Ressource fest, die Sie verschieben möchten.

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

Verwenden Sie den Befehl New-AzEventGridSubscription, um ein Ereignisabonnement mithilfe von Azure PowerShell zu erstellen.

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

Eine Liste der Communication Services-Ereignisse finden Sie unter Communication Services-Ereignisse.

Ereignisabonnements auflisten

Verwenden Sie den Befehl Get-AzEventGridSubscription, um alle vorhandenen Ereignisabonnements aufzulisten, die für eine Azure Communication Services-Ressource eingerichtet wurden, indem Sie Azure PowerShell verwenden.

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

Ereignisabonnement aktualisieren

Verwenden Sie den Befehl Update-AzEventGridSubscription , um ein vorhandenes Ereignisabonnement mithilfe von Azure PowerShell zu aktualisieren.

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

Löschen eines Ereignisabonnements

Verwenden Sie den Befehl Remove-AzEventGridSubscription, um ein vorhandenes Ereignisabonnement mithilfe von Azure PowerShell zu löschen.

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

Nächste Schritte