Fatturazione di Durable Functions

La fatturazione di Durable Functions è analoga a quella di Funzioni di Azure. Per altre informazioni, vedere Prezzi di Funzioni.

Quando si eseguono le funzioni dell'agente di orchestrazione nel piano a consumo di Funzioni di Azure, è necessario essere a conoscenza di alcuni comportamenti della fatturazione. Le sezioni seguenti descrivono in dettaglio questi comportamenti e il relativo effetto.

Fatturazione della riesecuzione di funzioni dell'agente di orchestrazione

Le funzioni dell'agente di orchestrazione possono essere rieseguite diverse volte per l'intera durata di un'orchestrazione. Ogni riesecuzione viene considerata dal runtime di Funzioni di Azure come una chiamata di funzione distinta. Per questo motivo, nel piano a consumo di Funzioni di Azure verrà fatturata ogni riesecuzione di una funzione dell'agente di orchestrazione. In altri tipi di piani la riesecuzione delle funzioni dell'agente di orchestrazione non viene addebitata.

Attesa e sospensione delle funzioni dell'agente di orchestrazione

Quando una funzione dell'agente di orchestrazione attende il completamento di un'attività asincrona, il runtime considera che la chiamata alla funzione specifica venga completata. La fatturazione per la funzione dell'agente di orchestrazione viene interrotta a questo punto e non riprende fino alla successiva riproduzione della funzione dell'agente di orchestrazione. Il tempo di attesa o di sospensione di una funzione dell'agente di orchestrazione non viene fatturato.

Nota

Le funzioni che chiamano altre funzioni sono considerate da alcuni come un modello anti-pattern serverless. Il motivo è dovuto a un problema noto come doppia fatturazione. Quando una funzione chiama direttamente un'altra funzione, vengono eseguite entrambe contemporaneamente. La funzione chiamata esegue attivamente codice, mentre quella chiamante è in attesa di una risposta. In questo caso, è necessario pagare per il tempo trascorso dalla funzione chiamante in attesa dell'esecuzione della funzione chiamata.

Le funzioni dell'agente di orchestrazione non sono soggette a doppia fatturazione. La fatturazione di una funzione dell'agente di orchestrazione si interrompe durante l'attesa del risultato di una funzione di attività o orchestrazione secondaria.

Polling HTTP durevole

Le funzioni di orchestrazione possono effettuare chiamate HTTP a esecuzione prolungata agli endpoint esterni, come descritto nell'articolo sulle funzionalità HTTP. Le API "chiama HTTP" potrebbero eseguire il polling interno di un endpoint HTTP seguendo il modello asincrono 202.

Non è attualmente prevista alcuna fatturazione diretta per le operazioni di polling HTTP interno. Il polling interno potrebbe però causare la riproduzione periodica della funzione dell'agente di orchestrazione. Verranno fatturati gli addebiti standard per queste riesecuzioni di funzioni interne.

Transazioni di archiviazione di Azure

Durable Functions usa Archiviazione di Azure per impostazione predefinita per la persistenza dello stato, l'elaborazione dei messaggi e la gestione di partizione tramite lease di BLOB. Questo account di archiviazione è di proprietà dell'utente, di conseguenza nella sottoscrizione di Azure vengono fatturati solo gli eventuali costi delle transazioni. Per altre informazioni sugli artefatti di Archiviazione di Azure usati da Durable Functions, vedere l'articolo Hub attività.

Diversi fattori contribuiscono ai costi effettivi di Archiviazione di Azure generati dall'app di Durable Functions:

  • Una singola app per le funzioni viene associata a un singolo hub attività, che condivide un set di risorse di Archiviazione di Azure. Queste risorse vengono usate da tutte le istanze di Durable Functions in un'app per le funzioni. Il numero effettivo di funzioni dell'app per le funzioni non influisce sui costi delle transazioni di Archiviazione di Azure.
  • Ogni istanza di app per le funzioni esegue internamente il polling di più code nell'account di archiviazione usando un algoritmo di polling basato su backoff esponenziale. Un'istanza di app inattiva esegue il polling delle code con una minore frequenza rispetto a quella di un'app attiva, di conseguenza i costi delle transazioni risultano inferiori. Per altre informazioni sul comportamento di Durable Functions di polling della coda quando si usa il provider di archiviazione di Azure, vedere la sezione del polling in coda della documentazione del provider di archiviazione di Azure.
  • Quando viene eseguito nei piani a consumo o Premium di Funzioni di Azure, il controller di scalabilità di Funzioni di Azure esegue regolarmente il polling di tutte le code dell'hub attività in background. Nel caso di un'app per le funzioni su scala leggera o moderata, il polling di queste code viene eseguito solo da una singola istanza del controller di scalabilità. Se l'app per le funzioni viene ampliata per includere un numero elevato di istanze, potrebbero essere aggiunte altre istanze del controller di scalabilità. Queste istanze aggiuntive possono comportare un aumento dei costi totali delle transazioni delle code.
  • Ogni istanza dell'app per le funzioni compete per un set di lease di BLOB. Queste istanze effettuano periodicamente chiamate al servizio BLOB di Azure per rinnovare i lease mantenuti o per provare ad acquisirne di nuovi. Il conteggio delle partizioni configurato dell'hub attività determina il numero di lease di BLOB. L'ampliamento con l'aggiunta di un numero più elevato di istanze dell'app per le funzioni può comportare un aumento dei costi delle transazioni di Archiviazione di Azure con queste operazioni di lease.

Per altre informazioni, vedere la documentazione sui prezzi di Archiviazione di Azure.

Passaggi successivi