Udostępnij za pośrednictwem


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

W tym artykule wyjaśniono, jak subskrybować zdarzenia z usług Azure Communication Services za pośrednictwem portalu, interfejsu wiersza polecenia platformy Azure, programu PowerShell i zestawu SDK platformy .NET.

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

W tym przewodniku Szybki start opisano proces konfigurowania elementu webhook jako subskrybenta zdarzeń SMS z usług Azure Communication Services. Aby uzyskać pełną listę zdarzeń, zobacz Azure Communication Services jako źródło usługi Azure Event Grid.

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.

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

    Obraz przedstawiający rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

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

    Obraz przedstawiający pomyślną rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

Tworzenie subskrypcji zdarzeń

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.

  1. Wybierz kartę Zdarzenia z menu po lewej stronie.
  2. Wybierz pozycję + Subskrypcja zdarzeń.

Zrzut ekranu przedstawiający przycisk utwórz subskrypcję zdarzeń w witrynie Azure Portal.

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

      Zrzut ekranu przedstawiający wybór typów zdarzeń.

      Aby uzyskać więcej informacji, zobacz Zdarzenia usług komunikacyjnych.

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

      Zrzut ekranu przedstawiający wybór typu punktu końcowego.

    5. Wybierz pozycję Konfiguruj punkt końcowy

      Zrzut ekranu przedstawiający stronę tworzenia zdarzenia w witrynie Azure Portal.

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

      Zrzut ekranu przedstawiający stronę wybranego punktu końcowego elementu webhook w witrynie Azure Portal.

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

      Zrzut ekranu przedstawiający stronę tworzenia filtrów usługi Event Grid w witrynie Azure Portal.

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

      Zrzut ekranu przedstawiający kartę Dodatkowe funkcje na stronie Tworzenie subskrypcji zdarzeń.

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

Aktualizowanie subskrypcji zdarzeń

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 z menu po lewej stronie.

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

    Zrzut ekranu przedstawiający przycisk subskrypcji zdarzeń w witrynie Azure Portal.

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

    Zrzut ekranu przedstawiający wybór typów zdarzeń do zaktualizowania.

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

    Zrzut ekranu przedstawiający kartę Dodatkowe funkcje na stronie Aktualizowanie subskrypcji zdarzeń.

  5. Aby zaktualizować element webhook w celu odbierania zdarzeń, wybierz pozycję Zmień obok linku elementu webhook i wprowadź nowy punkt końcowy elementu webhook.

    Zrzut ekranu przedstawiający link Zmień punkt końcowy elementu webhook na stronie Subskrypcja zdarzeń.

  6. Po zakończeniu wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający przycisk zapisz w witrynie 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 z menu po lewej stronie.

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

    Zrzut ekranu przedstawiający przycisk subskrypcji zdarzeń w celu uzyskania dostępu do subskrypcji zdarzeń do usunięcia w witrynie Azure Portal.

  3. Na stronie Subskrypcja zdarzeń wybierz pozycję Usuń w górnej części strony.

    Zrzut ekranu przedstawiający przycisk usuwania w witrynie 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ę, az login uruchamiając polecenie z poziomu terminalu, a następnie podać swoje poświadczenia.

Aby utworzyć subskrypcję zdarzeń przy użyciu interfejsu wiersza polecenia platformy az eventgrid event-subscription create Azure, użyj 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 az eventgrid event-subscription update Azure, użyj 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 az eventgrid event-subscription delete Azure, użyj 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

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

    Obraz przedstawiający rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

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

    Obraz przedstawiający pomyślną rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

Instalacja 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 zgodnie z instrukcjami w temacie Rejestrowanie aplikacji Microsoft Entra i utwórz jednostkę usługi.
  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 w temacie Udzielanie użytkownikowi dostępu do zasobów platformy Azure przy użyciu witryny Azure Portal.
  4. Przeczytaj więcej na temat autoryzowania dostępu do zasobów usługi Event Grid.

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órych można użyć do konstruowania klientów zestawu Azure SDK obsługujących uwierzytelnianie tokenu Firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Biblioteka klienta tożsamości platformy Azure dla platformy .NET.

  1. Dołącz bibliotekę klienta tożsamości platformy Azure dla platformy .NET z pakietem 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 ramach wymagań wstępnych 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 2 przy użyciu elementu CertificateClient.

      Przeczytaj więcej na temat urzędu konfiguracji aplikacji Microsoft Entra w opcjach konfiguracji aplikacji.

      // 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 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_subscription_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 zainstaluj moduł Az.EventGrid Azure Communication Services przy użyciu następującego polecenia.

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

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