Condividi tramite


Avvio rapido: instradare gli eventi della cache di Azure per Redis all'endpoint Web con l'interfaccia della riga di comando di Azure

Griglia di eventi di Azure è un servizio di gestione degli eventi per il cloud. In questo avvio rapido, si userà l'interfaccia della riga di comando di Azure per sottoscrivere eventi della cache di Azure per Redis, attivare un evento e visualizzare i risultati.

In genere, si inviano eventi a un endpoint che elabora i dati dell'evento e intraprende azioni. Tuttavia, per semplificare questo avvio rapido, si invieranno eventi a un'app Web che raccoglierà e mostrerà i messaggi. Al termine della procedura descritta in questo avvio rapido, si potrà notare che i dati dell'evento sono stati inviati all'app Web.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.

  4. Premere INVIO per eseguire il codice o il comando.

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questo avvio rapido è necessario che sia in esecuzione la versione più recente dell'interfaccia della riga di comando di Azure (2.0.70 o versione successiva). Per trovare la versione, eseguire az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Se non si usa Cloud Shell, prima è necessario accedere usando az login.

Creare un gruppo di risorse

Gli argomenti della Griglia di eventi vengono distribuiti come singole risorse di Azure e devono essere sottoposti a provisioning in un gruppo di risorse di Azure. Un gruppo di risorse è una raccolta logica in cui le risorse di Azure vengono distribuite e gestite.

Creare un gruppo di risorse con il comando az group create.

L'esempio seguente crea un gruppo di risorse denominato <resource_group_name> nella località westcentralus. Sostituire <resource_group_name> con un nome univoco per il gruppo di risorse.

az group create --name <resource_group_name> --location westcentralus

Creare un'istanza della cache

#/bin/bash

# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0

Creare un endpoint del messaggio

Prima di sottoscrivere l'argomento, creare l'endpoint per il messaggio dell'evento. L'endpoint richiede in genere azioni basate sui dati degli eventi. Per semplificare questa guida introduttiva, si distribuisce un'app Web preesistente che visualizza i messaggi di evento. La soluzione distribuita include un piano di servizio app, un'app Web del servizio app e codice sorgente da GitHub.

Sostituire <your-site-name> con un nome univoco per l'app Web. Il nome dell'app Web deve essere univoco perché fa parte della voce DNS.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Per il completamento della distribuzione possono essere necessari alcuni minuti. Dopo il completamento della distribuzione, visualizzare l'app Web per assicurarsi che sia in esecuzione. In un Web browser passare a: https://<your-site-name>.azurewebsites.net

Il sito dovrebbe essere visibile senza messaggi attualmente visualizzati.

Abilitare il provider di risorse di Griglia di eventi

  1. Se Griglia di eventi non è stato usato in precedenza nella sottoscrizione di Azure, potrebbe essere necessario registrare il provider di risorse di Griglia di eventi. 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.

Sottoscrivere l'istanza della cache di Azure per Redis

In questo passaggio, si sottoscriverà un argomento per indicare a Griglia di eventi gli eventi di cui si vuole tenere traccia e dove inviare tali eventi. L'esempio seguente sottoscrive l'istanza della cache di Azure per Redis creata e passa l'URL dall'app Web come endpoint per la notifica dell'evento. Sostituire <event_subscription_name> con un nome per la sottoscrizione di eventi. Per <resource_group_name> e <cache_name> usare i valori creati in precedenza.

L'endpoint per l'app Web deve includere il suffisso /api/updates/.

cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $cacheId \
  --name <event_subscription_name> \
  --endpoint $endpoint

Visualizzare nuovamente l'app Web e notare che all'app è stato inviato un evento di convalida della sottoscrizione. Selezionare l'icona a forma di occhio per espandere i dati dell'evento. Griglia di eventi invia l'evento di convalida in modo che l'endpoint possa verificare che voglia ricevere i dati dell'evento. L'app Web include il codice per la convalida della sottoscrizione.

Visualizzatore Griglia di eventi di Azure.

Attivare un evento dalla cache di Azure per Redis

A questo punto, attivare un evento per vedere come la griglia di eventi distribuisce il messaggio nell'endpoint. Esportare i dati archiviati nell'istanza della cache di Azure per Redis. Anche in questo caso, usare i valori per {cache_name} e {resource_group_name} creati in precedenza.

az redis export  --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
    --prefix '<prefix_for_exported_files>' \
    --container '<SAS_url>'  

È stato attivato l'evento e Griglia di eventi ha inviato il messaggio all'endpoint configurato al momento della sottoscrizione. Visualizzare l'app Web per vedere l'evento appena inviato.

[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
  "eventType": "Microsoft.Cache.ExportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ExportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ExportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

Pulire le risorse

Se si intende continuare a usare questa istanza della cache di Azure per Redis e questa sottoscrizione di eventi, non è necessario pulire le risorse create nell'avvio rapido. Se non si intende continuare, usare il comando seguente per eliminare le risorse create con questo avvio rapido.

Sostituire <resource_group_name> con il gruppo di risorse creato in precedenza.

az group delete --name <resource_group_name>

Passaggi successivi

Ora che si è appreso come creare argomenti e sottoscrizioni di eventi, è possibile approfondire gli eventi della cache di Azure per Redis e le operazioni possibili con Griglia di eventi: