Supporto dei contenitori Linux in Funzioni di Azure

Quando si pianificano e sviluppano le singole funzioni da eseguire in Funzioni di Azure, si è in genere incentrati sul codice stesso. Funzioni di Azure semplifica la distribuzione di un progetto di codice in un'app per le funzioni in Azure. Quando si distribuisce il progetto di codice in un'app per le funzioni eseguita in Linux, il progetto viene eseguito in un contenitore creato automaticamente. Questo contenitore è gestito da Funzioni.

Funzioni supporta anche le distribuzioni di app per le funzioni in contenitori. In una distribuzione in contenitori si crea un'istanza dell'app per le funzioni in un contenitore Docker locale da un'immagine basata supportata. È quindi possibile distribuire questa app per le funzioni in contenitori in un ambiente di hosting in Azure. La creazione di un contenitore di app per le funzioni consente di personalizzare o controllare in altro modo l'ambiente di runtime immediato del codice della funzione.

Importante

Quando si creano contenitori personalizzati, è necessario mantenere aggiornata l'immagine di base del contenitore all'immagine di base supportata più recente. Le immagini di base supportate per Funzioni di Azure sono specifiche del linguaggio e sono disponibili nei repository dell'immagine di base di Funzioni di Azure.

Il team di Funzioni si impegna a pubblicare aggiornamenti mensili per queste immagini di base. Gli aggiornamenti regolari includono gli aggiornamenti della versione secondaria più recenti e le correzioni di sicurezza sia per il runtime di Funzioni che per i linguaggi. È consigliabile aggiornare regolarmente il contenitore dall'immagine di base più recente e ridistribuire la versione aggiornata del contenitore.

Opzioni di hosting dei contenitori

Sono disponibili diverse opzioni per l'hosting delle app per le funzioni in contenitori in Azure:

Opzione Hosting Vantaggi
App contenitore di Azure Funzioni di Azure offre supporto integrato per lo sviluppo, la distribuzione e la gestione di app per le funzioni in contenitori in App Azure Container. In questo modo è possibile gestire le app usando gli stessi strumenti e pagine di Funzioni nella portale di Azure. Usare App Azure Container per ospitare i contenitori di app per le funzioni quando è necessario eseguire le funzioni guidate dagli eventi in Azure nello stesso ambiente di altri microservizi, API, siti Web, flussi di lavoro o qualsiasi programma ospitato in contenitori. L'hosting di App contenitore consente di eseguire le funzioni in un ambiente gestito basato su Kubernetes con supporto predefinito per il monitoraggio open source, mTLS, Dapr e KEDA. Supporta la scalabilità a zero e fornisce un modello di hosting con pagamento in base al consumo. È anche possibile richiedere hardware dedicato, anche GPU, usando i profili di carico di lavoro. Opzione di hosting consigliata per l'esecuzione di app per le funzioni in contenitori in Azure.
Cluster Kubernetes abilitati per Azure Arc (anteprima) È possibile ospitare le app per le funzioni nei cluster Kubernetes abilitati per Azure Arc come distribuzione solo codice o in un contenitore Linux personalizzato. Azure Arc consente di collegare cluster Kubernetes in modo che sia possibile gestirli e configurarli in Azure. L'hosting di contenitori di Funzioni di Azure nei cluster Kubernetes abilitati per Azure Arc è attualmente in anteprima.
Funzioni di Azure È possibile ospitare le app per le funzioni in contenitori in Funzioni di Azure eseguendo il contenitore in un piano Elastic Premium o in un piano dedicato. L'hosting di piani Premium offre i vantaggi del ridimensionamento dinamico. È possibile usare l'hosting di piani dedicati per sfruttare le risorse esistenti del piano di servizio app inutilizzate.
Kubernetes Poiché il runtime di Funzioni di Azure offre flessibilità nell'hosting in cui e come si vuole, è possibile ospitare e gestire i contenitori delle app per le funzioni direttamente nei cluster Kubernetes. KEDA (Kubernetes-based Event Driven Autoscaling) si integra perfettamente con il runtime e i tool di Funzioni di Azure per offrire la scalatura gestita dagli eventi in Kubernetes. Tenere presente che l'esecuzione delle app per le funzioni in contenitori in Kubernetes, usando KEDA o la distribuzione diretta, è un'operazione open source che è possibile usare gratuitamente, con il supporto ottimale fornito dai collaboratori e dalla community. Si è responsabili della gestione dei contenitori delle app per le funzioni in un cluster, anche quando si esegue la distribuzione in servizio Azure Kubernetes (servizio Azure Kubernetes).

Confronto tra il supporto delle funzionalità

Il grado di supporto di varie funzionalità e comportamenti di Funzioni di Azure quando si esegue l'app per le funzioni in un contenitore dipende dall'opzione di hosting del contenitore scelta.

Funzionalità/comportamento App contenitore (integrata) App contenitore (diretta) Piano Premium Piano dedicato Kubernetes
Supporto tecnico No No
Integrazione del portale di Funzioni No No
Ridimensionamento basato su eventi 5 Sì (regole di scalabilità) No No
Scala massima (istanze) 10001  10001  1002  10-303  Varia in base al cluster
Istanze da ridimensionare a zero No No KEDA
Limite di tempo di esecuzione Senza vincoli6 Senza vincoli6 Senza vincoli7 Senza vincoli8 nessuno
Distribuzione di Core Tools func azurecontainerapps No No No func kubernetes 
Revisioni No No No No
Slot di distribuzione  No No No
Log di streaming    No
Accesso alla console  Non attualmente disponibile4  Sì (con Kudu) Sì (con Kudu) Sì (nei pod che usano kubctl)
Mitigazione dell'avvio a freddo Repliche minime Regole di scalabilità  Istanze always-ready/pre-warmed  n/d n/a
Autenticazione servizio app  Non attualmente disponibile4  No
Nomi di dominio personalizzati  Non attualmente disponibile4  No
Certificati di chiave privata  Non attualmente disponibile4  No
Reti virtuali
Zone di disponibilità
Diagnostica Non attualmente disponibile4      No
Hardware dedicato Sì (profili di carico di lavoro) Sì (profili di carico di lavoro) No
GPU dedicate Sì (profili di carico di lavoro) Sì (profili di carico di lavoro) No No
Numero di memoria/CPU configurabile No No
Opzione "Concessione gratuita" No No No
Dettagli sui prezzi Fatturazione di App contenitore Fatturazione di App contenitore Fatturazione del piano Premium Fatturazione del piano dedicato Prezzi del servizio Azure Kubernetes
Requisiti del nome del servizio 2-32 caratteri: limitato a lettere minuscole, numeri e trattini. Deve iniziare con una lettera e terminare con un carattere alfanumerico. 2-32 caratteri: limitato a lettere minuscole, numeri e trattini. Deve iniziare con una lettera e terminare con un carattere alfanumerico. Meno di 64 caratteri: limitati a caratteri alfanumerici e trattini. Non può iniziare con o terminare con un trattino. Meno di 64 caratteri: limitati a caratteri alfanumerici e trattini. Non può iniziare con o terminare con un trattino. Meno di 253 caratteri: limitati a caratteri alfanumerici e trattini. Deve iniziare e terminare con un carattere alfanumerico.
  1. In App contenitore, il valore predefinito è 10 istanze, ma è possibile impostare il numero massimo di repliche, che ha un massimo complessivo di 1000. Questa impostazione viene rispettata purché sia disponibile una quota di core sufficiente. Quando si crea l'app per le funzioni dal portale di Azure, sono limitate a 300 istanze.
  2. In alcune aree, le app Linux in un piano Premium possono aumentare fino a 100 istanze. Per altre informazioni, vedere l'articolo Piano Premium.
  3. Per i limiti specifici per le varie opzioni del piano di servizio app, vedere Limiti del piano di servizio app.
  4. La parità delle funzionalità è l'obiettivo dell'hosting integrato nelle app Azure Container.
  5. Richiede KEDA. Supportato dalla maggior parte dei trigger. Per informazioni sui trigger che supportano il ridimensionamento basato su eventi, vedere Considerazioni per l'hosting di app contenitore.
  6. Quando il numero minimo di repliche è impostato su zero, il timeout predefinito dipende dai trigger specifici usati nell'app.
  7. Non è applicata la durata massima del timeout di esecuzione. Tuttavia, il periodo di tolleranza assegnato a un'esecuzione della funzione è di 60 minuti durante la scalabilità e viene fornito un periodo di tolleranza di 10 minuti durante gli aggiornamenti della piattaforma.
  8. Richiede l'impostazione del piano di servizio app su Always On. È previsto un periodo di tolleranza di 10 minuti durante gli aggiornamenti della piattaforma.

Introduzione

Usare questi collegamenti per iniziare a usare Funzioni di Azure nei contenitori Linux:

Si vuole... Vedere l'articolo:
Creare le prime funzioni in contenitori Creare un'app per le funzioni in un contenitore Linux locale
Creare e distribuire funzioni in App Azure Container Creare le prime funzioni in contenitori in App Azure Container
Creare e distribuire funzioni in contenitori in Funzioni di Azure Creare la prima funzione di Azure in contenitori
Creare e distribuire funzioni in Kubernetes abilitato per Azure Arc Creare la prima funzione di Azure in contenitori in Azure Arc (anteprima)