Udostępnij za pośrednictwem


Szybki start: subskrybowanie zdarzeń usług Azure Communication Services

Z tego przewodnika Szybki start dowiesz się, jak subskrybować zdarzenia z usług Azure Communication Services za pośrednictwem portalu, interfejsu wiersza polecenia platformy Azure, programu PowerShell i zestawu .NET SDK.

Subskrypcje zdarzeń dla zasobów usług komunikacyjnych można skonfigurować za pomocą witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure, programu PowerShell lub zestawu SDK zarządzania usługą Azure Event Grid.

W tym przewodniku Szybki start omówimy proces konfigurowania elementu webhook jako subskrybenta zdarzeń SMS z usług Azure Communication Services. Aby uzyskać pełną listę zdarzeń, zobacz tę stronę.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Zasób usług Azure Communication Services.
  • Utwórz element webhook do odbierania zdarzeń. Dostarczanie zdarzeń elementu webhook.

Rejestrowanie dostawcy zasobów usługi Event Grid

W tym artykule opisano sposób rejestrowania dostawcy zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid w tej samej subskrypcji, przejdź do następnej sekcji.

W witrynie Azure Portal wykonaj następujące czynności:

  1. W menu po lewej stronie wybierz pozycję Subskrypcje.

  2. Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.

  3. Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.

  4. Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.

  5. Wybierz pozycję Microsoft.EventGrid na liście dostawców.

  6. Wybierz pozycję Zarejestruj na pasku poleceń.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Tworzenie subskrypcji zdarzeń

Aby utworzyć subskrypcję zdarzeń dla usług Azure Communication Services, wykonaj następujące kroki. W tym artykule pokazano, jak utworzyć subskrypcję zdarzeń dla usług Azure Communication Services w celu odbierania zdarzeń za pośrednictwem elementu webhook.

Aby utworzyć subskrypcję zdarzeń dla zasobu usług Azure Communication Services, najpierw zaloguj się do witryny Azure Portal. W lewym górnym rogu strony wybierz zasób Usług komunikacyjnych.

  • Wybierz kartę Zdarzenia w menu po lewej stronie.
  • Wybierz pozycję + Subskrypcja zdarzeń.

Screenshot highlighting the create event subscription button in the Azure portal.

  • Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:
  1. Wprowadź nazwę subskrypcji zdarzeń.

  2. Wprowadź nazwę tematu systemowego.

  3. Wybierz typy zdarzeń, które mają zostać odebrane w subskrypcji zdarzeń.

    Screenshot that shows the selection of event types.

    Aby uzyskać więcej informacji na temat zdarzeń usług Komunikacyjnych, zobacz Zdarzenia usług komunikacyjnych

  4. Wybierz typ punktu końcowego jako element Web Hook.

    Screenshot that shows the selection of endpoint type.

  5. Wybierz pozycję Konfiguruj punkt końcowy

    Screenshot highlighting the create event page in the Azure portal.

  6. Wprowadź link do elementu webhook i wybierz pozycję Potwierdź zaznaczenie.

    Screenshot highlighting the select webhook endpoint page in the Azure portal.

  7. Na karcie Filtry dodaj nazwy typów zdarzeń, które chcesz filtrować w subskrypcji, i dodaj filtry atrybutów kontekstu, których chcesz użyć w subskrypcji. Następnie wybierz pozycję Dalej: dodatkowe funkcje w dolnej części strony.

    Screenshot highlighting Event Grid create filters page in the Azure portal.

  8. Aby włączyć tworzenie utraconych komunikatów i dostosować zasady ponawiania prób, wybierz pozycję Dodatkowe funkcje.

    Screenshot that shows the Additional features tab of the Create Event Subscription page.

  9. Po zakończeniu wybierz pozycję Utwórz.

Aktualizowanie subskrypcji zdarzeń

Aby zaktualizować subskrypcję zdarzeń dla usług Azure Communication Services, wykonaj następujące kroki. W tej sekcji pokazano, jak zaktualizować subskrypcję zdarzeń dla usług Azure Communication Services w celu zaktualizowania zdarzeń, które mają być odbierane za pośrednictwem elementu webhook.

Aby zaktualizować subskrypcję zdarzeń dla zasobu usług Azure Communication Services, najpierw zaloguj się do witryny Azure Portal. W lewym górnym rogu strony wybierz zasób Usług komunikacyjnych.

  1. Wybierz kartę Zdarzenia w menu po lewej stronie.

  2. Wybierz pozycję Subskrypcje zdarzeń i wybierz subskrypcję zdarzeń, którą chcesz zaktualizować.

    Screenshot highlighting the event subscription button in the Azure portal.

  3. Na stronie Subskrypcja zdarzeń wybierz kartę Filtry. Wybierz typy zdarzeń, które mają zostać odebrane w subskrypcji zdarzeń.

    Screenshot that shows the selection of event types to update.

  4. Aby włączyć tworzenie utraconych komunikatów i dostosować zasady ponawiania prób, wybierz pozycję Dodatkowe funkcje.

    Screenshot that shows the Additional features tab of the Update Event Subscription page.

  5. Aby zaktualizować element webhook w celu odbierania zdarzeń, wybierz pozycję Zmień obok linku elementu webhook i wprowadź nowy punkt końcowy elementu webhook. Screenshot that shows the Change the webhook endpoint link in the Event Subscription page.

  6. Po zakończeniu wybierz pozycję Zapisz, Screenshot that shows the save button in the Azure portal.

