Guida introduttiva: Sottoscrivere eventi Servizi di comunicazione di Azure

In questa guida introduttiva si apprenderà come sottoscrivere eventi da Servizi di comunicazione di Azure tramite il portale, l'interfaccia della riga di comando di Azure, PowerShell e .NET SDK.

È possibile configurare sottoscrizioni di eventi per le risorse di Servizi di comunicazione tramite portale di Azure o l'interfaccia della riga di comando di Azure, PowerShell o con Azure Event Grid Management SDK.

Per questa guida introduttiva viene illustrato il processo di configurazione del webhook come sottoscrittore per gli eventi SMS da Servizi di comunicazione di Azure. Per un elenco completo degli eventi, vedere questa pagina.

Prerequisiti

Registrare il provider di risorse di Griglia di eventi

Questo articolo descrive come registrare il provider di risorse di Griglia di eventi. Se prima è stata usata Griglia di eventi nella stessa sottoscrizione, passare alla sezione successiva.

Nella portale di Azure seguire questa procedura:

  1. Nel menu a sinistra selezionare Sottoscrizioni.

  2. Selezionare la sottoscrizione da usare per Griglia di eventi dall'elenco delle sottoscrizioni.

  3. Nella pagina Sottoscrizione selezionare Provider di risorse in Impostazioni nel menu a sinistra.

  4. Cercare Microsoft.EventGrid e verificare che lo stato non sia registrato.

  5. Selezionare Microsoft.EventGrid nell'elenco dei provider.

  6. Selezionare Registra sulla barra dei comandi.

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

  7. Aggiornare per assicurarsi che lo stato di Microsoft.EventGrid sia cambiato in Registrato.

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

Crea sottoscrizione di eventi

Per creare una sottoscrizione di eventi per Servizi di comunicazione di Azure, seguire questa procedura. Questo articolo illustra come creare una sottoscrizione di eventi per Servizi di comunicazione di Azure ricevere eventi tramite webhook.

Per creare una sottoscrizione di eventi per Servizi di comunicazione di Azure risorsa, accedere prima al portale di Azure. Nell'angolo superiore sinistro della pagina selezionare la risorsa Servizi di comunicazione.

  • Selezionare la scheda Eventi nel menu a sinistra.
  • Selezionare + Sottoscrizione eventi.

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

  • Nella pagina Crea sottoscrizione di eventi procedere come segue:
  1. Immettere un nome per la sottoscrizione di eventi.

  2. Immettere un nome per il nome dell'argomento di sistema.

  3. Selezionare i tipi di evento che si desidera ricevere nella sottoscrizione di eventi.

    Screenshot that shows the selection of event types.

    Per altre informazioni sugli eventi di Servizi di comunicazione, vedere Eventi di Servizi di comunicazione

  4. Selezionare Il tipo di endpoint come Web Hook.

    Screenshot that shows the selection of endpoint type.

  5. Selezionare Configura un endpoint

    Screenshot highlighting the create event page in the Azure portal.

  6. Immettere il collegamento al webhook e selezionare Conferma selezione.

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

  7. Nella scheda Filtri aggiungere i nomi dei tipi di evento da filtrare nella sottoscrizione e aggiungere i filtri degli attributi di contesto da usare nella sottoscrizione. Selezionare quindi Avanti: Funzionalità aggiuntive nella parte inferiore della pagina.

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

  8. Per abilitare l'inserimento nella coda di messaggi non recapitabili e personalizzare i criteri di ripetizione dei tentativi, selezionare Funzionalità aggiuntive.

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

  9. Al termine, scegliere Crea.

Aggiornare la sottoscrizione di eventi

Per aggiornare una sottoscrizione di eventi per Servizi di comunicazione di Azure, seguire questa procedura. Questa sezione illustra come aggiornare una sottoscrizione di eventi per Servizi di comunicazione di Azure per aggiornare gli eventi che si desidera ricevere tramite webhook.

