Usare una funzione come gestore dell'evento per gli eventi di Griglia di eventi

Un gestore di eventi è la destinazione in cui Griglia di eventi di Azure invia un evento per l'elaborazione. Azure configura automaticamente diversi servizi per gestire eventi, e Funzioni di Azure è uno di questi.

Quando usi una funzione come gestore di eventi, esegui codice personalizzato in risposta a ogni evento senza fare provisioning o gestire i server. Ad esempio, Event Grid può utilizzare una funzione come livello anti-corruzione che trasforma o valida gli eventi prima di inoltrarli ai sistemi a valle.

Questo articolo descrive i due modi per utilizzare una funzione come gestore di eventi e spiega quale approccio adottare.

Per usare una funzione in Azure come gestore per gli eventi, seguire uno di questi approcci:

  • Usa un trigger di Event Grid. Specificare Funzione di Azure come tipo di endpoint. Poi specifica l'app per le funzioni e la funzione che gestisce gli eventi.
  • Usa un trigger HTTP. Specificare Web Hook come tipo di endpoint. Poi specifica l'URL della funzione che gestisce gli eventi.

Usa il primo approccio (trigger della griglia di eventi). Presenta i seguenti vantaggi rispetto al secondo approccio:

  • Griglia di eventi convalida automaticamente i trigger di Griglia di eventi. Con i trigger HTTP generici è necessario implementare autonomamente la risposta di convalida.
  • La Griglia degli Eventi regola automaticamente la velocità con cui consegna eventi a una funzione attivata da un evento della Griglia degli Eventi, in base alla velocità percepita con cui la funzione può elaborare eventi. Questa funzionalità di adeguamento della velocità evita errori di recapito dovuti all'incapacità di una funzione di elaborare gli eventi, poiché la velocità di elaborazione degli eventi della funzione può variare nel tempo. Per migliorare l'efficienza e ottenere una velocità effettiva elevata, abilitare l'invio in batch nella sottoscrizione di eventi. Per altre informazioni, vedere Abilitare l'invio in batch.

Nota

  • Quando usi un trigger di Event Grid per aggiungere un abbonamento a un evento usando una funzione Azure, Event Grid recupera la chiave di accesso per la funzione target utilizzando le credenziali del principale del servizio Event Grid. Event Grid riceve i permessi quando registri il provider di risorse Event Grid nel tuo abbonamento Azure.
  • Se proteggi la tua funzione Azure con un'applicazione Microsoft Entra ID, devi adottare l'approccio generico del webhook usando il trigger HTTP. Usare l'endpoint della funzione Azure come URL webhook durante l'aggiunta della sottoscrizione.

Esercitazioni

Titolo Descrizione
Avvio rapido: Gestire gli eventi con la funzione Invia un evento personalizzato a una funzione per l'elaborazione.
Esercitazione: trasmettere Big Data a un data warehouse Quando un hub di eventi crea un file di Capture, Event Grid invia un evento a un'app per le funzioni. L'app recupera il file Capture e migra i dati in un data warehouse.
Tutorial: esempi di integrazione tra bus di servizio di Azure e Griglia di eventi di Azure Event Grid invia messaggi da un argomento del bus di servizio a un'app per le funzioni e a un'app per la logica.

Esempio di API REST

L'esempio seguente mostra il corpo della richiesta per un'operazione PUT che crea un abbonamento a un evento con una funzione Azure come gestore di eventi. Imposta l'ID della risorsa della funzione target e abilita il batching.

{
    "properties":
    {
        "destination":
        {
            "endpointType": "AzureFunction",
            "properties":
            {
                "resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
                "maxEventsPerBatch": 10,
                "preferredBatchSizeInKilobytes": 64
            }
        },
        "eventDeliverySchema": "EventGridSchema"
    }
}

Abilita l'invio in batch

Per un throughput più alto, abilita il batching sull'abbonamento. Se usi il portale Azure, puoi impostare il massimo di eventi per batch e la dimensione preferita del batch in kilobyte quando crei un abbonamento o dopo.

Configura le impostazioni batch usando il portale Azure, PowerShell, CLI o un template di Resource Manager.

Portale di Azure

Quando crei un abbonamento nel portale, nella pagina Crea Abbonamento Evento , passa alla scheda Funzionalità Avanzate e imposta i valori per Massimo eventi per batch e Dimensione del lotto Preferito in kilobyte.

Screenshot della scheda Funzionalità Avanzate nella pagina Crea Abbonamento Evento che mostra le impostazioni del batch.

Aggiorna questi valori per un abbonamento esistente nella scheda Funzionalità della pagina Argomenti Grid Event .

Screenshot della scheda Funzionalità nella pagina dell'argomento di Event Grid che mostra le impostazioni di batch per una sottoscrizione esistente.

Modello di Azure Resource Manager

Impostare maxEventsPerBatch e preferredBatchSizeInKilobytes in un modello di Azure Resource Manager. Per altre informazioni, vedere Informazioni di riferimento sui modelli eventSubscriptions di Microsoft.EventGrid.

interfaccia della riga di comando di Azure

Usa il az eventgrid event-subscription create comando per configurare le impostazioni legate ai batch utilizzando i seguenti parametri: --max-events-per-batch oppure --preferred-batch-size-in-kilobytes.

Azure PowerShell

Usa il comando New-AzEventGridSubscription o Update-AzEventGridSubscription per configurare le impostazioni relative ai batch. Usa il -MaxEventsPerBatch parametro o -PreferredBatchSizeInKiloBytes per impostare le tue preferenze.

Per un elenco di gestori di eventi supportati, vedi l'articolo Gestori di eventi .