Usuwanie subskrypcji zdarzeń

Aby usunąć subskrypcję zdarzeń dla usług Azure Communication Services, wykonaj następujące kroki.

Aby usunąć subskrypcję zdarzeń dla zasobu usług Azure Communication Services, najpierw zaloguj się do witryny Azure Portal. W lewym górnym rogu strony wybierz zasób Usług komunikacyjnych.

  1. Wybierz kartę Zdarzenia w menu po lewej stronie.

  2. Wybierz pozycję Subskrypcje zdarzeń i wybierz subskrypcję zdarzeń, którą chcesz usunąć.

    Screenshot highlighting the event subscriptions button to access event subscription to be deleted in the Azure portal.

  3. Na stronie Subskrypcja zdarzeń wybierz przycisk Usuń u góry.

    Screenshot highlighting the delete button in the Azure portal.

Następne kroki

Wymagania wstępne

Rejestrowanie dostawcy zasobów usługi Event Grid

W tym artykule opisano sposób rejestrowania dostawcy zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid w tej samej subskrypcji, przejdź do następnej sekcji.

  1. Uruchom następujące polecenie, aby zarejestrować dostawcę:

    az provider register --namespace Microsoft.EventGrid
    
  2. Ukończenie rejestracji może zająć trochę czasu. Aby sprawdzić stan, uruchom następujące polecenie:

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

    Gdy właściwość registrationState uzyska wartość Registered, można kontynuować.

Tworzenie subskrypcji zdarzeń

Aby utworzyć subskrypcje zdarzeń dla zasobu usług Azure Communication Services, zaloguj się do interfejsu wiersza polecenia platformy Azure. Możesz zalogować się, uruchamiając polecenie z poziomu terminalu az login i podając swoje poświadczenia. Uruchom następujące polecenie, aby utworzyć subskrypcję zdarzeń dla zasobu:

Aby utworzyć subskrypcję zdarzeń przy użyciu interfejsu wiersza polecenia platformy Azure, użyj az eventgrid event-subscription create polecenia .

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  

Aby uzyskać listę zdarzeń usług komunikacyjnych, zobacz Zdarzenia usług komunikacyjnych.

Wyświetlanie listy subskrypcji zdarzeń

Aby wyświetlić listę wszystkich istniejących subskrypcji zdarzeń skonfigurowanych dla zasobu usług Azure Communication Services, przy użyciu interfejsu az eventgrid event-subscription list wiersza polecenia platformy Azure, użyj polecenia .

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

Aktualizowanie subskrypcji zdarzeń

Aby zaktualizować istniejącą subskrypcję zdarzeń przy użyciu interfejsu wiersza polecenia platformy Azure, użyj az eventgrid event-subscription update polecenia .

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

Usuwanie subskrypcji zdarzeń

Aby usunąć istniejącą subskrypcję zdarzeń przy użyciu interfejsu wiersza polecenia platformy Azure, użyj az eventgrid event-subscription delete polecenia .

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

Następne kroki

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Najnowsza wersja zestawu .NET Core SDK dla systemu operacyjnego.
  • Pobierz najnowszą wersję zestawu SDK zarządzania usługą Microsoft Azure Event Grid dla platformy .NET.
  • Pobierz najnowszą wersję biblioteki tożsamości platformy Azure.
  • Zasób usług Azure Communication Services.

Rejestrowanie dostawcy zasobów usługi Event Grid

W tym artykule opisano sposób rejestrowania dostawcy zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid w tej samej subskrypcji, przejdź do następnej sekcji.

W witrynie Azure Portal wykonaj następujące czynności:

  1. W menu po lewej stronie wybierz pozycję Subskrypcje.

  2. Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.

  3. Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.

  4. Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.

  5. Wybierz pozycję Microsoft.EventGrid na liście dostawców.

  6. Wybierz pozycję Zarejestruj na pasku poleceń.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Instalowanie zestawu SDK

Najpierw zainstaluj bibliotekę zarządzania usługą Microsoft Azure Event Grid dla platformy .NET za pomocą narzędzia NuGet:

dotnet add package Azure.ResourceManager.EventGrid;

Uwzględnij zestaw SDK zarządzania usługą Event Grid w projekcie języka C#:

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

Uwierzytelnianie za pomocą biblioteki tożsamości platformy Azure

