Dela via


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

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:

  1. Välj Prenumerationer på den vänstra menyn.

  2. Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.

  3. På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.

  4. Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.

  5. Välj Microsoft.EventGrid i providerlistan.

  6. Välj Registrera i kommandofältet.

    Bild som visar registreringen av Microsoft.EventGrid-providern med Azure-prenumerationen.

  7. Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.

    Bild som visar lyckad registrering av Microsoft.EventGrid-providern med Azure-prenumerationen.

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.

  1. Välj fliken Händelser på den vänstra menyn.
  2. Välj + Händelseprenumeration.

Skärmbild som markerar knappen skapa händelseprenumeration i Azure Portal.

  1. Följ dessa steg på sidan Skapa händelseprenumeration :
    1. Ange ett namn för händelseprenumerationen.

    2. Ange ett namn för systemämnesnamnet.

    3. Välj de händelsetyper som du vill ta emot för händelseprenumerationen.

      Skärmbild som visar valet av händelsetyper.

      Mer information finns i Communication Services-händelser.

    4. Välj Slutpunktstyp som Webbhook.

      Skärmbild som visar valet av slutpunktstyp.

    5. Välj Konfigurera en slutpunkt

      Skärmbild som markerar sidan skapa händelse i Azure Portal.

    6. Ange länken till webhooken och välj Bekräfta markering.

      Skärmbild som markerar sidan välj webhook-slutpunkt i Azure Portal.

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

      Skärmbild som markerar sidan Skapa filter för Event Grid i Azure Portal.

    8. Om du vill aktivera obeställbara bokstäver och anpassa återförsöksprinciper väljer du Ytterligare funktioner.

      Skärmbild som visar fliken Ytterligare funktioner på sidan Skapa händelseprenumeration.

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

  1. Välj fliken Händelser på den vänstra menyn.

  2. Välj Händelseprenumerationer och välj den händelseprenumeration som du vill uppdatera.

    Skärmbild som markerar knappen händelseprenumeration i Azure Portal.

  3. På sidan Händelseprenumeration väljer du fliken Filter . Välj de händelsetyper som du vill ta emot för händelseprenumerationen.

    Skärmbild som visar valet av händelsetyper som ska uppdateras.

  4. Om du vill aktivera obeställbara bokstäver och anpassa återförsöksprinciper väljer du Ytterligare funktioner.

    Skärmbild som visar fliken Ytterligare funktioner på sidan Uppdatera händelseprenumeration.

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

    Skärmbild som visar länken Ändra webhooksslutpunkt på sidan Händelseprenumeration.

  6. Välj Spara när du är klar.

    Skärmbild som visar knappen Spara i Azure Portal.

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.

  1. Välj fliken Händelser på den vänstra menyn.

  2. Välj Händelseprenumerationer och välj den händelseprenumeration som du vill ta bort.

    Skärmbild som markerar knappen händelseprenumerationer för att få åtkomst till händelseprenumeration som ska tas bort i Azure Portal.

  3. På sidan Händelseprenumeration väljer du Ta bort överst på sidan.

    Skärmbild som markerar borttagningsknappen i Azure Portal.

Nästa steg

Förutsättningar

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.

  1. Registrera providern genom att köra följande kommando:

    az provider register --namespace Microsoft.EventGrid
    
  2. 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 är Registered 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

Förutsättningar

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:

  1. Välj Prenumerationer på den vänstra menyn.

  2. Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.

  3. På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.

  4. Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.

  5. Välj Microsoft.EventGrid i providerlistan.

  6. Välj Registrera i kommandofältet.

    Bild som visar registreringen av Microsoft.EventGrid-providern med Azure-prenumerationen.

  7. Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.

    Bild som visar lyckad registrering av Microsoft.EventGrid-providern med Azure-prenumerationen.

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

  1. 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.
  2. Lagra hemligheten eller certifikatet i Azure Keyvault.
  3. 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.
  4. 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.

  1. Inkludera Azure Identity-klientbiblioteket för .NET med NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Inkludera Azure Identity-biblioteket i ditt C#-projekt.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. 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();
      
  2. 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

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.

  1. Kör följande kommando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. 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
  1. Logga in på din Azure-prenumeration med kommandot Connect-AzAccount och följ anvisningarna på skärmen.

    Connect-AzAccount
    
  2. 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