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 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 dall'archivio 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 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 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 Connettere le funzioni ai servizi di Azure tramite 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
eout
- Alcune associazioni supportano una direzione speciale
inout
. Se si usainout
, 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 di 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 del runtime, devono essere registrate tutte le associazioni tranne HTTP e Timer. 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 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 | 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 | 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 | 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 | 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 | 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
- Modelli ed espressioni di associazione
- Uso del valore restituito della funzione di Azure
- Come registrare un'espressione di associazione
- Testing:
- Gestione degli errori di associazione