Esercitazione: Instradare eventi personalizzati alle connessioni ibride di Inoltro di Azure con l'interfaccia della riga di comando di Azure e Griglia di eventi
Connessioni ibride di Inoltro di Azure è uno gestore dell'evento supportato. Usare le connessioni ibride come gestore dell'evento quando è necessario elaborare gli eventi da applicazioni che non hanno un endpoint pubblico. Queste applicazioni potrebbero trovarsi all'interno della rete aziendale dell'organizzazione. Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per creare un argomento personalizzato, sottoscrivere l'argomento e attivare l'evento per visualizzare il risultato. Inviare gli eventi alla connessione ibrida.
Nota
Se non si ha Griglia di eventi di Azure, vedere What's Griglia di eventi di Azure to get an overview of the service before through this tutorial (Cosa Griglia di eventi di Azure per ottenere una panoramica del servizio prima di eseguire questa esercitazione.
Prerequisiti
- Questo articolo presuppone che l'utente disponga già di una connessione ibrida e di un'applicazione listener. Per iniziare a usare le connessioni ibride, vedere Introduzione alle connessioni ibride di inoltro - .NET oppure Introduzione alle connessioni ibride di inoltro - Node.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.0.56 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un gruppo di risorse
Gli argomenti della griglia di eventi sono risorse di Azure e devono essere inseriti in un gruppo di risorse di Azure. Il gruppo di risorse è una raccolta logica in cui vengono distribuite e gestite le risorse di Azure.
Creare un gruppo di risorse con il comando az group create.
L'esempio seguente crea un gruppo di risorse denominato gridResourceGroup nella località westus2.
az group create --name gridResourceGroup --location westus2
Creare un argomento personalizzato
Un argomento di Griglia di eventi fornisce un endpoint definito dall'utente in cui vengono pubblicati gli eventi. Nell'esempio seguente viene creato l'argomento personalizzato nel gruppo di risorse. Sostituire <topic_name>
con un nome univoco per l'argomento personalizzato. Il nome dell'argomento di Griglia di eventi deve essere univoco perché è rappresentato da una voce DNS (Domain Name System).
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Sottoscrivere un argomento personalizzato
Si sottoscrive un argomento di Griglia di eventi per indicare a Griglia di eventi gli eventi da tenere traccia. L'esempio seguente sottoscrive l'argomento personalizzato creato e passa l'ID risorsa della connessione ibrida per l'endpoint. L'ID della connessione ibrida ha il formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
Lo script seguente ottiene l'ID della risorsa dello spazio dei nomi di inoltro. Costruisce l'ID per la connessione ibrida e sottoscrive un argomento di Griglia di eventi. Imposta il tipo di endpoint su hybridconnection
e usa l'ID della connessione ibrida per l'endpoint.
relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>
relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type hybridconnection \
--endpoint $hybridid \
--expiration-date "<yyyy-mm-dd>"
Si noti che per la sottoscrizione è impostata una data di scadenza.
Creare un'applicazione per elaborare gli eventi
È necessaria un'applicazione in grado di recuperare gli eventi dalla connessione ibrida. L'esempio di consumer della connessione ibrida di Griglia di eventi di Microsoft Azure per C# esegue tale operazione. I passaggi preliminari sono stati completati.
Assicurarsi di disporre di Visual Studio 2019 o versioni successive.
Clonare il repository nel computer locale.
Caricare il progetto HybridConnectionConsumer in Visual Studio.
In Program.cs, sostituire
<relayConnectionString>
e<hybridConnectionName>
con la stringa di connessione di inoltro e il nome della connessione ibrida creata.Compilare ed eseguire l'applicazione da Visual Studio.
Importante
Si usa stringa di connessione per eseguire l'autenticazione nello spazio dei nomi di Inoltro di Azure per semplificare l'esercitazione. È consigliabile usare l'autenticazione MICROSOFT Entra ID negli ambienti di produzione. Quando si usa un'applicazione, è possibile abilitare l'identità gestita per l'applicazione e assegnare all'identità un ruolo appropriato (proprietario dell'inoltro di Azure, listener di inoltro di Azure o mittente di inoltro di Azure) nello spazio dei nomi di inoltro. Per altre informazioni, vedere Autenticare un'identità gestita con Microsoft Entra ID per accedere alle risorse di Inoltro di Azure.
Inviare un evento all'argomento
Attivare un evento per vedere come la Griglia di eventi distribuisce il messaggio nell'endpoint. Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per attivare l'evento. In alternativa, è possibile usare l'applicazione per la pubblicazione della Griglia di eventi.
Ottenere prima di tutto l'URL e la chiave per l'argomento personalizzato. Usare ancora una volta il nome dell'argomento personalizzato per <topic_name>
.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Per semplificare questo articolo, si useranno dati di evento di esempio da inviare all'argomento personalizzato. In genere, i dati dell'evento vengono inviati da un'applicazione o un servizio di Azure. CURL è un'utilità che invia richieste HTTP. In questo articolo CURL viene usato per inviare l'evento all'argomento personalizzato.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
L'applicazione listener deve ricevere il messaggio dell'evento.
Pulire le risorse
Se si intende continuare a usare questo evento, non è necessario pulire le risorse create con questo articolo. In caso contrario, usare il comando seguente per eliminare le risorse create con questo articolo.
az group delete --name gridResourceGroup
Passaggi successivi
Ora che si è appreso come creare argomenti e sottoscrizioni di eventi, è possibile approfondire le operazioni possibili con la griglia di eventi: