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
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Azure Communication Services-resource.
- Maak een webhook om gebeurtenissen te ontvangen. Zie De levering van webhook-gebeurtenissen.
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:
Selecteer Abonnementen in het linkermenu.
Selecteer het abonnement dat u wilt gebruiken voor Event Grid in de lijst met abonnementen.
Selecteer op de pagina Abonnement resourceproviders onder Instellingen in het linkermenu.
Zoek naar Microsoft.EventGrid en controleer of de status niet is geregistreerd.
Selecteer Microsoft.EventGrid in de lijst met providers.
Selecteer Registreren op de opdrachtbalk.
Vernieuwen om ervoor te zorgen dat de status van Microsoft.EventGrid wordt gewijzigd in Geregistreerd.
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.
- Selecteer het tabblad Gebeurtenissen in het linkermenu.
- Selecteer + Gebeurtenisabonnement.
- Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:
Voer een naam in voor het gebeurtenisabonnement.
Voer een naam in voor de naam van het systeemonderwerp.
Selecteer de gebeurtenistypen die u wilt ontvangen voor het gebeurtenisabonnement.
Zie Communication Services-gebeurtenissen voor meer informatie.
Selecteer het eindpunttype als webhook.
Een eindpunt configureren selecteren
Voer de koppeling naar de webhook in en selecteer Selectie bevestigen.
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.
Als u beleid voor mislukte brieven wilt inschakelen en beleid voor opnieuw proberen wilt aanpassen, selecteert u Aanvullende functies.
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.
Selecteer het tabblad Gebeurtenissen in het linkermenu.
Selecteer Gebeurtenisabonnementen en selecteer het gebeurtenisabonnement dat u wilt bijwerken.
Selecteer op de pagina Gebeurtenisabonnement het tabblad Filters . Selecteer de gebeurtenistypen die u wilt ontvangen voor het gebeurtenisabonnement.
Als u beleid voor mislukte brieven wilt inschakelen en beleid voor opnieuw proberen wilt aanpassen, selecteert u Aanvullende functies.
Als u de webhook wilt bijwerken om gebeurtenissen te ontvangen, selecteert u Wijzigen naast de webhookkoppeling en voert u het nieuwe webhookeindpunt in.
Selecteer Opslaan wanneer u klaar bent.
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.
Selecteer het tabblad Gebeurtenissen in het linkermenu.
Selecteer Gebeurtenisabonnementen en selecteer het gebeurtenisabonnement dat u wilt verwijderen.
Selecteer Verwijderen boven aan de pagina Gebeurtenisabonnement.
Volgende stappen
- Zie Communication Services-gebeurtenissen voor een lijst met Communication Services-gebeurtenissen.
- Zie Gebeurtenis-handlers voor een lijst met ondersteunde gebeurtenis-handlers.
- Zie Event Grid-berichtbezorging en nieuwe pogingen voor informatie over het bezorgen en opnieuw proberen van gebeurtenissen.
- Zie Een inleiding tot Event Grid voor een inleiding tot Event Grid.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Installeer Azure CLI.
- Een Azure Communication Services-resource.
- Maak een webhook om gebeurtenissen te ontvangen. Zie De levering van webhook-gebeurtenissen.
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 de volgende opdracht uit om de provider te registreren:
az provider register --namespace Microsoft.EventGrid
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
registrationState
Registered
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
- Zie Azure Event Grid CLI voor meer informatie over andere opdrachten.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- De nieuwste versie van .NET Core SDK voor uw besturingssysteem.
- De nieuwste versie van de .NET Microsoft Azure Event Grid Management SDK.
- De nieuwste versie van de Azure Identity-bibliotheek .
- Een Azure Communication Services-resource.
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:
Selecteer Abonnementen in het linkermenu.
Selecteer het abonnement dat u wilt gebruiken voor Event Grid in de lijst met abonnementen.
Selecteer op de pagina Abonnement resourceproviders onder Instellingen in het linkermenu.
Zoek naar Microsoft.EventGrid en controleer of de status niet is geregistreerd.
Selecteer Microsoft.EventGrid in de lijst met providers.
Selecteer Registreren op de opdrachtbalk.
Vernieuwen om ervoor te zorgen dat de status van Microsoft.EventGrid wordt gewijzigd in Geregistreerd.
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
- 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.
- Sla het geheim of het certificaat op in de Azure KeyVault.
- 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.
- 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.
- Neem de Azure Identity-clientbibliotheek voor .NET op met NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
- Neem de Azure Identity-bibliotheek op in uw C#-project.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
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();
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
- Een Azure-account met een actief abonnement. Gratis een account maken
- Installeer de Azure Az PowerShell-module.
- Een Azure Communication Services-resource.
- Maak een webhook om gebeurtenissen te ontvangen. Zie De levering van webhook-gebeurtenissen.
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 de volgende opdracht uit:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- 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 RegistrationStatus
Registered
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
Meld u aan bij uw Azure-abonnement met de opdracht Connect-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 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
- Zie de Az.EventGrid PowerShell-module voor meer informatie over andere opdrachten.