Avvio rapido: Instradare gli eventi della cache di Azure per Redis all'endpoint Web con PowerShell

Griglia di eventi di Azure è un servizio di gestione degli eventi per il cloud. In questo avvio rapido si userà Azure PowerShell 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.

Impostazione

Per questo avvio rapido, è necessario eseguire la versione più recente di Azure PowerShell. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare e configurare Azure PowerShell.

Accedere ad Azure

Accedere alla sottoscrizione di Azure con il comando Connect-AzAccount e seguire le istruzioni visualizzate per eseguire l'autenticazione.

Connect-AzAccount

Questo esempio usa westus2 e archivia la selezione in una variabile che verrà usata in tutta la procedura.

$location = "westus2"

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 New-AzResourceGroup.

L'esempio seguente crea un gruppo di risorse denominato gridResourceGroup nella località westus2.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

Creare un'istanza di Azure Cache per Redis

New-AzRedisCache
   -ResourceGroupName <String>
   -Name <String>
   -Location <String>
   [-Size <String>]
   [-Sku <String>]
   [-RedisConfiguration <Hashtable>]
   [-EnableNonSslPort <Boolean>]
   [-TenantSettings <Hashtable>]
   [-ShardCount <Int32>]
   [-MinimumTlsVersion <String>]
   [-SubnetId <String>]
   [-StaticIP <String>]
   [-Tag <Hashtable>]
   [-Zone <String[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Per altre informazioni sulla creazione di un’istanza della cache in PowerShell, vedere il riferimento di Azure PowerShell.

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>"

New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" `
  -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.

Empty Event Grid Viewer site.

Sottoscrivere l'evento della cache di Azure per Redis

In questo passaggio si sottoscriverà un argomento per indicare alla griglia di eventi gli eventi di cui si vuole tenere traccia. L'esempio seguente sottoscrive l'istanza della cache creata e passa l'URL dall'app Web come endpoint per la notifica dell'evento. L'endpoint per l'app Web deve includere il suffisso /api/updates/.

$cacheId = (Get-AzRedisCache -ResourceGroupName $resourceGroup -Name $cacheName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"

New-AzEventGridSubscription `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint $endpoint `
  -ResourceId $cacheId

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.

Azure Event Grid Viewer.

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.

Import-AzRedisCache
      [-ResourceGroupName <String>]
      -Name <String>
      -Files <String[]>
      [-Format <String>]
      [-Force]
      [-PassThru]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Per altre informazioni sull’importazione in PowerShell, vedere il riferimento di Azure PowerShell.

È 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.ImportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ImportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ImportRDBCompleted",
  "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 in questo avvio rapido. Se non si intende continuare, usare il comando seguente per eliminare le risorse create con questo avvio rapido.

Remove-AzResourceGroup -Name $resourceGroup

Passaggi successivi

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