Condividi tramite


Durable Functions tipi e funzionalità

Durable Functions è un'estensione di Funzioni di Azure. È possibile usare Durable Functions per l'orchestrazione con stato dell'esecuzione della funzione. Un'app per le funzioni durevoli è una soluzione costituita da diverse funzioni di Azure. Le funzioni possono svolgere ruoli diversi in un'orchestrazione di funzioni durevoli.

Esistono attualmente quattro tipi di funzioni durevoli in Funzioni di Azure: attività, agente di orchestrazione, entità e client. La parte restante di questa sezione illustra in dettaglio i tipi di funzioni coinvolti in un'orchestrazione.

Funzioni dell'agente di orchestrazione

Le funzioni dell'agente di orchestrazione descrivono le modalità di esecuzione delle azioni e l'ordine in cui vengono eseguite. Le funzioni dell'agente di orchestrazione descrivono l'orchestrazione nel codice (C# o JavaScript), come illustrato in Durable Functions modelli di applicazione. Un'orchestrazione può avere molti diversi tipi di azioni, tra cui funzioni di attività, sotto orchestrazioni, attesa di eventi esterni, HTTP e timer. Le funzioni dell'agente di orchestrazione possono anche interagire con le funzioni di entità.

Nota

Le funzioni dell'agente di orchestrazione vengono scritte usando codice ordinario, ma esistono requisiti rigorosi su come scriverlo. In particolare, il codice della funzione dell'agente di orchestrazione deve essere deterministico. Se questi requisiti sul determinismo non vengono rispettati, le funzioni dell'agente di orchestrazione non vengono eseguite correttamente. Informazioni dettagliate su questi requisiti e su come risolverle sono disponibili nell'argomento vincoli di codice .

Per informazioni più dettagliate sulle funzioni dell'agente di orchestrazione e sulle relative funzionalità, vedere l'articolo Orchestrazioni durevoli .

Funzioni di attività

Le funzioni di attività sono l'unità di base del lavoro in un'orchestrazione di Durable Functions. Le funzioni di attività sono le funzioni e le attività orchestrate nel processo. Ad esempio, è possibile creare una funzione di orchestrazione per elaborare un ordine. Le attività implicano il controllo dell'inventario, l'addebito al cliente e la creazione di una spedizione. Ogni attività corrisponde a una diversa funzione di tipo attività. Le funzioni di attività possono essere eseguite in serie, in parallelo o in una combinazione di entrambi.

A differenza delle funzioni di orchestrazione, le funzioni di attività non sono limitate al tipo di lavoro che si può eseguire al loro interno. Le funzioni di attività vengono spesso usate per effettuare chiamate di rete o eseguire operazioni con utilizzo elevato della CPU. Una funzione di attività può anche restituire dati alla funzione di orchestrazione. Durable Task Framework garantisce che ogni funzione di attività chiamata venga eseguita almeno una volta durante l'esecuzione di un'orchestrazione.

Nota

Poiché le funzioni di attività garantiscono almeno una volta l'esecuzione, è consigliabile rendere la logica della funzione di attività idempotente ogni volta che è possibile.

Usare un trigger attività per definire una funzione di attività. Le funzioni .NET ricevono DurableActivityContext come parametro. È anche possibile associare il trigger a qualsiasi altro oggetto serializzabile in JSON per passare gli input alla funzione. In JavaScript è possibile accedere a un input tramite la proprietà nell'oggettocontext.bindings<activity trigger binding name> . Alle funzioni di attività può essere passato un solo valore. Per passare più valori, è necessario usare tuple, matrici o tipi complessi.

Nota

È possibile attivare una funzione di attività solo da una funzione dell'agente di orchestrazione.

Funzioni di entità

Le funzioni di entità definiscono le operazioni per la lettura e l'aggiornamento di piccole parti dello stato. Spesso si fa riferimento a queste entità con stato come entità durevoli. Come le funzioni dell'agente di orchestrazione, le funzioni di entità sono funzioni con un tipo di trigger speciale, il trigger di entità. Possono essere richiamate dalle funzioni di tipo client o orchestrazione. A differenza delle funzioni di orchestrazione, le funzioni di entità non hanno vincoli di codice specifici. Le funzioni di entità, inoltre, gestiscono lo stato in modo esplicito anziché in modo implicito, rappresentandolo tramite flusso di controllo.

Nota

Le funzioni di entità e le funzionalità correlate sono disponibili solo in Durable Functions 2.0 e versioni successive.

Per altre informazioni sulle funzioni di entità, vedere l'articolo Entità durevoli .

Funzioni client

Le funzioni dell'agente di orchestrazione vengono attivate da un'associazione di trigger di orchestrazione e le funzioni di entità vengono attivate da un'associazione di trigger di entità. Entrambi questi trigger funzionano reagiscendo ai messaggi che vengono accodati in un hub attività. Il modo principale per recapitare questi messaggi consiste nell'usare un'associazione client dell'agente di orchestrazione o un'associazione client di entità dall'interno di una funzione client. Qualsiasi funzione non orchestratrice può essere una funzione client. Ad esempio, è possibile attivare l'agente di orchestrazione da una funzione attivata da HTTP, una funzione attivata dall'hub eventi di Azure e così via. Ciò che rende una funzione client è l'uso dell'associazione di output client durevole.

Nota

A differenza di altri tipi di funzione, non è possibile attivare funzioni di orchestrazione e entità direttamente usando i pulsanti nel portale di Azure. Se si vuole testare una funzione di orchestrazione o di entità nel portale di Azure, è invece necessario eseguire una funzione client che avvia un agente di orchestrazione o una funzione di entità nell'ambito dell'implementazione. Per l'esperienza di test più semplice, è consigliabile usare una funzione trigger manuale.

Oltre a attivare funzioni di orchestrazione o di entità, l'associazione client durevole può essere usata per interagire con l'esecuzione di orchestrazioni ed entità. Ad esempio, le orchestrazioni possono essere eseguite query, terminate e possono avere eventi generati. Per altre informazioni sulla gestione di orchestrazioni ed entità, vedere l'articolo Gestione istanze.

Passaggi successivi

Per iniziare, creare la prima funzione durevole in C#, JavaScript, Python, PowerShell o Java.