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
- 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ń. Zobacz Webhook Event Delivery (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:
W menu po lewej stronie wybierz pozycję Subskrypcje.
Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.
Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.
Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.
Wybierz pozycję Microsoft.EventGrid na liście dostawców.
Wybierz pozycję Zarejestruj na pasku poleceń.
Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.
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.
- Wybierz kartę Zdarzenia z menu po lewej stronie.
- Wybierz pozycję + Subskrypcja zdarzeń.
- Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:
Wprowadź nazwę subskrypcji zdarzeń.
Wprowadź nazwę tematu systemowego.
Wybierz typy zdarzeń, które mają zostać odebrane w subskrypcji zdarzeń.
Aby uzyskać więcej informacji, zobacz Zdarzenia usług komunikacyjnych.
Wybierz typ punktu końcowego jako element Web Hook.
Wybierz pozycję Konfiguruj punkt końcowy
Wprowadź link do elementu webhook i wybierz pozycję Potwierdź zaznaczenie.
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.
Aby włączyć tworzenie utraconych komunikatów i dostosować zasady ponawiania prób, wybierz pozycję Dodatkowe funkcje.
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.
Wybierz kartę Zdarzenia z menu po lewej stronie.
Wybierz pozycję Subskrypcje zdarzeń i wybierz subskrypcję zdarzeń, którą chcesz zaktualizować.
Na stronie Subskrypcja zdarzeń wybierz kartę Filtry. Wybierz typy zdarzeń, które mają zostać odebrane w subskrypcji zdarzeń.
Aby włączyć tworzenie utraconych komunikatów i dostosować zasady ponawiania prób, wybierz pozycję Dodatkowe funkcje.
Aby zaktualizować element webhook w celu odbierania zdarzeń, wybierz pozycję Zmień obok linku elementu webhook i wprowadź nowy punkt końcowy elementu webhook.
Po zakończeniu wybierz pozycję Zapisz.
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.
Wybierz kartę Zdarzenia z menu po lewej stronie.
Wybierz pozycję Subskrypcje zdarzeń i wybierz subskrypcję zdarzeń, którą chcesz usunąć.
Na stronie Subskrypcja zdarzeń wybierz pozycję Usuń w górnej części strony.
Następne kroki
- Aby uzyskać listę zdarzeń usług komunikacyjnych, zobacz Zdarzenia usług komunikacyjnych.
- Aby uzyskać listę obsługiwanych programów obsługi zdarzeń, zobacz Procedury obsługi zdarzeń.
- Aby uzyskać informacje na temat dostarczania zdarzeń i ponawiania prób, zobacz Dostarczanie komunikatów usługi Event Grid i ponawianie próby.
- Aby zapoznać się z wprowadzeniem do usługi Event Grid, zobacz Wprowadzenie do usługi Azure Event Grid.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Zainstaluj interfejs wiersza polecenia platformy Azure.
- Zasób usług Azure Communication Services.
- Utwórz element webhook do odbierania zdarzeń. Zobacz Webhook Event Delivery (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.
Uruchom następujące polecenie, aby zarejestrować dostawcę:
az provider register --namespace Microsoft.EventGrid
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
- Aby uzyskać informacje o innych poleceniach, zobacz Interfejs wiersza polecenia usługi Azure Event Grid.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Najnowsza wersja zestawu .NET Core SDK dla systemu operacyjnego.
- Najnowsza wersja zestawu SDK zarządzania usługą Microsoft Azure Event Grid na platformie .NET.
- Najnowsza wersja 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:
W menu po lewej stronie wybierz pozycję Subskrypcje.
Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.
Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.
Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.
Wybierz pozycję Microsoft.EventGrid na liście dostawców.
Wybierz pozycję Zarejestruj na pasku poleceń.
Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.
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
- 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.
- Zapisz wpis tajny lub certyfikat w usłudze Azure Keyvault.
- 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.
- 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.
- 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
- Uwzględnij bibliotekę tożsamości platformy Azure w projekcie języka C#.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
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();
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
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Zainstaluj moduł Azure Az programu PowerShell.
- Zasób usług Azure Communication Services.
- Utwórz element webhook do odbierania zdarzeń. Zobacz Webhook Event Delivery (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.
- Uruchom następujące polecenie:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- 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
Zaloguj się do subskrypcji platformy Azure za pomocą polecenia Connect-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
- Aby uzyskać informacje na temat innych poleceń, zobacz Moduł Az.EventGrid programu PowerShell.