Concetti di Trigger e associazioni di Funzioni di Azure

In questo articolo vengono illustrati i concetti generali relativi ai trigger e alle associazioni delle funzioni.

I trigger causano l'esecuzione di una funzione. Un trigger definisce il modo in cui una funzione viene richiamata e una funzione deve avere esattamente un trigger. Ai trigger sono associati dati, che spesso vengono forniti come payload della funzione.

L’associazione di binding a una funzione rappresenta un modo dichiarativo per connettere un'altra risorsa alla funzione. I binding possono essere connessi come binding di input, binding di output o di entrambi i tipi. I dati dei binding vengono forniti alla funzione come parametri.

È possibile combinare binding diversi in base alle esigenze. I binding sono facoltativi e una funzione potrebbe avere uno o più binding di input e/o di output.

Trigger e binding consentono di evitare di impostare come hardcoded l'accesso ad altri servizi. La funzione riceve i dati, ad esempio il contenuto di un messaggio della coda, nei parametri della funzione. I dati vengono inviati, ad esempio per creare un messaggio della coda, usando il valore restituito della funzione.

Si considerino gli esempi seguenti di come implementare funzioni diverse.

Scenario di esempio Trigger Associazione di input Associazione di output
Viene visualizzato un nuovo messaggio di coda che esegue una funzione per scrivere in un'altra coda. Coda* Nessuno Coda*
Un processo pianificato legge il contenuto dell'archiviazione BLOB e crea un nuovo documento di Azure Cosmos DB. Timer Archiviazione BLOB Azure Cosmos DB
Griglia di eventi viene usata per leggere un'immagine da Archiviazione BLOB e un documento da Azure Cosmos DB per inviare un messaggio di posta elettronica. Griglia di eventi Archiviazione BLOB e Azure Cosmos DB SendGrid
Webhook che usa Microsoft Graph per aggiornare un foglio di Excel. HTTP Nessuno Microsoft Graph

* Rappresenta code diverse

Questi esempi non sono destinati a essere esaustivi, ma vengono forniti per illustrare come è possibile usare trigger e associazioni insieme.

Definizioni di trigger e binding

I trigger e i binding vengono definiti in modo diverso a seconda del linguaggio di sviluppo.

Linguaggio La configurazione di trigger e binding avviene nei seguenti modi:
Libreria di classi C#      decorazione di metodi e parametri con attributi C#
Java      decorazione di metodi e parametri con annotazioni Java
JavaScript/PowerShell/Python/TypeScript      aggiornamento di function.json (schema)

Per le lingue basate su function.json, il portale fornisce un'interfaccia utente per aggiungere associazioni nella scheda Integrazione . È anche possibile modificare il file direttamente nel portale nella scheda Code + test della funzione. Visual Studio Code consente di aggiungere facilmente un'associazione a un file function.json seguendo un set pratico di richieste.

In .NET e Java il tipo di parametro definisce il tipo di dati per i dati di input. Ad esempio, string consente di eseguire il binding al testo di un trigger di accodamento, una matrice di byte da leggere come binaria e un tipo personalizzato da de-serializzare in un oggetto. Poiché le funzioni della libreria di classi .NET e le funzioni Java non usano function.json per le definizioni dei binding, non è possibile crearle i modificarle nel portale. Il processo di modifica di C# nel portale è basato sullo script C#, che usa function.json anziché gli attributi.

Per altre informazioni su come aggiungere associazioni alle funzioni esistenti, vedere Connettere le funzioni ai servizi di Azure usando associazioni.

Per i linguaggi tipizzati in modo dinamico, ad esempio JavaScript, usare la proprietà dataType nel file function.json. Ad esempio, per eseguire la lettura del contenuto di una richiesta HTTP in formato binario, impostare dataType su binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Altre opzioni per dataType sono stream e string.

Direzione dell'associazione

Tutti i trigger e le associazioni hanno una proprietà direction nel file function.json:

  • Per i trigger, la direzione è sempre in
  • Le associazioni di input e di output usano in e out
  • Alcune associazioni supportano una direzione speciale inout. Se si usa inout, solo l’editor avanzato risulterà disponibile dalla scheda Integrazione del portale.

Quando si usano attributi in una libreria di classi per configurare trigger e associazioni, la direzione viene fornita in un costruttore di attributi o dedotto dal tipo di parametro.

Aggiungere associazioni a una funzione

È possibile connettere la funzione ad altri servizi usando associazioni di input o output. Aggiungere un'associazione aggiungendo le relative definizioni specifiche alla funzione. Per informazioni su come, vedere Aggiungere associazioni a una funzione esistente in Funzioni di Azure.

Binding supportati

Questa tabella mostra le associazioni supportate nelle versioni principali del runtime di Funzioni di Azure:

Type 1.x 2.x e versioni successive1 Trigger Input Output
Archiviazione BLOB
Azure Cosmos DB
Azure SQL (anteprima)2
Dapr3
Griglia di eventi
Hub eventi
Webhook HTTP &
Hub IoT
Kafka2
App per dispositivi mobili
Hub di notifica di Azure
Archiviazione code
RabbitMQ2
SendGrid
Bus di servizio
SignalR
Archiviazione tabelle
Timer
Twilio

1 A partire dalla versione 2.x del runtime, devono essere registrate tutte le associazioni tranne HTTP e Timer. Vedere Registrare le estensioni delle associazioni.

2 I trigger non sono supportati nel piano A consumo. Richiede trigger basati sul runtime.

3 Supportato solo in Kubernetes, IoT Edge e altre modalità self-hosted.

Per informazioni sulle associazioni in anteprima o approvate per l'uso in ambiente di produzione, vedere Linguaggi supportati .

Esempi di codice di associazione

Usare la tabella seguente per trovare esempi di tipi di associazione specifici che illustrano come usare le associazioni nelle funzioni. Scegliere prima di tutto la scheda della lingua corrispondente al progetto.

Servizio Esempio Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Azure SQL (anteprima) Input
Output
Collegamento
Griglia di eventi Trigger
Output
Collegamento
Hub eventi Trigger
Output
Hub IoT Trigger
Output
HTTP Trigger Collegamento
Archiviazione code Trigger
Output
Collegamento
RabbitMQ Trigger
Output
SendGrid Output
Bus di servizio Trigger
Output
Collegamento
SignalR Trigger
Input
Output
Archiviazione tabelle Input
Output
Timer Trigger Collegamento
Twilio Output Collegamento

Binding personalizzati

È possibile creare associazioni di input e output personalizzate. Le associazioni devono essere create in .NET, ma possono essere utilizzate da qualsiasi linguaggio supportato. Per altre informazioni sulla creazione di associazioni personalizzate, vedere Creazione di associazioni di input e output personalizzate.

Risorse

Passaggi successivi