Sdílet prostřednictvím


Rychlý start: Přihlášení k odběru událostí služby Azure Communication Services

V tomto rychlém startu se dozvíte, jak se přihlásit k odběru událostí z Azure Communication Services prostřednictvím portálu, Azure CLI, PowerShellu a sady .NET SDK.

Odběry událostí pro prostředky komunikačních služeb můžete nastavit prostřednictvím webu Azure Portal nebo Azure CLI, PowerShellu nebo sady SDK pro správu služby Azure Event Grid.

Pro účely tohoto rychlého startu si projdeme proces nastavení webhooku jako odběratele událostí SMS ze služeb Azure Communication Services. Úplný seznam událostí najdete na této stránce.

Požadavky

Registrace poskytovatele prostředků Event Gridu

Tento článek popisuje, jak zaregistrovat poskytovatele prostředků Event Gridu. Pokud jste službu Event Grid použili dříve ve stejném předplatném, přejděte k další části.

Na webu Azure Portal proveďte následující kroky:

  1. V nabídce vlevo vyberte Předplatná.

  2. V seznamu odběrů vyberte předplatné , které chcete použít pro Event Grid.

  3. Na stránce Předplatné vyberte v části Nastavení v nabídce vlevo poskytovatele prostředků.

  4. Vyhledejte Microsoft.EventGrid a ověřte, že stav není zaregistrovaný.

  5. V seznamu zprostředkovatelů vyberte Microsoft.EventGrid .

  6. Na panelu příkazů vyberte Zaregistrovat .

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

  7. Aktualizujte, abyste měli jistotu , že je stav Microsoft.EventGrid změněn na Zaregistrovaný.

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

Vytvoření odběru událostí

Pokud chcete vytvořit odběr událostí pro Službu Azure Communication Services, postupujte následovně. Tento článek ukazuje, jak vytvořit odběr událostí pro službu Azure Communication Services pro příjem událostí prostřednictvím webhooku.

Pokud chcete vytvořit odběr událostí pro prostředek Azure Communication Services, nejprve se přihlaste k webu Azure Portal. V levém horním rohu stránky vyberte prostředek Komunikační služby.

  • Vyberte na kartě Události v nabídce vlevo.
  • Vyberte možnost + Odběr události.

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

  • Na stránce Vytvořit odběr události postupujte takto:
  1. Zadejte název odběru události.

  2. Zadejte název systémového tématu.

  3. Vyberte typy událostí, které chcete přijímat v odběru událostí.

    Screenshot that shows the selection of event types.

    Další informace o událostech komunikačních služeb naleznete v tématu Události komunikačních služeb.

  4. Vyberte typ koncového bodu jako webhook.

    Screenshot that shows the selection of endpoint type.

  5. Výběr možnosti Konfigurace koncového bodu

    Screenshot highlighting the create event page in the Azure portal.

  6. Zadejte odkaz na webhook a vyberte Potvrdit výběr.

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

  7. Na kartě Filtry přidejte názvy typů událostí, které chcete filtrovat v předplatném, a přidejte filtry atributů kontextu, které chcete použít v předplatném. Pak vyberte Další: Další funkce v dolní části stránky.

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

  8. Pokud chcete povolit nedoručení a přizpůsobit zásady opakování, vyberte Další funkce.

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

  9. Až budete hotovi, vyberte Vytvořit.

Aktualizace odběru událostí

Pokud chcete aktualizovat odběr událostí pro službu Azure Communication Services, postupujte následovně. V této části se dozvíte, jak aktualizovat odběr událostí pro službu Azure Communication Services, aby se aktualizovaly události, které chcete přijímat přes Webhook.

Pokud chcete aktualizovat odběr událostí pro prostředek Azure Communication Services, nejprve se přihlaste k webu Azure Portal. V levém horním rohu stránky vyberte prostředek Komunikační služby.

  1. V nabídce vlevo vyberte kartu Události.

  2. Vyberte odběry událostí a vyberte odběr událostí, které chcete aktualizovat.

    Screenshot highlighting the event subscription button in the Azure portal.

  3. Na stránce Odběr událostí vyberte na kartě Filtry. Vyberte typy událostí, které chcete přijímat v odběru událostí.

    Screenshot that shows the selection of event types to update.

  4. Pokud chcete povolit nedoručení a přizpůsobit zásady opakování, vyberte Další funkce.

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

  5. Pokud chcete webhook aktualizovat tak, aby přijímal události, vyberte u odkazu Webhook změnit a zadejte nový koncový bod webhooku. Screenshot that shows the Change the webhook endpoint link in the Event Subscription page.

  6. Až budete hotovi, vyberte Uložit, Screenshot that shows the save button in the Azure portal.

