Concetti di Trigger e associazioni di Funzioni di Azure

Questo articolo illustra i concetti generali relativi ai trigger e alle associazioni delle funzioni.

I trigger sono la causa dell'esecuzione di una funzione. Un trigger definisce come viene richiamata una funzione e una funzione deve avere esattamente un trigger. Ai trigger sono associati dati, che spesso vengono forniti come payload della funzione.

L'associazione a una funzione è un modo per connettere in modo dichiarativo un'altra risorsa alla funzione. Le associazioni possono essere connesse come associazioni di input, associazioni di output o entrambe. 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.

I trigger e le associazioni consentono di evitare l'accesso hardcoding 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 è possibile 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* Nessuna Coda*
Un processo pianificato legge il contenuto dell'archivio BLOB e crea un nuovo Cosmos DB documento. Timer Archiviazione BLOB Cosmos DB
Griglia di eventi viene usato per leggere un'immagine dall'archivio BLOB e un documento Cosmos DB inviare un messaggio di posta elettronica. Griglia di eventi Archiviazione BLOB e Cosmos DB SendGrid
Webhook che usa Microsoft Graph per aggiornare un foglio di Excel. HTTP Nessuna 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 associazioni

I trigger e le associazioni vengono definiti in modo diverso a seconda del linguaggio di sviluppo.

Linguaggio I trigger e le associazioni sono configurati da ...
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.jssu (schema)

Per le lingue che si basano function.js, il portale fornisce un'interfaccia utente per l'aggiunta di associazioni 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 function.jsnel file 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, usare per eseguire l'associazione al testo di un trigger della coda, una matrice di byte da leggere come binaria e un tipo personalizzato da string de-serializzare in un oggetto . Poiché le funzioni della libreria di classi .NET e le funzioni Java non si basano sufunction.jsper le definizioni di associazione, non possono essere create e modificate nel portale. La modifica del portale C# è basata su script C#, che usafunction.js su anziché sugli attributi.

Per altre informazioni su come aggiungere associazioni a funzioni esistenti, vedere Connettere 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 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 è disponibile tramite la scheda Integrazione nel 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 di 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)
Dapr3
Griglia di eventi
Hub eventi
HTTP e webhook
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 associazioni

Usare la tabella seguente per trovare esempi di tipi di associazione specifici che illustrano come usare le associazioni nelle funzioni. Per prima cosa, scegliere la scheda lingua corrispondente al progetto.

Servizio Esempio Esempi
Archiviazione BLOB Trigger
Input
Output
Collegamento
Azure Cosmos DB 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. I binding devono essere creati in .NET, ma possono essere utilizzati da qualsiasi linguaggio supportato. Per altre informazioni sulla creazione di associazioni personalizzate, vedere Creazione di associazioni di input e output personalizzate.

Risorse

Passaggi successivi