Wymagania wstępne:

  1. Utwórz aplikację Microsoft Entra i jednostkę usługi i skonfiguruj klucz tajny klienta lub zaufany certyfikat wystawiony przez urząd certyfikacji, postępując zgodnie z instrukcjami podanymi tutaj.
  2. Zapisz wpis tajny lub certyfikat w usłudze Azure Keyvault.
  3. Nadaj współautorowi lub właścicielowi dostęp do subskrypcji tej aplikacji, postępując zgodnie z instrukcjami podanymi tutaj.
  4. Przeczytaj więcej na temat autoryzowania dostępu do zasobów usługi Event Grid tutaj.

Biblioteka tożsamości platformy Azure zapewnia obsługę uwierzytelniania tokenów microsoft Entra ID (dawniej Azure Active Directory) w zestawie Azure SDK. Udostępnia zestaw implementacji TokenCredential, które mogą służyć do konstruowania klientów zestawu Azure SDK, którzy obsługują uwierzytelnianie tokenu Entra firmy Microsoft. Więcej informacji na ten temat można znaleźć tutaj.

  1. Dołącz bibliotekę klienta tożsamości platformy Azure dla platformy .NET za pomocą narzędzia NuGet:
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Uwzględnij bibliotekę tożsamości platformy Azure w projekcie języka C#
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. Możesz przekazać poświadczenia wpisu tajnego lub poświadczenia certyfikatu, aby uzyskać token dostępu na podstawie sposobu konfigurowania jednostki usługi.

    • Uzyskiwanie tokenu dostępu przy użyciu poświadczeń wpisu tajnego

      Aby uzyskać poświadczenia wpisu tajnego, należy go odczytać z usługi Keyvault utworzonej w sekcji Wymagania wstępne #2 przy użyciu elementu 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();
      
    • Uzyskiwanie tokenu dostępu przy użyciu poświadczeń certyfikatu

      Aby uzyskać poświadczenia certyfikatu, należy go odczytać z usługi Keyvault utworzonej w sekcji Wymagania wstępne nr 2 przy użyciu elementu CertificateClient.

      Przeczytaj więcej na temat urzędu konfiguracji aplikacji Entra firmy Microsoft tutaj

      // 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. Uwierzytelnianie elementu EventGridManagementClient przy użyciu tokenu dostępu przy użyciu poświadczeń wpisu tajnego lub certyfikatu

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

Tworzenie subskrypcji zdarzeń

W tym przykładzie kodu pokazano, jak utworzyć subskrypcję zdarzeń dla punktu końcowego subskrybenta elementu webhook.

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

Aktualizowanie subskrypcji zdarzeń

W tym przykładzie kodu pokazano, jak zaktualizować subskrypcję zdarzeń, aby dodać więcej zdarzeń, które mają zostać odebrane w punkcie końcowym subskrybenta elementu webhook.

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

Usuwanie subskrypcji zdarzeń

Ten przykładowy kod pokazuje, jak usunąć subskrypcję zdarzeń dla punktu końcowego subskrybenta elementu webhook.

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

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

Wymagania wstępne

Rejestrowanie dostawcy zasobów usługi Event Grid

W tym artykule opisano sposób rejestrowania dostawcy zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid w tej samej subskrypcji, przejdź do następnej sekcji.

  1. Uruchom następujące polecenie:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. Ukończenie rejestracji może chwilę potrwać. Aby sprawdzić stan, uruchom polecenie:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Gdy właściwość RegistrationStatus uzyska wartość Registered, można kontynuować.

Tworzenie subskrypcji zdarzeń

Najpierw upewnij się, że moduł Azure Communication Services Az.EventGrid został zainstalowany przy użyciu następującego polecenia.

PS C:\> Install-Module Az.EventGrid
  • Zaloguj się do subskrypcji platformy Azure za pomocą polecenia Połączenie-AzAccount i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie:

    Connect-AzAccount
    
  • Jeśli tożsamość jest skojarzona z więcej niż jedną subskrypcją, ustaw aktywną subskrypcję na subskrypcję zasobu Web PubSub, który chcesz przenieść.

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

Aby utworzyć subskrypcję zdarzeń przy użyciu programu Azure PowerShell, użyj New-AzEventGridSubscription polecenia .

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

Aby uzyskać listę zdarzeń usług komunikacyjnych, zobacz Zdarzenia usług komunikacyjnych.

Wyświetlanie listy subskrypcji zdarzeń

Aby wyświetlić listę wszystkich istniejących subskrypcji zdarzeń skonfigurowanych dla zasobu usług Azure Communication Services, przy użyciu programu Azure PowerShell, użyj Get-AzEventGridSubscription polecenia .

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

Aktualizowanie subskrypcji zdarzeń

Aby zaktualizować istniejącą subskrypcję zdarzeń przy użyciu programu Azure PowerShell, użyj Update-AzEventGridSubscription polecenia .

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

Usuwanie subskrypcji zdarzeń

Aby usunąć istniejącą subskrypcję zdarzeń przy użyciu programu Azure PowerShell, użyj Remove-AzEventGridSubscription polecenia .

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

Następne kroki