Odstranění odběru událostí

Pokud chcete odstranit odběr událostí pro službu Azure Communication Services, postupujte následovně.

Pokud chcete odstranit odběr událostí pro prostředek Azure Communication Services, nejprve se přihlaste k webu Azure Portal. V levém horním rohu stránky vyberte prostředek Komunikační služby.

  1. Vyberte na kartě Události v nabídce vlevo.

  2. Vyberte odběry událostí a vyberte odběr událostí, které chcete odstranit.

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

  3. Na stránce Odběr událostí vyberte nahoře tlačítko Odstranit .

    Screenshot highlighting the delete button in the Azure portal.

Další kroky

Požadavky

Registrace poskytovatele prostředků Event Gridu

Tento článek popisuje, jak zaregistrovat poskytovatele prostředků Event Gridu. Pokud jste službu Event Grid použili dříve ve stejném předplatném, přejděte k další části.

  1. Spuštěním následujícího příkazu zaregistrujte poskytovatele:

    az provider register --namespace Microsoft.EventGrid
    
  2. Dokončení registrace může chvíli trvat. Pokud chcete zkontrolovat stav, spusťte následující příkaz:

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

    Jakmile registrationState je Registered, můžete pokračovat.

Vytvoření odběru událostí

Pokud chcete vytvořit odběry událostí pro prostředek Azure Communication Services, přihlaste se k Azure CLI. Můžete se přihlásit spuštěním az login příkazu z terminálu a zadat své přihlašovací údaje. Spuštěním následujícího příkazu vytvořte odběr událostí pro prostředek:

Pokud chcete vytvořit odběr událostí pomocí Azure CLI, použijte az eventgrid event-subscription create tento příkaz.

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  

Seznam událostí komunikačních služeb naleznete v tématu Události komunikačních služeb.

Výpis odběrů událostí

Pokud chcete vypsat všechna existující předplatná událostí nastavená pro prostředek Azure Communication Services pomocí Azure CLI, použijte az eventgrid event-subscription list tento příkaz.

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

Aktualizace odběru událostí

Pokud chcete aktualizovat existující odběr událostí pomocí Azure CLI, použijte az eventgrid event-subscription update tento příkaz.

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

Odstranění odběru událostí

Pokud chcete odstranit existující odběr událostí pomocí Azure CLI, použijte az eventgrid event-subscription delete tento příkaz.

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

Další kroky

Požadavky

Registrace poskytovatele prostředků Event Gridu

Tento článek popisuje, jak zaregistrovat poskytovatele prostředků Event Gridu. Pokud jste službu Event Grid použili dříve ve stejném předplatném, přejděte k další části.

Na webu Azure Portal proveďte následující kroky:

  1. V nabídce vlevo vyberte Předplatná.

  2. V seznamu odběrů vyberte předplatné , které chcete použít pro Event Grid.

  3. Na stránce Předplatné vyberte v části Nastavení v nabídce vlevo poskytovatele prostředků.

  4. Vyhledejte Microsoft.EventGrid a ověřte, že stav není zaregistrovaný.

  5. V seznamu zprostředkovatelů vyberte Microsoft.EventGrid .

  6. Na panelu příkazů vyberte Zaregistrovat .

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

  7. Aktualizujte, abyste měli jistotu , že je stav Microsoft.EventGrid změněn na Zaregistrovaný.

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

Instalace sady SDK

Nejprve nainstalujte knihovnu pro správu Microsoft Azure Event Grid pro .NET pomocí NuGetu:

dotnet add package Azure.ResourceManager.EventGrid;

Do projektu jazyka C# zahrňte sadu SDK pro správu služby Event Grid:

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

Ověřování pomocí knihovny Identit Azure

