Snabbstart: Prenumerera på Azure Communication Services-händelser
Den här artikeln beskriver hur du prenumererar på händelser från Azure Communication Services via portalen, Azure CLI, PowerShell och .NET SDK.
Du kan konfigurera händelseprenumerationer för Communication Services-resurser via Azure Portal, Azure CLI, PowerShell eller med Azure Event Grid Management SDK.
Den här snabbstarten beskriver hur du konfigurerar en webhook som prenumerant för SMS-händelser från Azure Communication Services. En fullständig lista över händelser finns i Azure Communication Services som en Azure Event Grid-källa.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En Azure Communication Services-resurs.
- Skapa en webhook för att ta emot händelser. Se Webhook Händelseleverans.
Registrera Event Grid-resursprovidern
I den här artikeln beskrivs hur du registrerar Event Grid-resursprovidern. Om du använde Event Grid tidigare i samma prenumeration går du vidare till nästa avsnitt.
Gör följande i Azure Portal:
Välj Prenumerationer på den vänstra menyn.
Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.
På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.
Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.
Välj Microsoft.EventGrid i providerlistan.
Välj Registrera i kommandofältet.
Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.
Skapa händelseprenumeration
Om du vill skapa en händelseprenumeration för Azure Communication Services-resursen loggar du först in på Azure Portal. I det övre vänstra hörnet på sidan väljer du resursen Kommunikationstjänster.
- Välj fliken Händelser på den vänstra menyn.
- Välj + Händelseprenumeration.
- Följ dessa steg på sidan Skapa händelseprenumeration :
Ange ett namn för händelseprenumerationen.
Ange ett namn för systemämnesnamnet.
Välj de händelsetyper som du vill ta emot för händelseprenumerationen.
Mer information finns i Communication Services-händelser.
Välj Slutpunktstyp som Webbhook.
Välj Konfigurera en slutpunkt
Ange länken till webhooken och välj Bekräfta markering.
På fliken Filter lägger du till namnen på de händelsetyper som du vill filtrera i prenumerationen. Lägg till eventuella kontextattributfilter som du vill använda i prenumerationen. Välj sedan Nästa: Ytterligare funktioner längst ned på sidan.
Om du vill aktivera obeställbara bokstäver och anpassa återförsöksprinciper väljer du Ytterligare funktioner.
Välj Skapa när du är klar.
Uppdatera händelseprenumeration
Det här avsnittet visar hur du uppdaterar en händelseprenumeration för Azure Communication Services för att uppdatera de händelser som du vill ta emot via Webhook.
Om du vill uppdatera en händelseprenumeration för Azure Communication Services-resursen loggar du först in på Azure Portal. I det övre vänstra hörnet på sidan väljer du resursen Kommunikationstjänster.
Välj fliken Händelser på den vänstra menyn.
Välj Händelseprenumerationer och välj den händelseprenumeration som du vill uppdatera.
På sidan Händelseprenumeration väljer du fliken Filter . Välj de händelsetyper som du vill ta emot för händelseprenumerationen.
Om du vill aktivera obeställbara bokstäver och anpassa återförsöksprinciper väljer du Ytterligare funktioner.
Om du vill uppdatera webhooken för att ta emot händelser väljer du Ändra bredvid webhookslänken och anger den nya webhook-slutpunkten.
Välj Spara när du är klar.
Ta bort händelseprenumeration
Följ dessa steg om du vill ta bort en händelseprenumeration för Azure Communication Services.
Om du vill ta bort en händelseprenumeration för Azure Communication Services-resursen loggar du först in på Azure Portal. I det övre vänstra hörnet på sidan väljer du resursen Kommunikationstjänster.
Välj fliken Händelser på den vänstra menyn.
Välj Händelseprenumerationer och välj den händelseprenumeration som du vill ta bort.
På sidan Händelseprenumeration väljer du Ta bort överst på sidan.
Nästa steg
- En lista över Communication Services-händelser finns i Communication Services-händelser.
- En lista över händelsehanterare som stöds finns i Händelsehanterare.
- Information om händelseleverans och återförsök finns i Leverans av Event Grid-meddelanden och försök igen.
- En introduktion till Event Grid finns i Om Event Grid.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Installera Azure CLI.
- En Azure Communication Services-resurs.
- Skapa en webhook för att ta emot händelser. Se Webhook Händelseleverans.
Registrera Event Grid-resursprovidern
I den här artikeln beskrivs hur du registrerar Event Grid-resursprovidern. Om du använde Event Grid tidigare i samma prenumeration går du vidare till nästa avsnitt.
Registrera providern genom att köra följande kommando:
az provider register --namespace Microsoft.EventGrid
Det kan ta en stund innan registreringen är klar. Kontrollera statusen genom att köra följande kommando:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
När
registrationState
ärRegistered
kan du fortsätta.
Skapa händelseprenumeration
Om du vill skapa händelseprenumerationer för Azure Communication Services-resursen loggar du in på Azure CLI. Du kan logga in när du kör az login
kommandot från terminalen och sedan ange dina autentiseringsuppgifter.
Om du vill skapa en händelseprenumeration med hjälp av Azure CLI använder du az eventgrid event-subscription create
kommandot:
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
En lista över Communication Services-händelser finns i Communication Services-händelser.
Lista händelseprenumerationer
Om du vill visa en lista över alla befintliga händelseprenumerationer som har konfigurerats för en Azure Communication Services-resurs med hjälp av Azure CLI använder du az eventgrid event-subscription list
kommandot .
az eventgrid event-subscription list
--source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
Uppdatera händelseprenumeration
Om du vill uppdatera en befintlig händelseprenumeration med hjälp av Azure CLI använder du az eventgrid event-subscription update
kommandot .
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
Ta bort händelseprenumeration
Om du vill ta bort en befintlig händelseprenumeration med hjälp av Azure CLI använder du az eventgrid event-subscription delete
kommandot .
az eventgrid event-subscription delete
--name EventsWebhookSubscription
--source-resource-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>
Nästa steg
- Information om andra kommandon finns i Azure Event Grid CLI.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Den senaste versionen av .NET Core SDK för ditt operativsystem.
- Den senaste versionen av .NET Microsoft Azure Event Grid Management SDK.
- Den senaste versionen av Azure Identity-biblioteket .
- En Azure Communication Services-resurs.
Registrera Event Grid-resursprovidern
I den här artikeln beskrivs hur du registrerar Event Grid-resursprovidern. Om du använde Event Grid tidigare i samma prenumeration går du vidare till nästa avsnitt.
Gör följande i Azure Portal:
Välj Prenumerationer på den vänstra menyn.
Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.
På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.
Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.
Välj Microsoft.EventGrid i providerlistan.
Välj Registrera i kommandofältet.
Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.
Installera SDK:n
Installera först Microsoft Azure Event Grid Management-biblioteket för .NET med NuGet:
dotnet add package Azure.ResourceManager.EventGrid;
Inkludera Event Grid Management SDK i ditt C#-projekt:
using Microsoft.Azure.Management.EventGrid;
using Microsoft.Azure.Management.EventGrid.Models;
Autentisera med Azure Identity-biblioteket
Förutsättningar
- Skapa ett Microsoft Entra-program och tjänstens huvudnamn och konfigurera en klienthemlighet eller ett betrott certifikat som utfärdats av certifikatutfärdaren. Följ anvisningarna i Registrera en Microsoft Entra-app och skapa ett huvudnamn för tjänsten.
- Lagra hemligheten eller certifikatet i Azure Keyvault.
- Ge deltagare eller ägare åtkomst till prenumerationen till programmet enligt anvisningarna i Bevilja en användare åtkomst till Azure-resurser med hjälp av Azure Portal.
- Läs mer om att auktorisera åtkomst till Event Grid-resurser.
Azure Identity-biblioteket tillhandahåller tokenautentiseringsstöd för Microsoft Entra-ID (tidigare Azure Active Directory) i Hela Azure SDK. Den innehåller en uppsättning TokenCredential-implementeringar som du kan använda för att konstruera Azure SDK-klienter som stöder Microsoft Entra-tokenautentisering. Mer information finns i Azure Identity-klientbiblioteket för .NET.
- Inkludera Azure Identity-klientbiblioteket för .NET med NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
- Inkludera Azure Identity-biblioteket i ditt C#-projekt.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
Du kan antingen skicka hemliga autentiseringsuppgifter eller certifikatautentiseringsuppgifter för att hämta åtkomsttoken, baserat på hur tjänstens huvudnamn har konfigurerats.
Hämta åtkomsttoken med hjälp av hemliga autentiseringsuppgifter
För att hämta de hemliga autentiseringsuppgifterna måste du läsa den från nyckelvalvet som du skapade i Krav 2 med 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();
Hämta åtkomsttoken med hjälp av certifikatautentiseringsuppgifter.
För att hämta autentiseringsuppgifterna för certifikatet måste du läsa det från den Keyvault som du skapade i Krav 2 med hjälp av CertificateClient.
Läs mer om Microsoft Entra-programkonfigurationsutfärdaren i Programkonfigurationsalternativ.
// 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();
Autentisera
EventGridManagementClient
med åtkomsttoken med hjälp av autentiseringsuppgifter för hemlighet eller certifikat.
// 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';
Skapa händelseprenumeration
Det här kodexemplet visar hur du skapar händelseprenumerationen för webhook-prenumerantslutpunkten.
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);
Uppdatera händelseprenumeration
Det här kodexemplet visar hur du uppdaterar händelseprenumerationen för att lägga till fler händelser som du vill ta emot på webhook-prenumerantslutpunkten.
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)));
Ta bort händelseprenumeration
Det här kodexemplet visar hur du tar bort händelseprenumerationen för webhook-prenumerantslutpunkten.
string webhookUri = $"<webhookUri>";
string resourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>";
await eventGridClient.EventSubscriptions.DeleteAsync(
scope: resourceId,
eventSubscriptionName: "<eventSubscriptionName>");
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Installera Azure Az PowerShell-modulen.
- En Azure Communication Services-resurs.
- Skapa en webhook för att ta emot händelser. Se Webhook Händelseleverans.
Registrera Event Grid-resursprovidern
I den här artikeln beskrivs hur du registrerar Event Grid-resursprovidern. Om du använde Event Grid tidigare i samma prenumeration går du vidare till nästa avsnitt.
- Kör följande kommando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- Det kan ta en stund att slutföra registreringen. Du kan kontrollera status genom att köra:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
När RegistrationStatus
är Registered
kan du fortsätta.
Skapa händelseprenumeration
Installera först Azure Communication Services-modulen Az.EventGrid
med hjälp av följande kommando.
PS C:\> Install-Module Az.EventGrid
Logga in på din Azure-prenumeration med kommandot Connect-AzAccount och följ anvisningarna på skärmen.
Connect-AzAccount
Om din identitet är associerad med mer än en prenumeration ställer du in din aktiva prenumeration på prenumerationen på den Web PubSub-resurs som du vill flytta.
$context = Get-AzSubscription -SubscriptionId <subscription-id> Set-AzContext $context
Om du vill skapa en händelseprenumeration med hjälp av Azure PowerShell använder du New-AzEventGridSubscription
kommandot .
$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>"
En lista över Communication Services-händelser finns i Communication Services-händelser.
Lista händelseprenumerationer
Om du vill visa en lista över alla befintliga händelseprenumerationer som har konfigurerats för en Azure Communication Services-resurs med hjälp av Azure PowerShell använder du Get-AzEventGridSubscription
kommandot .
Get-AzEventGridSubscription
-ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>"
Uppdatera händelseprenumeration
Om du vill uppdatera en befintlig händelseprenumeration med hjälp av Azure PowerShell använder du Update-AzEventGridSubscription
kommandot .
$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"
Ta bort händelseprenumeration
Om du vill ta bort en befintlig händelseprenumeration med hjälp av Azure PowerShell använder du Remove-AzEventGridSubscription
kommandot .
Get-AzResource
-ResourceId "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Communication/CommunicationServices/<acsResourceName>" | Remove-AzEventGridSubscription -EventSubscriptionName ES2
Nästa steg
- Information om andra kommandon finns i Az.EventGrid PowerShell-modulen.