Guida introduttiva: Sottoscrivere eventi Servizi di comunicazione di Azure

Questo articolo illustra 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, interfaccia della riga di comando di Azure, PowerShell o con Azure Event Grid Management SDK.

Questa guida introduttiva descrive il processo di configurazione di un webhook come sottoscrittore per gli eventi SMS da Servizi di comunicazione di Azure. Per un elenco completo degli eventi, vedere Servizi di comunicazione di Azure come origine Griglia di eventi di Azure.

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.

Nel 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 sia non registrato.

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

  6. Selezionare Registra sulla barra dei comandi.

    Immagine che mostra la registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

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

    Immagine che mostra la corretta registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

Crea sottoscrizione di eventi

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.

  1. Selezionare la scheda Eventi dal menu a sinistra.
  2. Selezionare + Sottoscrizione di eventi.

Screenshot che evidenzia il pulsante Crea sottoscrizione di eventi nel portale di Azure.

  1. 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 che mostra la selezione dei tipi di evento.

      Per altre informazioni, vedere Eventi di Servizi di comunicazione.

    4. Selezionare Il tipo di endpoint come Web Hook.

      Screenshot che mostra la selezione del tipo di endpoint.

    5. Selezionare Configura un endpoint

      Screenshot che evidenzia la pagina di creazione dell'evento nella portale di Azure.

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

      Screenshot che evidenzia la pagina seleziona endpoint webhook nella portale di Azure.

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

      Screenshot che evidenzia la pagina Crea filtri di Griglia di eventi nella portale di Azure.

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

      Screenshot che mostra la scheda Funzionalità aggiuntive della pagina Crea sottoscrizione eventi.

    9. Al termine, scegliere Crea.

Aggiornare la sottoscrizione di eventi

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 dal menu a sinistra.

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

    Screenshot che evidenzia il pulsante della sottoscrizione di eventi nel portale di Azure.

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

    Screenshot che mostra la selezione dei tipi di evento da aggiornare.

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

    Screenshot che mostra la scheda Funzionalità aggiuntive della pagina Aggiorna sottoscrizione eventi.

  5. Per aggiornare il webhook per ricevere gli eventi, selezionare Cambia accanto al collegamento webhook e immettere il nuovo endpoint webhook.

    Screenshot che mostra il collegamento Modificare l'endpoint del webhook nella pagina Sottoscrizione eventi.

  6. Al termine, selezionare Salva.

    Screenshot che mostra il pulsante Salva nel portale di Azure.

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 dal menu a sinistra.

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

    Screenshot che evidenzia il pulsante sottoscrizioni di eventi per accedere alla sottoscrizione di eventi da eliminare nella portale di Azure.

  3. Nella pagina Sottoscrizione eventi selezionare Elimina nella parte superiore della pagina.

    Screenshot che evidenzia il pulsante Elimina nella portale di Azure.

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. Eseguire il comando seguente per verificare lo stato:

    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, quindi specificare le credenziali.

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.

Nel 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 sia non registrato.

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

  6. Selezionare Registra sulla barra dei comandi.

    Immagine che mostra la registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

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

    Immagine che mostra la corretta registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

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;

Eseguire l'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. Seguire le istruzioni riportate in Registrare un'app Microsoft Entra e creare un'entità servizio.
  2. Archiviare il segreto o il certificato nell'insieme di credenziali delle chiavi di Azure.
  3. Concedere a collaboratore o proprietario l'accesso alla sottoscrizione a tale applicazione seguendo le istruzioni riportate in Concedere a un utente l'accesso alle risorse di Azure usando il portale di Azure.
  4. Altre informazioni sull'autorizzazione dell'accesso alle risorse di Griglia di eventi.

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 tokenCredential, che è possibile usare per costruire client Azure SDK che supportano l'autenticazione del token Microsoft Entra. Per altre informazioni, vedere Libreria client di Identità di Azure per .NET.

  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 nelle opzioni di configurazione dell'applicazione.

      // 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. Eseguire l'autenticazione EventGridManagementClient con il 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 desidera 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

Installare prima di tutto il modulo Az.EventGrid Servizi di comunicazione di Azure usando il comando seguente.

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

    Connect-AzAccount
    
  2. 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