Stima dei costi del piano a consumo

Esistono attualmente tre tipi di piani di hosting per un'app eseguita in Funzioni di Azure, ognuno dei quali ha un proprio modello di determinazione prezzi:

Pianificare Description
Consumo Viene addebitato solo il tempo di esecuzione dell'app per le funzioni. Questo piano include una [pagina dei prezzi delle][concessioni] gratuite per ogni sottoscrizione.
Premium Offre le stesse funzionalità e gli stessi meccanismi di ridimensionamento del piano a consumo, ma con prestazioni migliorate e accesso alla rete virtuale. Il costo è basato sul piano tariffario scelto. Per altre informazioni, vedere Funzioni di Azure Premium piano .
Dedicato (servizio app)
(livello Basic o superiore)
Quando è necessario eseguire in macchine virtuali dedicate o in isolamento, usare immagini personalizzate o si vuole usare la capacità del piano di servizio app in eccesso. Usa la fatturazione normale del piano di servizio app. Il costo è basato sul piano tariffario scelto.

È stato scelto il piano che meglio supporta i requisiti di prestazioni e costi delle funzioni. Per altre informazioni, vedere Ridimensionamento e hosting di Funzioni di Azure.

Questo articolo riguarda solo il piano a consumo, poiché questo piano comporta costi variabili. Questo articolo sostituisce l'articolo Domande frequenti sulla fatturazione dei costi del piano a consumo.

Durable Functions può essere eseguito anche in un piano a consumo. Per altre informazioni sulle considerazioni sui costi quando si usa Durable Functions, vedere Durable Functions fatturazione.

Costi del piano a consumo

Il costo di esecuzione di una singola funzione viene misurato in GB-secondi. Il costo di esecuzione viene calcolato combinando l'utilizzo della memoria con il tempo di esecuzione. Una funzione che viene eseguita più a lungo ha un costo maggiore, così come una funzione che utilizza più memoria.

Si consideri un caso in cui la quantità di memoria usata dalla funzione rimane costante. In questo caso, il calcolo del costo è una moltiplicazione semplice. Si supponga, ad esempio, che la funzione ha utilizzato 0,5 GB per 3 secondi. Il costo di esecuzione è 0.5GB * 3s = 1.5 GB-seconds quindi .

Poiché l'utilizzo della memoria cambia nel tempo, il calcolo è essenzialmente l'elemento integrale dell'utilizzo della memoria nel tempo. Il sistema esegue questo calcolo tramite il campionamento dell'utilizzo della memoria del processo (insieme ai processi figlio) a intervalli regolari. Come indicato nella pagina [dei prezzi,]l'utilizzo della memoria viene arrotondato al bucket di 128 MB più vicino. Quando il processo usa 160 MB, vengono addebitati 256 MB. Il calcolo prende in considerazione la concorrenza, ovvero più esecuzioni di funzioni simultanee nello stesso processo.

Nota

Anche se l'utilizzo della CPU non viene considerato direttamente nel costo di esecuzione, può avere un impatto sul costo quando influisce sul tempo di esecuzione della funzione.

Per una funzione attivata tramite HTTP, quando si verifica un errore prima dell'inizio dell'esecuzione del codice della funzione, non viene addebitato alcun costo per l'esecuzione. Ciò significa che le risposte 401 dalla piattaforma a causa della convalida della chiave API o della funzionalità di autenticazione/autorizzazione del servizio app non vengono conteggiati in base al costo di esecuzione. Analogamente, le risposte con codice di stato 5xx non vengono conteggiate quando si verificano nella piattaforma prima che una funzione ese elaborazione della richiesta. Una risposta 5xx generata dalla piattaforma dopo l'avvio dell'esecuzione del codice della funzione viene comunque conteggiata come esecuzione, anche se l'errore non viene generato dal codice della funzione.

Quando si stima il costo complessivo dell'esecuzione delle funzioni in qualsiasi piano, tenere presente che il runtime di Funzioni usa diversi altri servizi di Azure, che vengono fatturati separatamente. Quando si calcolano i prezzi per le app per le funzioni, tutti i trigger e le associazioni presenti che si integrano con altri servizi di Azure richiedono la creazione e il pagamento di tali servizi aggiuntivi.

Per le funzioni in esecuzione in un piano a consumo, il costo totale è il costo di esecuzione delle funzioni, oltre al costo della larghezza di banda e dei servizi aggiuntivi.

Quando si stimano i costi complessivi dell'app per le funzioni e dei servizi correlati, usare il calcolatore prezzi di Azure.

Costo correlato Descrizione
Account di archiviazione Per ogni app per le funzioni è necessario avere un account per utilizzo generico Archiviazione di Azure,che viene fatturato separatamente. Questo account viene usato internamente dal runtime di Funzioni, ma è anche possibile usarlo per Archiviazione trigger e associazioni. Se non si ha un account di archiviazione, ne viene creato uno automaticamente quando viene creata l'app per le funzioni. Per altre informazioni, vedere Requisiti dell'account di archiviazione.
Application Insights Funzioni si basa su Application Insights per offrire un'esperienza di monitoraggio ad alte prestazioni per le app per le funzioni. Anche se non è obbligatorio, è consigliabile abilitare l'integrazione Insights applicazione. Ogni mese viene inclusa una concessione gratuita di dati di telemetria. Per altre informazioni, vedere la pagina Monitoraggio di Azure prezzi.
Larghezza di banda di rete Non si paga per il trasferimento dei dati tra i servizi di Azure nella stessa area. Tuttavia, è possibile sostenere costi per i trasferimenti di dati in uscita in un'altra area o all'esterno di Azure. Per altre informazioni, vedere Dettagli sui prezzi della larghezza di banda.

