Concetti di Trigger e associazioni di Funzioni di AzureAzure Functions triggers and bindings concepts

In questo articolo vengono illustrati i concetti di alto livello che circondano i trigger e le associazioni di funzioni.In this article you learn the high-level concepts surrounding functions triggers and bindings.

I trigger sono la cosa che determina l'esecuzione di una funzione.Triggers are what cause a function to run. Un trigger definisce il modo in cui viene richiamata una funzione e una funzione deve avere esattamente un trigger.A trigger defines how a function is invoked and a function must have exactly one trigger. Ai trigger sono associati dati, che vengono spesso forniti come payload della funzione.Triggers have associated data, which is often provided as the payload of the function.

Il binding a una funzione è un modo per connettere in modo dichiarativo un'altra risorsa alla funzione; i binding possono essere connessi come binding di input, associazioni di outputo entrambi.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. I dati dei binding vengono forniti alla funzione come parametri.Data from bindings is provided to the function as parameters.

È possibile combinare e associare associazioni diverse in base alle esigenze.You can mix and match different bindings to suit your needs. Le associazioni sono facoltative e una funzione può avere una o più associazioni di input e/o output.Bindings are optional and a function might have one or multiple input and/or output bindings.

Trigger e associazioni consentono di evitare l'accesso hardcoded ad altri servizi.Triggers and bindings let you avoid hardcoding access to other services. La funzione riceve i dati, ad esempio il contenuto di un messaggio della coda, nei parametri della funzione.Your function receives data (for example, the content of a queue message) in function parameters. I dati vengono inviati, ad esempio per creare un messaggio della coda, usando il valore restituito della funzione.You send data (for example, to create a queue message) by using the return value of the function.

Si considerino gli esempi seguenti di come implementare funzioni diverse.Consider the following examples of how you could implement different functions.

Scenario di esempioExample scenario TriggerTrigger Binding di inputInput binding Binding di outputOutput binding
Arriva un nuovo messaggio di coda che esegue una funzione per scrivere in un'altra coda.A new queue message arrives which runs a function to write to another queue. * della codaQueue* NessunoNone * della codaQueue*
Un processo pianificato legge il contenuto dell'archiviazione BLOB e crea un nuovo documento Cosmos DB.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. TimerTimer Archiviazione BLOBBlob Storage Cosmos DBCosmos DB
La griglia di eventi viene usata per leggere un'immagine dall'archiviazione BLOB e un documento da Cosmos DB per inviare un messaggio di posta elettronica.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Griglia di eventiEvent Grid Archiviazione BLOB e Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Un webhook che usa Microsoft Graph per aggiornare un foglio di Excel.A webhook that uses Microsoft Graph to update an Excel sheet. httpHTTP NessunoNone Microsoft GraphMicrosoft Graph

* Rappresenta le code diverse* Represents different queues

Questi esempi non sono destinati a essere esaustivi, ma vengono forniti per illustrare come è possibile usare i trigger e le associazioni.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Trigger e definizioni di bindingTrigger and binding definitions

I trigger e le associazioni sono definiti in modo diverso a seconda dell'approccio di sviluppo.Triggers and bindings are defined differently depending on the development approach.

PiattaformaPlatform Trigger e associazioni sono configurati da...Triggers and bindings are configured by...
C#libreria di classiC# class library      metodi e parametri di decorazione C# con attributi     decorating methods and parameters with C# attributes
Tutti gli altri (inclusi portale di Azure)All others (including Azure portal)      aggiornamento di Function. JSON (schema)     updating function.json (schema)

Il portale fornisce un'interfaccia utente per questa configurazione, ma è possibile modificare il file direttamente aprendo l' Editor avanzato disponibile tramite la scheda integra della funzione.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

In .NET, il tipo di parametro definisce il tipo di dati per i dati di input.In .NET, the parameter type defines the data type for input data. Ad esempio, usare string per eseguire l'associazione al testo di un trigger della coda, una matrice di byte da leggere come binary e un tipo personalizzato da deserializzare in un oggetto.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

Per i linguaggi tipizzati in modo dinamico, ad esempio JavaScript, usare la proprietà dataType nel file function.json.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Ad esempio, per eseguire la lettura del contenuto di una richiesta HTTP in formato binario, impostare dataType su binary:For example, to read the content of an HTTP request in binary format, set dataType to binary:

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

Altre opzioni per dataType sono stream e string.Other options for dataType are stream and string.

Direzione dell'associazioneBinding direction

Tutti i trigger e le associazioni hanno una proprietà direction nel file function.json:All triggers and bindings have a direction property in the function.json file:

  • Per i trigger, la direzione è sempre inFor triggers, the direction is always in
  • Le associazioni di input e di output usano in e outInput and output bindings use in and out
  • Alcune associazioni supportano una direzione speciale inout.Some bindings support a special direction inout. Se si usa inout, solo l' Editor avanzato è disponibile tramite la scheda integrazione nel portale.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

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.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

Binding supportatiSupported bindings

Questa tabella mostra le associazioni supportate nelle versioni principali del runtime di funzioni di Azure:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TypeType 1.x1.x 2. x e versioni successive12.x and higher1 TriggerTrigger InputInput OutputOutput
Archiviazione BLOBBlob storage
Cosmos DBCosmos DB
Griglia di eventiEvent Grid
Hub eventiEvent Hubs
Webhook & HTTPHTTP & webhooks
Hub IoTIoT Hub
Microsoft Graph
Tabelle di Excel
Microsoft Graph
Excel tables
Microsoft Graph
File di OneDrive
Microsoft Graph
OneDrive files
Microsoft Graph
Indirizzo e-mail Outlook
Microsoft Graph
Outlook email
Eventi
Microsoft Graph
Microsoft Graph
events
Microsoft Graph
Token di autenticazione
Microsoft Graph
Auth tokens
App per dispositivi mobiliMobile Apps
Hub di notifica di AzureNotification Hubs
Archiviazione codeQueue storage
SendGridSendGrid
Bus di servizioService Bus
SignalRSignalR
Archiviazione tabelleTable storage
TimerTimer
TwilioTwilio

1 a partire dal runtime della versione 2. x, è necessario registrare tutte le associazioni eccetto http e timer.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Vedere Registrare le estensioni delle associazioni.See Register binding extensions.

Per informazioni sulle associazioni in anteprima o approvate per l'uso in ambiente di produzione, vedere Linguaggi supportati .For information about which bindings are in preview or are approved for production use, see Supported languages.

RisorseResources

Passaggi successiviNext steps