Sdílet prostřednictvím


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

Tento článek vysvětluje, 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, Azure CLI, PowerShellu nebo sady Azure Event Grid Management SDK.

Tento rychlý start popisuje proces nastavení webhooku jako odběratele událostí SMS ze služeb Azure Communication Services. Úplný seznam událostí najdete v tématu Azure Communication Services jako zdroj služby Azure Event Grid.

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 možnost Poskytovatelé 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 .

    Obrázek znázorňující registraci poskytovatele Microsoft.EventGrid s předplatným Azure

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

    Obrázek znázorňující úspěšnou registraci poskytovatele Microsoft.EventGrid s předplatným Azure

Vytvoření odběru událostí

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.

  1. V nabídce vlevo vyberte kartu Události.
  2. Vyberte + Odběr události.

Snímek obrazovky se zvýrazněním tlačítka pro vytvoření odběru událostí na webu Azure Portal

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

      Snímek obrazovky znázorňující výběr typů událostí

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

    4. Vyberte typ koncového bodu jako webhook.

      Snímek obrazovky znázorňující výběr typu koncového bodu

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

      Snímek obrazovky se zvýrazněnou stránkou vytvořit událost na webu Azure Portal

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

      Snímek obrazovky se zvýrazněnou stránkou koncového bodu pro výběr webhooku na webu Azure Portal

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

      Snímek obrazovky se zvýrazněnou stránkou Vytváření filtrů ve službě Event Grid na webu Azure Portal

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

      Snímek obrazovky znázorňující kartu Další funkce na stránce Vytvořit odběr událostí

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

Aktualizace odběru událostí

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.

    Snímek obrazovky se zvýrazněním tlačítka odběru událostí na webu Azure Portal

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

    Snímek obrazovky znázorňující výběr typů událostí, které se mají aktualizovat

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

    Snímek obrazovky znázorňující kartu Další funkce na stránce Aktualizovat odběr událostí

  5. Pokud chcete webhook aktualizovat tak, aby přijímal události, vyberte Změnit vedle odkazu webhooku a zadejte nový koncový bod webhooku.

    Snímek obrazovky znázorňující odkaz Změnit koncový bod webhooku na stránce Odběr událostí

  6. Až budete hotovi, vyberte Uložit.

    Snímek obrazovky znázorňující tlačítko Uložit na webu Azure Portal

Odstranění odběru událostí

Pokud chcete odstranit odběr událostí pro Službu Azure Communication Services, postupujte takto.

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. V nabídce vlevo vyberte kartu Události.

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

    Snímek obrazovky se zvýrazněním tlačítka odběrů událostí pro přístup k odběru událostí, které se má odstranit na webu Azure Portal

  3. Na stránce Odběr události vyberte v horní části stránky možnost Odstranit .

    Snímek obrazovky se zvýrazněním tlačítka odstranit na webu 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 přihlašovací údaje.

Pokud chcete vytvořit odběr událostí pomocí Azure CLI, použijte az eventgrid event-subscription create 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 zobrazit seznam všech existujících odběrů událostí nastavených 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 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 tento az eventgrid event-subscription delete 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 možnost Poskytovatelé 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 .

    Obrázek znázorňující registraci poskytovatele Microsoft.EventGrid s předplatným Azure

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

    Obrázek znázorňující úspěšnou registraci poskytovatele Microsoft.EventGrid s předplatným Azure

Nainstalujte sadu 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. Postupujte podle pokynů v části Registrace aplikace Microsoft Entra a vytvořte instanční objekt.
  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 pokynů v tématu Udělení přístupu uživatelů k prostředkům Azure pomocí webu Azure Portal.
  4. Přečtěte si další informace o autorizaci přístupu k prostředkům Event Gridu.

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é můžete použít k vytvoření klientů Sady Azure SDK podporujících ověřování tokenů Microsoft Entra. Další informace najdete v klientské knihovně Azure Identity pro .NET.

  1. Zahrňte klientskou knihovnu Azure Identity pro .NET s NuGetem.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Do projektu jazyka C# zahrňte knihovnu Identit Azure.
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 si ho přečíst z keyvaultu, který jste vytvořili v předpokladu 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 si ho přečíst z keyvaultu, který jste vytvořili v předpokladu 2 pomocí CertificateClient.

      Přečtěte si další informace o autoritě konfigurace aplikace Microsoft Entra v možnostech konfigurace aplikace.

      // 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ěřování EventGridManagementClient pomocí přístupového tokenu pomocí tajných kódů nebo přihlašovacích údajů 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_subscription_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
  1. Přihlaste se ke svému předplatnému Azure pomocí příkazu Connect-AzAccount a postupujte podle pokynů na obrazovce.

    Connect-AzAccount
    
  2. 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 PowerShellu, použijte tento New-AzEventGridSubscription 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 vypsat všechna existující předplatná událostí nastavená 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 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 tento příkaz.

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

Další kroky