Comportamenti che influiscono sul tempo di esecuzione

I comportamenti seguenti delle funzioni possono influire sul tempo di esecuzione:

  • Trigger e associazioni: il tempo impiegato per leggere l'input e scrivere l'output nelle associazioni di funzione viene conteggiato come tempo di esecuzione. Ad esempio, quando la funzione usa un'associazione di output per scrivere un messaggio in una coda di archiviazione di Azure, il tempo di esecuzione include il tempo impiegato per scrivere il messaggio nella coda, incluso nel calcolo del costo della funzione.

  • Esecuzione asincrona: il tempo di attesa della funzione per i risultati di una richiesta asincrona ( await in C#) viene conteggiato come tempo di esecuzione. Il calcolo di GB al secondo si basa sull'ora di inizio e di fine della funzione e sull'utilizzo della memoria in tale periodo. Ciò che accade in quel periodo di tempo in termini di attività della CPU non viene fattoriato nel calcolo. È possibile ridurre i costi durante le operazioni asincrone usando Durable Functions. Non viene addebitato il tempo dedicato alle attese nelle funzioni dell'agente di orchestrazione.

Nella fatturaè possibile visualizzare i dati relativi ai costi di Esecuzioni totali - Funzioni e Tempo di esecuzione - Funzioni, insieme ai costi effettivi fatturati. Tuttavia, questi dati della fattura sono un'aggregazione mensile per un periodo di fatturazione precedente.

Metriche a livello di app per le funzioni

Per comprendere meglio l'impatto sui costi delle funzioni, è possibile usare Monitoraggio di Azure per visualizzare le metriche relative ai costi attualmente generate dalle app per le funzioni.

Usare Monitoraggio di Azure esplora metriche per visualizzare i dati correlati ai costi per le app per le funzioni del piano a consumo in formato grafico.

  1. Nel [portale di Azure]passare all'app per le funzioni.

  2. Nel pannello sinistro scorrere verso il basso fino a Monitoraggio e scegliere Metriche.

  3. In Metrica scegliere Conteggio esecuzioni funzioni e Somma per Aggregazione. La somma dei conteggi di esecuzione durante il periodo scelto viene aggiunta al grafico.

    Definire una metrica dell'app per le funzioni da aggiungere al grafico

  4. Selezionare Aggiungi metrica e ripetere i passaggi da 2 a 4 per aggiungere unità di esecuzione della funzione al grafico.

Il grafico risultante contiene i totali per entrambe le metriche di esecuzione nell'intervallo di tempo scelto, che in questo caso è di due ore.

Graph dei conteggi di esecuzione delle funzioni e delle unità di esecuzione

Poiché il numero di unità di esecuzione è molto maggiore del numero di esecuzioni, il grafico mostra solo le unità di esecuzione.

Questo grafico mostra un totale di 1,11 miliardi di consumati in un periodo di Function Execution Units due ore, misurato in MB millisecondi. Per eseguire la conversione in GB-secondi, dividere per 1024000. In questo esempio l'app per le funzioni ha utilizzato 1110000000 / 1024000 = 1083.98 GB-secondi. È possibile prendere questo valore e moltiplicarlo per il prezzo corrente del tempo di esecuzione nella pagina prezzi funzioni ,che offre il costo di queste due ore, presupponendo che siano già state usate concessioni gratuite del tempo di esecuzione.

Metriche a livello di funzione

Le unità di esecuzione delle funzioni sono una combinazione del tempo di esecuzione e dell'utilizzo della memoria, il che lo rende una metrica difficile per comprendere l'utilizzo della memoria. I dati di memoria non sono una metrica attualmente disponibile tramite Monitoraggio di Azure. Tuttavia, se si vuole ottimizzare l'utilizzo della memoria dell'app, è possibile usare i dati del contatore delle prestazioni raccolti da Application Insights.

Se non è già stato fatto, abilitare Application Insights nell'app per le funzioni. Con questa integrazione abilitata, è possibile eseguire query su questi dati di telemetria nel portale.

È possibile usare esplora Monitoraggio di Azure metriche nel [portale di Azure] o le API REST per ottenere i dati delle metriche di monitoraggio.

Determinare l'utilizzo della memoria

In monitoraggio selezionare log (Analytics), quindi copiare la query di telemetria seguente e incollarla nella finestra di query e selezionare Esegui. Questa query restituisce l'utilizzo totale della memoria per ogni tempo campione.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

I risultati sono simili all'esempio seguente:

timestamp [ UTC] name Valore
9/12/2019, 1:05:14 . 947 am Private Bytes 209.932.288
9/12/2019, 1:06:14 . 994 am Private Bytes 212.189.184
9/12/2019, 1:06:30 . 010 Private Bytes 231.714.816
9/12/2019, 1:07:15 . 040 am Private Bytes 210.591.744
9/12/2019, 1:12:16 . 285 am Private Bytes 216.285.184
9/12/2019, 1:12:31 . 376 am Private Bytes 235.806.720

Determinazione della durata

Monitoraggio di Azure tiene traccia delle metriche a livello di risorsa, che per le funzioni è l'app per le funzioni. Application Insights integrazione genera metriche per ogni singola funzione. Di seguito è riportato un esempio di query di analisi per ottenere la durata media di una funzione:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
name averageDurationMilliseconds
AvgDurationMs QueueTrigger 16 . 087
MaxDurationMs QueueTrigger 90 . 249
MinDurationMs QueueTrigger 8 . 522

Passaggi successivi