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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine Azure Communication Services-Ressource.
- Erstellen Sie einen Webhook zum Empfangen von Ereignissen. Siehe Webhook Event Delivery.
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:
Wählen Sie im linken Menü Abonnements aus.
Wählen Sie das Abonnement, das Sie für Event Grid verwenden möchten, aus der Abonnementliste aus.
Wählen Sie auf der Seite Abonnement unter Einstellungen im linken Menü Ressourcenanbieter aus.
Suchen Sie nach Microsoft.EventGrid, und vergewissern Sie sich, dass der Status Nicht registriert lautet.
Wählen Sie microsoft.EventGrid in der Anbieterliste aus.
Wählen Sie Registrieren auf der Befehlsleiste aus.
Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft.EventGrid in Registriert geändert wird.
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.
- Wählen Sie im linken Menü die Registerkarte Ereignisse aus.
- Klicken Sie auf + Ereignisabonnement.
- Gehen Sie auf der Seite Ereignisabonnement erstellen wie folgt vor:
Geben Sie einen Namen für das Ereignisabonnement ein.
Geben Sie einen Namen für das Systemthema ein.
Wählen Sie die Ereignistypen aus, die Sie im Ereignisabonnement empfangen möchten.
Weitere Informationen finden Sie unter Communication Services Events.
Wählen Sie für den Endpunkttyp die Option „Webhook“ aus.
Wählen Sie Endpunkt konfigurieren aus
Geben Sie den Link zum Webhook ein, und wählen Sie Auswahl bestätigen aus.
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.
Wählen Sie Zusätzliche Features aus, um die Verarbeitung unzustellbarer Nachrichten zu aktivieren und Wiederholungsrichtlinien anzupassen.
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.
Wählen Sie im linken Menü die Registerkarte Ereignisse aus.
Wählen Sie zunächst Ereignisabonnements und dann das Ereignisabonnement aus, das Sie aktualisieren möchten.
Wählen Sie auf der Seite Ereignisabonnement die Registerkarte Filter aus. Wählen Sie die Ereignistypen aus, die Sie im Ereignisabonnement empfangen möchten.
Wählen Sie Zusätzliche Features aus, um die Verarbeitung unzustellbarer Nachrichten zu aktivieren und Wiederholungsrichtlinien anzupassen.
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.
Wählen Sie dann die Option Schließen.
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.
Wählen Sie im linken Menü die Registerkarte Ereignisse aus.
Wählen Sie zunächst Ereignisabonnements und dann das Ereignisabonnement aus, das Sie löschen möchten.
Wählen Sie oben auf der Seite „Ereignisabonnement“ Löschen aus.
Nächste Schritte
- Eine Liste der Communication Services-Ereignisse finden Sie unter Communication Services-Ereignisse.
- Eine Liste der unterstützten Ereignishandler finden Sie im Artikel zu Ereignishandlern.
- Informationen zu Ereignisübermittlungen und Wiederholungen finden Sie unter Event Grid – Übermittlung und Wiederholung von Nachrichten.
- Eine Einführung in Event Grid finden Sie unter Informationen zu Event Grid.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Installieren Sie die Azure-Befehlszeilenschnittstelle.
- Eine Azure Communication Services-Ressource.
- Erstellen Sie einen Webhook zum Empfangen von Ereignissen. Siehe Webhook Event Delivery.
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 den folgenden Befehl aus, um den Anbieter zu registrieren:
az provider register --namespace Microsoft.EventGrid
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
registrationState
Registered
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
- Informationen zu anderen Befehlen finden Sie unter Azure Event Grid CLI.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Die aktuelle Version des .NET Core SDK für Ihr Betriebssystem.
- Die neueste Version des .NET Microsoft Azure Event Grid Management SDK.
- Die neueste Version der Azure Identity-Bibliothek.
- Eine Azure Communication Services-Ressource.
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:
Wählen Sie im linken Menü Abonnements aus.
Wählen Sie das Abonnement, das Sie für Event Grid verwenden möchten, aus der Abonnementliste aus.
Wählen Sie auf der Seite Abonnement unter Einstellungen im linken Menü Ressourcenanbieter aus.
Suchen Sie nach Microsoft.EventGrid, und vergewissern Sie sich, dass der Status Nicht registriert lautet.
Wählen Sie microsoft.EventGrid in der Anbieterliste aus.
Wählen Sie Registrieren auf der Befehlsleiste aus.
Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft.EventGrid in Registriert geändert wird.
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
- 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.
- Speichern Sie das Geheimnis oder das Zertifikat in Azure Keyvault.
- 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.
- 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-.
- 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
- Einschließen der Azure Identity-Bibliothek in Ihr C#-Projekt.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
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();
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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Installieren Sie das Azure Az PowerShell-Modul.
- Eine Azure Communication Services-Ressource.
- Erstellen Sie einen Webhook zum Empfangen von Ereignissen. Siehe Webhook Event Delivery.
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 den folgenden Befehl aus:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- 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 RegistrationStatus
Registered
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
Melden Sie sich mit dem Befehl Connect-AzAccount bei Ihrem Azure-Abonnement an, und folgen Sie den Anleitungen auf dem Bildschirm.
Connect-AzAccount
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
- Informationen zu anderen Befehlen finden Sie unter Az.EventGrid-PowerShell-Modul.