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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Risorsa Servizi di comunicazione di Azure.
- Creare un webhook per ricevere eventi. Vedere Webhook Event Delivery (Recapito di eventi webhook).
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:
Nel menu a sinistra, selezionare Sottoscrizioni.
Selezionare la sottoscrizione da usare per Griglia di eventi dall'elenco delle sottoscrizioni.
Nella pagina Sottoscrizione selezionare Provider di risorse in Impostazioni nel menu a sinistra.
Cercare Microsoft.EventGrid e verificare che lo stato sia non registrato.
Selezionare Microsoft.EventGrid nell'elenco dei provider.
Selezionare Registra sulla barra dei comandi.
Aggiornare per assicurarsi che lo stato di Microsoft.EventGrid sia cambiato in Registrato.
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.
- Selezionare la scheda Eventi dal menu a sinistra.
- Selezionare + Sottoscrizione di eventi.
- Nella pagina Crea sottoscrizione di eventi procedere come segue:
Immettere un nome per la sottoscrizione di eventi.
Immettere un nome per il nome dell'argomento di sistema.
Selezionare i tipi di evento che si desidera ricevere nella sottoscrizione di eventi.
Per altre informazioni, vedere Eventi di Servizi di comunicazione.
Selezionare Il tipo di endpoint come Web Hook.
Selezionare Configura un endpoint
Immettere il collegamento al webhook e selezionare Conferma selezione.
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.
Per abilitare l'inserimento nella coda di messaggi non recapitabili e personalizzare i criteri di ripetizione dei tentativi, selezionare Funzionalità aggiuntive.
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.
Selezionare la scheda Eventi dal menu a sinistra.
Selezionare Sottoscrizioni eventi e selezionare la sottoscrizione di eventi da aggiornare.
Nella pagina Sottoscrizione eventi selezionare la scheda Filtri. Selezionare i tipi di evento che si desidera ricevere nella sottoscrizione di eventi.
Per abilitare l'inserimento nella coda di messaggi non recapitabili e personalizzare i criteri di ripetizione dei tentativi, selezionare Funzionalità aggiuntive.
Per aggiornare il webhook per ricevere gli eventi, selezionare Cambia accanto al collegamento webhook e immettere il nuovo endpoint webhook.
Al termine, selezionare Salva.
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.
Selezionare la scheda Eventi dal menu a sinistra.
Selezionare Sottoscrizioni eventi e selezionare la sottoscrizione di eventi da eliminare.
Nella pagina Sottoscrizione eventi selezionare Elimina nella parte superiore della pagina.
Passaggi successivi
- Per un elenco degli eventi di Servizi di comunicazione, vedere Eventi di Servizi di comunicazione.
- Per un elenco dei gestori eventi supportati, vedere Gestori eventi.
- Per informazioni sul recapito e i tentativi di recapito degli eventi, vedere Recapito e ripetizione dei messaggi di Griglia di eventi.
- Per un'introduzione a Griglia di eventi, vedere Informazioni su Griglia di eventi.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Installare l'interfaccia della riga di comando di Azure.
- Risorsa Servizi di comunicazione di Azure.
- Creare un webhook per ricevere eventi. Vedere Webhook Event Delivery (Recapito di eventi webhook).
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.
Eseguire il comando seguente per registrare il provider:
az provider register --namespace Microsoft.EventGrid
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
- Per informazioni su altri comandi, vedere Griglia di eventi di Azure'interfaccia della riga di comando.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- La versione più recente di .NET Core SDK per il sistema operativo.
- La versione più recente di .NET Microsoft Griglia di eventi di Azure Management SDK.
- Versione più recente della libreria di identità di Azure.
- Risorsa Servizi di comunicazione di Azure.
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:
Nel menu a sinistra, selezionare Sottoscrizioni.
Selezionare la sottoscrizione da usare per Griglia di eventi dall'elenco delle sottoscrizioni.
Nella pagina Sottoscrizione selezionare Provider di risorse in Impostazioni nel menu a sinistra.
Cercare Microsoft.EventGrid e verificare che lo stato sia non registrato.
Selezionare Microsoft.EventGrid nell'elenco dei provider.
Selezionare Registra sulla barra dei comandi.
Aggiornare per assicurarsi che lo stato di Microsoft.EventGrid sia cambiato in Registrato.
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
- 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.
- Archiviare il segreto o il certificato nell'insieme di credenziali delle chiavi di Azure.
- 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.
- 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.
- Includere la libreria client di Identità di Azure per .NET con NuGet.
dotnet add package Azure.Identity;
dotnet add package Azure.Security.KeyVault.Secrets
- Includere la libreria di identità di Azure nel progetto C#.
using Microsoft.Azure.Identity;
using Azure.Security.KeyVault.Secrets
È 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();
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Installare il modulo Azure Az PowerShell.
- Risorsa Servizi di comunicazione di Azure.
- Creare un webhook per ricevere eventi. Vedere Webhook Event Delivery (Recapito di eventi webhook).
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.
- Esegui questo comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
- 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
Accedere alla 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
- Per informazioni su altri comandi, vedere Modulo PowerShell Az.EventGrid.