Partilhar via


Guia de início rápido: inscrever-se em eventos dos Serviços de Comunicação do Azure

Este artigo explica como subscrever eventos dos Serviços de Comunicação do Azure através do portal, da CLI do Azure, do PowerShell e do SDK do .NET.

Você pode configurar assinaturas de eventos para recursos dos Serviços de Comunicação por meio do portal do Azure, da CLI do Azure, do PowerShell ou com o SDK de Gerenciamento de Grade de Eventos do Azure.

Este guia de início rápido descreve o processo de configuração de um webhook como assinante de eventos SMS dos Serviços de Comunicação do Azure. Para obter uma lista completa de eventos, consulte Serviços de Comunicação do Azure como uma fonte de Grade de Eventos do Azure.

Pré-requisitos

Registrar o provedor de recursos da Grade de Eventos

Este artigo descreve como registrar o provedor de recursos de grade de eventos. Se você usou a Grade de Eventos antes na mesma assinatura, pule para a próxima seção.

No portal do Azure, execute as seguintes etapas:

  1. No menu à esquerda, selecione Assinaturas.

  2. Selecione a Subscrição que pretende utilizar para a Grelha de Eventos na lista de subscrições.

  3. Na página Assinatura, selecione Provedores de recursos em Configurações no menu à esquerda.

  4. Procure Microsoft.EventGrid e confirme se o Status não está registrado.

  5. Selecione Microsoft.EventGrid na lista de provedores.

  6. Selecione Registrar na barra de comandos.

    Imagem mostrando o registro do provedor Microsoft.EventGrid com a assinatura do Azure.

  7. Atualize para verificar se o status de Microsoft.EventGrid foi alterado para Registrado.

    Imagem mostrando o registro bem-sucedido do provedor Microsoft.EventGrid com a assinatura do Azure.

Criar subscrição de evento

Para criar uma assinatura de evento para o recurso Serviços de Comunicação do Azure, primeiro entre no portal do Azure. No canto superior esquerdo da página, selecione o recurso Serviços de Comunicação.

  1. Selecione a guia Eventos no menu à esquerda.
  2. Selecione + Subscrição de Eventos.

Captura de ecrã a realçar o botão criar subscrição de eventos no portal do Azure.

  1. Na página Criar Subscrição de Eventos , siga estes passos:
    1. Insira um nome para a assinatura do evento.

    2. Insira um nome para o nome do tópico Sistema.

    3. Selecione os tipos de evento que você deseja receber na assinatura do evento.

      Captura de tela que mostra a seleção de tipos de evento.

      Para obter mais informações, consulte Eventos dos Serviços de Comunicação.

    4. Selecione o tipo de ponto de extremidade como gancho da Web.

      Captura de tela que mostra a seleção do tipo de ponto final.

    5. Selecione Configurar um ponto de extremidade

      Captura de ecrã a realçar a página de eventos de criação no portal do Azure.

    6. Insira o link para o webhook e selecione Confirmar seleção.

      Captura de tela destacando a página de ponto de extremidade de webhook selecionado no portal do Azure.

    7. Na guia Filtros, adicione os nomes dos tipos de evento que você deseja filtrar na assinatura. Adicione quaisquer filtros de atributo de contexto que você deseja usar na assinatura. Em seguida, selecione Avançar: Recursos adicionais na parte inferior da página.

      Captura de ecrã a realçar a página de criação de filtros da Grelha de Eventos no portal do Azure.

    8. Para habilitar letras inativas e personalizar políticas de novas tentativas, selecione Recursos adicionais.

      Captura de ecrã que mostra o separador Funcionalidades adicionais da página Criar Subscrição de Evento.

    9. Quando terminar, selecione Criar.

Atualizar subscrição de eventos

Esta seção mostra como atualizar uma assinatura de evento para os Serviços de Comunicação do Azure para atualizar os eventos que você deseja receber via Webhook.

Para atualizar uma assinatura de evento para o recurso Serviços de Comunicação do Azure, primeiro entre no portal do Azure. No canto superior esquerdo da página, selecione o recurso Serviços de Comunicação.

  1. Selecione a guia Eventos no menu à esquerda.

  2. Selecione Subscrições de Eventos e selecione a subscrição de Eventos que pretende atualizar.

    Captura de ecrã a realçar o botão de subscrição de eventos no portal do Azure.

  3. Na página Subscrição de Eventos , selecione o separador Filtros . Selecione os tipos de evento que você deseja receber na assinatura do evento.

    Captura de tela que mostra a seleção de tipos de evento a serem atualizados.

  4. Para habilitar letras inativas e personalizar políticas de novas tentativas, selecione Recursos adicionais.

    Captura de ecrã que mostra o separador Funcionalidades adicionais da página Atualizar Subscrição de Eventos.

  5. Para atualizar o webhook para receber eventos, selecione Alterar ao lado do link do webhook e insira o novo ponto de extremidade do webhook.

    Captura de tela que mostra o link Alterar o ponto de extremidade do webhook na página Assinatura de Evento.

  6. Quando terminar, selecione Guardar.

    Captura de ecrã que mostra o botão Guardar no portal do Azure.

Excluir assinatura de evento

Para excluir uma assinatura de evento para os Serviços de Comunicação do Azure, siga estas etapas.

Para excluir uma assinatura de evento para o recurso dos Serviços de Comunicação do Azure, primeiro entre no portal do Azure. No canto superior esquerdo da página, selecione o recurso Serviços de Comunicação.

  1. Selecione a guia Eventos no menu à esquerda.

  2. Selecione Subscrições de Eventos e selecione a subscrição de Eventos que pretende eliminar.

    Captura de ecrã a realçar o botão subscrições de eventos para aceder à subscrição de eventos a eliminar no portal do Azure.

  3. Na página Subscrição de Eventos, selecione Eliminar na parte superior da página.

    Captura de ecrã a realçar o botão eliminar no portal do Azure.

Próximos passos

Pré-requisitos

Registrar o provedor de recursos da Grade de Eventos

Este artigo descreve como registrar o provedor de recursos de grade de eventos. Se você usou a Grade de Eventos antes na mesma assinatura, pule para a próxima seção.

  1. Execute o seguinte comando para registar o fornecedor:

    az provider register --namespace Microsoft.EventGrid
    
  2. Pode demorar algum tempo até que o registo termine. Para verificar o status, execute o seguinte comando:

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

    Quando registrationState está Registered, está pronto para continuar.

Criar subscrição de evento

Para criar subscrições de eventos para o recurso dos Serviços de Comunicação do Azure, inicie sessão na CLI do Azure. Pode iniciar sessão executando o az login comando a partir do terminal e, em seguida, fornecer as suas credenciais.

Para criar uma assinatura de evento usando a CLI do Azure, use o az eventgrid event-subscription create comando:

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  

Para obter uma lista de eventos dos Serviços de Comunicação, consulte Eventos dos Serviços de Comunicação.

Listar assinaturas de eventos

Para listar todas as assinaturas de eventos existentes configuradas para um recurso dos Serviços de Comunicação do Azure usando a CLI do Azure, use o az eventgrid event-subscription list comando.

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

Atualizar subscrição de eventos

Para atualizar uma assinatura de evento existente usando a CLI do Azure, use o az eventgrid event-subscription update comando.

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

Excluir assinatura de evento

Para excluir uma assinatura de evento existente usando a CLI do Azure, use o az eventgrid event-subscription delete comando.

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

Próximos passos

  • Para obter informações sobre outros comandos, consulte CLI da Grade de Eventos do Azure.

Pré-requisitos

Registrar o provedor de recursos da Grade de Eventos

Este artigo descreve como registrar o provedor de recursos de grade de eventos. Se você usou a Grade de Eventos antes na mesma assinatura, pule para a próxima seção.

No portal do Azure, execute as seguintes etapas:

  1. No menu à esquerda, selecione Assinaturas.

  2. Selecione a Subscrição que pretende utilizar para a Grelha de Eventos na lista de subscrições.

  3. Na página Assinatura, selecione Provedores de recursos em Configurações no menu à esquerda.

  4. Procure Microsoft.EventGrid e confirme se o Status não está registrado.

  5. Selecione Microsoft.EventGrid na lista de provedores.

  6. Selecione Registrar na barra de comandos.

    Imagem mostrando o registro do provedor Microsoft.EventGrid com a assinatura do Azure.

  7. Atualize para verificar se o status de Microsoft.EventGrid foi alterado para Registrado.

    Imagem mostrando o registro bem-sucedido do provedor Microsoft.EventGrid com a assinatura do Azure.

Instale o SDK

Primeiro, instale a biblioteca de Gerenciamento de Grade de Eventos do Microsoft Azure para .NET com NuGet:

dotnet add package Azure.ResourceManager.EventGrid;

Inclua o SDK de Gerenciamento de Grade de Eventos em seu projeto C#:

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

Autenticar com a biblioteca de Identidades do Azure

Pré-requisitos

  1. Crie um aplicativo e uma entidade de serviço do Microsoft Entra e configure um segredo de cliente ou um certificado confiável emitido pela autoridade de certificação. Siga as instruções em Registrar um aplicativo Microsoft Entra e crie uma entidade de serviço.
  2. Armazene o segredo ou o certificado no Cofre do Azure Keyvault.
  3. Dê ao colaborador ou proprietário acesso à assinatura desse aplicativo seguindo as instruções em Conceder a um usuário acesso aos recursos do Azure usando o portal do Azure.
  4. Leia mais sobre Autorizando acesso a recursos da Grade de Eventos.

A biblioteca de Identidade do Azure fornece suporte à autenticação de token Microsoft Entra ID (Anteriormente Azure Ative Directory) no SDK do Azure. Ele fornece um conjunto de implementações TokenCredential, que você pode usar para construir clientes do SDK do Azure que oferecem suporte à autenticação de token Microsoft Entra. Para obter mais informações, consulte Biblioteca de cliente do Azure Identity para .NET.

  1. Inclua a biblioteca de cliente do Azure Identity para .NET com NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Inclua a biblioteca de Identidade do Azure em seu projeto C#.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. Você pode passar as credenciais secretas ou as credenciais de certificado para obter o token de acesso, com base em como sua entidade de serviço está configurada.

    • Obter token de acesso usando credencial secreta

      Para obter as credenciais secretas, você precisa lê-las do Keyvault criado no Pré-requisito 2 usando 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();
      
    • Obtenha o token de acesso usando a credencial do certificado.

      Para obter as credenciais do certificado, você precisa lê-lo do Keyvault criado no Pré-requisito 2 usando CertificateClient.

      Leia mais sobre a autoridade de configuração do aplicativo Microsoft Entra em Opções de configuração do aplicativo.

      // 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. Autentique-se com token de acesso usando credenciais secretas EventGridManagementClient ou de certificado.

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

Criar Subscrição de Evento

Este exemplo de código mostra como criar a assinatura de evento para o ponto de extremidade do assinante do 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);

Atualizar subscrição de eventos

Este exemplo de código mostra como atualizar a assinatura do evento para adicionar mais eventos que você deseja receber no ponto de extremidade do assinante do 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)));

Excluir assinatura de evento

Este exemplo de código mostra como excluir a assinatura de evento para o ponto de extremidade do assinante do webhook.

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

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

Pré-requisitos

Registrar o provedor de recursos da Grade de Eventos

Este artigo descreve como registrar o provedor de recursos de grade de eventos. Se você usou a Grade de Eventos antes na mesma assinatura, pule para a próxima seção.

  1. Execute o seguinte comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. Pode demorar algum tempo para o registo terminar. Para ver o estado, execute:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Quando RegistrationStatus está Registered, está pronto para continuar.

Criar subscrição de evento

Primeiro, instale o módulo Serviços de Comunicação do Azure usando o comando Az.EventGrid a seguir.

PS C:\> Install-Module Az.EventGrid
  1. Entre na sua assinatura do Azure com o comando Connect-AzAccount e siga as instruções na tela.

    Connect-AzAccount
    
  2. Se sua identidade estiver associada a mais de uma assinatura, defina sua assinatura ativa como assinatura do recurso Web PubSub que você deseja mover.

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

Para criar uma assinatura de evento usando o Azure PowerShell, use o New-AzEventGridSubscription comando.

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

Para obter uma lista de eventos dos Serviços de Comunicação, consulte Eventos dos Serviços de Comunicação.

Listar assinaturas de eventos

Para listar todas as assinaturas de eventos existentes configuradas para um recurso dos Serviços de Comunicação do Azure usando o Azure PowerShell, use o Get-AzEventGridSubscription comando.

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

Atualizar subscrição de eventos

Para atualizar uma assinatura de evento existente usando o Azure PowerShell, use o Update-AzEventGridSubscription comando.

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

Excluir assinatura de evento

Para excluir uma assinatura de evento existente usando o Azure PowerShell, use o Remove-AzEventGridSubscription comando.

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

Próximos passos