Požadavky:

  1. Vytvořte aplikaci Microsoft Entra a instanční objekt a nastavte tajný klíč klienta nebo důvěryhodný certifikát vydaný certifikační autoritou podle zde uvedených pokynů.
  2. Uložte tajný klíč nebo certifikát do služby Azure Keyvault.
  3. Přidělte přispěvateli nebo vlastníkovi přístup k předplatnému této aplikace podle zde uvedených pokynů.
  4. Další informace o autorizaci přístupu k prostředkům Event Gridu najdete tady.

Knihovna Identit Azure poskytuje podporu ověřování tokenů Microsoft Entra ID (dříve Azure Active Directory) v sadě Azure SDK. Poskytuje sadu implementací TokenCredential, které lze použít k vytvoření klientů sady Azure SDK podporujících ověřování tokenů Microsoft Entra. Další informace si můžete přečíst tady.

  1. Zahrňte klientskou knihovnu Azure Identity pro .NET s NuGetem:
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Zahrnutí knihovny Azure Identity do projektu jazyka C#
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. Pokud chcete získat přístupový token, můžete předat přihlašovací údaje tajného kódu nebo přihlašovací údaje certifikátu na základě konfigurace instančního objektu.

    • Získání přístupového tokenu pomocí tajných přihlašovacích údajů

      Pokud chcete získat přihlašovací údaje tajného kódu, musíte ho přečíst z keyvaultu, který jste vytvořili v části Požadavky #2 pomocí 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();
      
    • Získání přístupového tokenu pomocí přihlašovacích údajů certifikátu

      Pokud chcete získat přihlašovací údaje certifikátu, musíte ho přečíst z keyvaultu, který jste vytvořili v části Požadavky #2 pomocí CertificateClient.

      Další informace o konfigurační autoritě aplikace Microsoft Entra najdete tady.

      // 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. Ověření EventGridManagementClient pomocí přístupového tokenu pomocí přihlašovacích údajů tajného kódu nebo certifikátu

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

Vytvořit odběr události

Tento ukázkový kód ukazuje, jak vytvořit odběr událostí pro koncový bod odběratele webhooku.

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

Aktualizace odběru událostí

Tento ukázkový kód ukazuje, jak aktualizovat odběr událostí a přidat další události, které chcete dostávat na koncový bod odběratele webhooku.

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

Odstranění odběru událostí

Tento ukázkový kód ukazuje, jak odstranit odběr událostí pro koncový bod odběratele webhooku.

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

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

Požadavky

Registrace poskytovatele prostředků Event Gridu

Tento článek popisuje, jak zaregistrovat poskytovatele prostředků Event Gridu. Pokud jste službu Event Grid použili dříve ve stejném předplatném, přejděte k další části.

  1. Spusťte následující příkaz:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. Dokončení registrace může chvíli trvat. Pokud chcete zkontrolovat stav, spusťte:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Jakmile RegistrationStatus je Registered, můžete pokračovat.

Vytvoření odběru událostí

Nejprve pomocí následujícího příkazu nainstalujte modul Az.EventGrid Azure Communication Services.

PS C:\> Install-Module Az.EventGrid
  • Přihlaste se ke svému předplatnému Azure pomocí příkazu Připojení-AzAccount a postupujte podle pokynů na obrazovce:

    Connect-AzAccount
    
  • Pokud je vaše identita přidružená k více než jednomu předplatnému, nastavte aktivní předplatné na předplatné prostředku Web PubSub, který chcete přesunout.

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

Pokud chcete vytvořit odběr událostí pomocí Azure PowerShelluNew-AzEventGridSubscription, použijte tento příkaz.

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

Seznam událostí komunikačních služeb naleznete v tématu Události komunikačních služeb.

Výpis odběrů událostí

Pokud chcete zobrazit seznam všech existujících odběrů událostí nastavených pro prostředek Azure Communication Services pomocí Azure PowerShelluGet-AzEventGridSubscription, použijte tento příkaz.

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

Aktualizace odběru událostí

Pokud chcete aktualizovat existující odběr událostí pomocí Azure PowerShelluUpdate-AzEventGridSubscription , použijte tento příkaz.

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

Odstranění odběru událostí

Pokud chcete odstranit existující odběr událostí pomocí Azure PowerShelluRemove-AzEventGridSubscription, použijte příkaz.

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

Další kroky