Per aggiornare una sottoscrizione di eventi per Servizi di comunicazione di Azure risorsa, accedere prima al portale di Azure. Nell'angolo superiore sinistro della pagina selezionare la risorsa Servizi di comunicazione.

  1. Selezionare la scheda Eventi nel menu a sinistra.

  2. Selezionare le sottoscrizioni di eventi e selezionare la sottoscrizione di eventi da aggiornare.

    Screenshot highlighting the event subscription button in the Azure portal.

  3. Nella pagina Sottoscrizione eventi selezionare la scheda Filtri. Selezionare i tipi di evento che si desidera ricevere nella sottoscrizione di eventi.

    Screenshot that shows the selection of event types to update.

  4. Per abilitare l'inserimento nella coda di messaggi non recapitabili e personalizzare i criteri di ripetizione dei tentativi, selezionare Funzionalità aggiuntive.

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

  5. Per aggiornare il webhook per ricevere gli eventi, selezionare Cambia accanto al collegamento webhook e immettere il nuovo endpoint webhook. Screenshot that shows the Change the webhook endpoint link in the Event Subscription page.

  6. Al termine, selezionare Salva, Screenshot that shows the save button in the Azure portal.

Eliminare la sottoscrizione di eventi

Per eliminare una sottoscrizione di eventi per Servizi di comunicazione di Azure, seguire questa procedura.

Per eliminare una sottoscrizione di eventi per Servizi di comunicazione di Azure risorsa, accedere prima al portale di Azure. Nell'angolo superiore sinistro della pagina selezionare la risorsa Servizi di comunicazione.

  1. Selezionare la scheda Eventi nel menu a sinistra.

  2. Selezionare Sottoscrizioni di eventi e selezionare la sottoscrizione di eventi da eliminare.

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

  3. Nella pagina Sottoscrizione di eventi selezionare il pulsante Elimina nella parte superiore.

    Screenshot highlighting the delete button in the Azure portal.

Passaggi successivi

Prerequisiti

Registrare il provider di risorse di Griglia di eventi

Questo articolo descrive come registrare il provider di risorse di Griglia di eventi. Se prima è stata usata Griglia di eventi nella stessa sottoscrizione, passare alla sezione successiva.

  1. Eseguire il comando seguente per registrare il provider:

    az provider register --namespace Microsoft.EventGrid
    
  2. La registrazione può richiedere qualche secondo. Per controllare lo stato, eseguire il comando seguente:

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

    Quando registrationState è Registered, è possibile continuare.

Crea sottoscrizione di eventi

Per creare sottoscrizioni di eventi per Servizi di comunicazione di Azure risorsa, accedere all'interfaccia della riga di comando di Azure. È possibile accedere eseguendo il az login comando dal terminale e specificando le credenziali. Eseguire il comando seguente per creare la sottoscrizione di eventi per la risorsa:

Per creare una sottoscrizione di eventi usando l'interfaccia della riga di comando di Azure, usare il 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  

Per un elenco degli eventi di Servizi di comunicazione, vedere Eventi di Servizi di comunicazione.

Elencare le sottoscrizioni di eventi

Per elencare tutte le sottoscrizioni di eventi esistenti configurate per una risorsa Servizi di comunicazione di Azure usando l'interfaccia della riga di comando di Azure, usare il az eventgrid event-subscription list comando .

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

Aggiornare la sottoscrizione di eventi

Per aggiornare una sottoscrizione di eventi esistente usando l'interfaccia della riga di comando di Azure, usare il 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

Eliminare la sottoscrizione di eventi

Per eliminare una sottoscrizione di eventi esistente usando l'interfaccia della riga di comando di Azure, usare il 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>

Passaggi successivi

Prerequisiti

Registrare il provider di risorse di Griglia di eventi

Questo articolo descrive come registrare il provider di risorse di Griglia di eventi. Se prima è stata usata Griglia di eventi nella stessa sottoscrizione, passare alla sezione successiva.

Nella portale di Azure seguire questa procedura:

  1. Nel menu a sinistra selezionare Sottoscrizioni.

  2. Selezionare la sottoscrizione da usare per Griglia di eventi dall'elenco delle sottoscrizioni.

  3. Nella pagina Sottoscrizione selezionare Provider di risorse in Impostazioni nel menu a sinistra.

  4. Cercare Microsoft.EventGrid e verificare che lo stato non sia registrato.

  5. Selezionare Microsoft.EventGrid nell'elenco dei provider.

  6. Selezionare Registra sulla barra dei comandi.

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

  7. Aggiornare per assicurarsi che lo stato di Microsoft.EventGrid sia cambiato in Registrato.

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

Installazione dell'SDK

Installare prima di tutto la libreria microsoft Griglia di eventi di Azure Management per .NET con NuGet:

dotnet add package Azure.ResourceManager.EventGrid;

Includere Event Grid Management SDK nel progetto C#:

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

Autenticazione con la libreria di identità di Azure

Prerequisiti:

  1. Creare un'applicazione Microsoft Entra e un'entità servizio e configurare un segreto client o un certificato attendibile rilasciato dall'autorità di certificazione seguendo le istruzioni riportate qui.
  2. Archiviare il segreto o il certificato nell'insieme di credenziali delle chiavi di Azure.
  3. Concedere al collaboratore o al proprietario l'accesso alla sottoscrizione a tale applicazione seguendo le istruzioni riportate qui.
  4. Altre informazioni sull'autorizzazione dell'accesso alle risorse di Griglia di eventi sono disponibili qui.

La libreria di identità di Azure fornisce il supporto per l'autenticazione token di Microsoft Entra ID (in precedenza Azure Active Directory) in Azure SDK. Fornisce un set di implementazioni di TokenCredential, che possono essere usate per costruire client Azure SDK che supportano l'autenticazione del token Microsoft Entra. Per altre informazioni, leggere qui.

  1. Includere la libreria client di Identità di Azure per .NET con NuGet:
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
  1. Includere la libreria di identità di Azure nel progetto C#
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
  1. È possibile passare le credenziali segrete o le credenziali del certificato per ottenere il token di accesso, in base alla configurazione dell'entità servizio.

    • Ottenere il token di accesso usando le credenziali segrete

      Per ottenere le credenziali segrete, è necessario leggerlo dall'insieme di credenziali delle chiavi creato in Prerequisito 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();
      
    • Ottenere il token di accesso usando le credenziali del certificato

      Per ottenere le credenziali del certificato, è necessario leggerlo dall'insieme di credenziali delle chiavi creato in Prerequisito 2 usando CertificateClient.

      Altre informazioni sull'autorità di configurazione dell'applicazione Microsoft Entra sono disponibili qui

      // 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. Autenticare EventGridManagementClient con token di accesso usando credenziali del segreto o del certificato

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

Crea sottoscrizione di eventi

Questo esempio di codice illustra come creare la sottoscrizione di eventi per l'endpoint del sottoscrittore 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);

Aggiornare la sottoscrizione di eventi

Questo esempio di codice illustra come aggiornare la sottoscrizione di eventi per aggiungere altri eventi, che si vuole ricevere nell'endpoint del sottoscrittore 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)));

Elimina sottoscrizione di eventi

Questo esempio di codice illustra come eliminare la sottoscrizione di eventi per l'endpoint del sottoscrittore webhook.

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

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

Prerequisiti

Registrare il provider di risorse di Griglia di eventi

Questo articolo descrive come registrare il provider di risorse di Griglia di eventi. Se prima è stata usata Griglia di eventi nella stessa sottoscrizione, passare alla sezione successiva.

  1. Esegui questo comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
  1. La registrazione può richiedere qualche minuto. Per controllare lo stato, eseguire:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Quando RegistrationStatus è Registered, è possibile continuare.

Crea sottoscrizione di eventi

Prima di tutto, assicurarsi di installare il modulo Az.EventGrid Servizi di comunicazione di Azure usando il comando seguente.

PS C:\> Install-Module Az.EventGrid
  • Accedere alla propria sottoscrizione di Azure con il comando Connect-AzAccount e seguire le istruzioni visualizzate:

    Connect-AzAccount
    
  • Se l'identità è associata a più sottoscrizioni, impostare la sottoscrizione attiva sulla sottoscrizione della risorsa Web PubSub da spostare.

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

Per creare una sottoscrizione di eventi usando Azure PowerShell, usare il 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>"

Per un elenco degli eventi di Servizi di comunicazione, vedere Eventi di Servizi di comunicazione.

Elencare le sottoscrizioni di eventi

Per elencare tutte le sottoscrizioni di eventi esistenti configurate per una risorsa Servizi di comunicazione di Azure usando Azure PowerShell, usare il Get-AzEventGridSubscription comando .

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

Aggiornare la sottoscrizione di eventi

Per aggiornare una sottoscrizione di eventi esistente usando Azure PowerShell, usare il 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"
 

Eliminare la sottoscrizione di eventi

Per eliminare una sottoscrizione di eventi esistente usando Azure PowerShell, usare il Remove-AzEventGridSubscription comando .

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

Passaggi successivi