Confrontare le opzioni di hosting di Funzioni di Azure

Completato

Quando si crea un'app per le funzioni in Azure, è necessario scegliere un piano di hosting per l'app. Sono disponibili tre piani di hosting di base per Funzioni di Azure: piano a consumo, piano Premium e piano di servizio app (dedicato). Tutti i piani di hosting sono disponibili generalmente su macchine virtuali sia Linux che Windows.

Il piano di hosting scelto determina i comportamenti seguenti:

  • Come viene ridimensionata l'app per le funzioni.
  • Le risorse disponibili per ogni istanza dell'app per le funzioni.
  • Il supporto per funzionalità avanzate, ad esempio la connettività della rete virtuale di Azure.

Di seguito è riportato un riepilogo dei vantaggi offerti dai tre piani di hosting principali per Funzioni:

Piano Vantaggi
Piano a consumo Questo è il piano di hosting predefinito. Si ridimensiona automaticamente e si paga per le risorse di calcolo solo quando le funzioni sono in esecuzione. Le istanze dell'host di Funzioni vengono aggiunte e rimosse in modo dinamico in base al numero di eventi in ingresso.
Piano Premium Consente di dimensionare automaticamente in base alla domanda usando ruoli di lavoro preriscaldati che eseguono le applicazioni senza ritardi dopo l'inattività, di usare istanze più potenti per l'esecuzione e di connettersi alle reti virtuali.
Piano dedicato Consente di eseguire le funzioni all'interno di un piano di servizio app alle normali tariffe del piano di servizio app. Ideale per gli scenari a esecuzione prolungata in cui non si può usare Durable Functions.

Esistono altre due opzioni di hosting che offrono il massimo livello di controllo e isolamento in cui eseguire le app per le funzioni.

Opzione Hosting Dettagli
ASE L'ambiente del servizio app di Azure è una funzionalità del servizio app di Azure che offre un ambiente completamente isolato e dedicato per l'esecuzione sicura delle app del servizio app su larga scala.
Kubernetes (Direct o Azure Arc) Kubernetes offre un ambiente completamente isolato e dedicato in esecuzione nella piattaforma Kubernetes.

Piani di hosting e scalabilità

Nella tabella seguente vengono confrontati i comportamenti di ridimensionamento dei vari piani di hosting. Le istanze massime vengono fornite in base a un'app per ogni funzione (consumo) o per piano (Premium/Dedicato), a meno che non diversamente indicato.

Piano Aumentare il numero di istanze Numero massimo di istanze
Piano a consumo Basate su eventi. Aumento automatico del numero di istanze anche in periodo di carico elevato. L'infrastruttura di Funzioni di Azure ridimensiona le risorse di CPU e memoria aggiungendo altre istanze dell'host di Funzioni, in base al numero di eventi di trigger in ingresso. Windows: 200, Linux: 100
Piano Premium Basate su eventi. Aumento automatico del numero di istanze anche in periodo di carico elevato. L'infrastruttura di Funzioni di Azure ridimensiona le risorse di CPU e memoria aggiungendo altre istanze dell'host di Funzioni, in base al numero di eventi su cui vengono attivate le funzioni. Windows: 100, Linux: 20-100
Piano dedicato Manual/autoscale 10-20
ASE Manual/autoscale 100
Kubernetes Scalabilità automatica basata su eventi per i cluster Kubernetes tramite KEDA. Varia in base al cluster

Nota

Il numero massimo di istanze può variare in base all'area e al piano di hosting. Per altre informazioni, vedere l'articolo Piano Premium e i limiti del piano di servizio app.

Durata del timeout di un'app per le funzioni

La proprietà functionTimeout nel file di progettohost.json specifica la durata del timeout per le funzioni in un'app per le funzioni. Questa proprietà si applica in modo specifico alle esecuzioni di funzioni. Dopo l'avvio dell'esecuzione della funzione, la funzione deve restituire/rispondere entro la durata del timeout.

La tabella seguente mostra i valori predefiniti e massimi (in minuti) per piani specifici:

Piano Default Massimo
Piano a consumo 5 10
Piano Premium 30 Nessun limite
Piano Dedicato 30 Nessun limite

Requisiti dell'account di archiviazione

In qualsiasi piano un'app per le funzioni richiede un account di Archiviazione di Azure generale, che supporta l'archiviazione di BLOB di Azure, code, file e tabelle. Ciò è dovuto al fatto che Funzioni si basa su Archiviazione di Azure per diverse operazioni, ad esempio la gestione dei trigger e la registrazione delle esecuzioni delle funzioni, ma alcuni account di archiviazione non supportano code e tabelle.

Lo stesso account di archiviazione usato dall'app per le funzioni può essere usato anche dai trigger e dai binding per archiviare i dati dell'applicazione. Tuttavia, per le operazioni a elevato utilizzo di archiviazione, è necessario usare un account di archiviazione separato.