Concetti relativi a trigger e associazioni in Funzioni di Azure

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

I trigger sono 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
Arriva un nuovo messaggio della coda che esegue una funzione per scrivere in un'altra coda. Coda* Nessuno Coda*
Un processo pianificato legge il contenuto di BLOB Archiviazione e crea un nuovo documento di Azure Cosmos DB. Timer Archiviazione BLOB Azure Cosmos DB
Griglia di eventi viene usata per leggere un'immagine dal BLOB Archiviazione 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 concepiti per 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.

Lingua 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 i linguaggi basati su function.json, il portale fornisce un'interfaccia utente che consente di aggiungere binding nella scheda Integrazione. È anche possibile modificare il file direttamente nel portale, nella scheda Codice e test della funzione. Visual Studio Code consente di aggiungere facilmente un'associazione a un file function.json seguendo un pratico set 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 Connessione funzioni ai servizi di Azure usando le 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 di binding

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 gli attributi in una libreria di classi per configurare i trigger e le associazioni, la direzione viene specificata in un costruttore di attributo o dedotta 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.x1 2.x e versioni successive2 Trigger Input Output
Archiviazione BLOB
Azure Cosmos DB
Esplora dati di Azure
Azure SQL
Dapr4
Griglia di eventi
Hub eventi
HTTP e webhook
Hub IoT
Kafka3
App per dispositivi mobili
Hub di notifica di Azure
Archiviazione code
Redis
RabbitMQ3
SendGrid
Bus di servizio
SignalR
Archiviazione tabelle
Timer
Twilio

1Il supporto terminerà per la versione 1.x del runtime Funzioni di Azure il 14 settembre 2026. È consigliabile eseguire la migrazione delle app alla versione 4.x per il supporto completo.

2 A partire dalla versione 2.x runtime, tutte le associazioni ad eccezione di HTTP e Timer devono essere registrate. Vedere Registrare le estensioni delle associazioni.

3 I trigger non sono supportati nel piano a consumo. Richiede trigger basati sul runtime.

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

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

Le versioni specifiche dell'estensione di associazione sono supportate solo se l'SDK del servizio sottostante è supportato. Le modifiche apportate al supporto nella versione dell'SDK del servizio sottostante influiscono sul supporto per l'estensione di utilizzo.

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.

Il codice di associazione per C# dipende dal modello di processo specifico.

Service Esempi Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Esplora dati di Azure Input
Output
Collegamento
Azure SQL Trigger
Input
Output
Collegamento
Griglia di eventi Trigger
Output
Collegamento
Hub eventi di 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
Service Esempi Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Esplora dati di Azure Input
Output
Collegamento
Azure SQL Trigger
Input
Output
Griglia di eventi Trigger
Output
Collegamento
Hub eventi di 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
Service Esempi Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Esplora dati di Azure Input
Output
Azure SQL Trigger
Input
Output
Collegamento
Griglia di eventi Trigger
Output
Collegamento
Hub eventi di 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
Service Esempi Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Azure SQL Trigger
Input
Output
Griglia di eventi Trigger
Output
Collegamento
Hub eventi di 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

Il codice di associazione per Python dipende dalla versione del modello Python.

Service Esempi Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB Trigger
Input
Output
Collegamento
Esplora dati di Azure Input
Output
Azure SQL Trigger
Input
Output
Collegamento
Griglia di eventi Trigger
Output
Collegamento
Hub eventi di 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

Associazioni personalizzate

È 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