Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 in un'app per le funzioni Linux, il codice viene eseguito in un contenitore creato automaticamente e si integra facilmente con gli strumenti di gestione di 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. Per altre informazioni, vedere Gestione di contenitori personalizzati.
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. Questa integrazione consente di gestire le app usando gli stessi strumenti e pagine di Funzioni nel portale di Azure. Usare App Azure Container per ospitare il contenitore dell'app per le funzioni nello stesso ambiente di altri microservizi, API, siti Web, flussi di lavoro o altri programmi ospitati 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 serverless. È anche possibile richiedere hardware dedicato, anche GPU, usando i profili di carico di lavoro. Opzione di hosting consigliata per le app per le funzioni in contenitori n 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. Per altre informazioni, vedere Uso di contenitori e Funzioni di Azure. |
Funzioni di Azure | È possibile ospitare le app per funzioni containerizzate in Azure Functions eseguendo il contenitore in un piano Elastic Premium o in un piano del servizio app (dedicato). Usa l'hosting di Container Apps per supporto container completo da Container Apps. 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. Importante: L'hosting Kubernetes delle app per le funzioni in contenitori, tramite KEDA o tramite distribuzione diretta, è un'operazione open source che è possibile usare gratuitamente. Il supporto ottimale per questo scenario di hosting viene fornito solo dai collaboratori e dalla community. Sei responsabile della gestione dei contenitori delle funzioni app nel cluster, anche quando vengono distribuiti su Azure Kubernetes Service (AKS). |
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 | Sì | NO | Sì | Sì | NO |
Integrazione del portale di Funzioni | Sì | No | Sì | Sì | No |
Ridimensionamento basato su eventi | Sì5 | Sì (regole di scalabilità) | Sì | NO | NO |
Scala massima (istanze) | 10001 | 10001 | 1002 | 10-303 | Varia in base al cluster |
Istanze da ridimensionare a zero | Sì | Sì | 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 | Sì | No | No | No |
Slot di distribuzione | No | No | Sì | Sì | No |
Log di streaming | Sì | Sì | Sì | Sì | No |
Accesso alla console | Non attualmente disponibile4 | Sì | Sì (con Kudu) | Sì (con Kudu) | Sì (nei pod che usano kubectl ) |
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 | Sì | Sì | Sì | No |
Nomi di dominio personalizzati | Non attualmente disponibile4 | Sì | Sì | Sì | No |
Certificati di chiave privata | Non attualmente disponibile4 | Sì | Sì | Sì | No |
Reti virtuali | Sì | Sì | Sì | Sì | Sì |
Zone di disponibilità | Sì | Sì | Sì | Sì | Sì |
Diagnostica | Non attualmente disponibile4 | Sì | Sì | Sì | No |
Hardware dedicato | Sì (profili di carico di lavoro) | Sì (profili di carico di lavoro) | No | Sì | Sì |
GPU dedicate | Sì (profili di carico di lavoro) | Sì (profili di carico di lavoro) | No | NO | Sì |
Numero di memoria/CPU configurabile | Sì | Sì | NO | No | Sì |
Opzione "Concessione gratuita" | Sì | Sì | 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: limitato a caratteri alfanumerici e trattini. Non può iniziare con o terminare con un trattino. | Meno di 64 caratteri: limitato 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. |
- 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.
- In alcune aree, le app Linux in un piano Premium possono aumentare fino a 100 istanze. Per altre informazioni, vedere l'articolo Piano Premium.
- Per i limiti specifici per le varie opzioni del piano di servizio app, vedere Limiti del piano di servizio app.
- La parità delle funzionalità è l'obiettivo dell'hosting integrato nelle app Azure Container.
- 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.
- Quando il numero minimo di repliche è impostato su zero, il timeout predefinito dipende dai trigger specifici usati nell'app.
- 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.
- Richiede l'impostazione del piano di servizio app su Always On. È previsto un periodo di tolleranza di 10 minuti durante gli aggiornamenti della piattaforma.
Gestione di contenitori personalizzati
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.
Quando l'immagine di base viene gestita da Funzioni, ad esempio in una distribuzione standard in Linux, l'app viene aggiornata automaticamente dagli aggiornamenti regolari delle immagini di base rilasciati dal team di Funzioni. Per tali contenitori non personalizzati, la tua app viene aggiornata per funzionare sull'immagine di base che ha la nuova versione secondaria o la versione con patch del runtime dell'host.
Quando si crea o si distribuisce un'app in contenitori usando un'immagine personalizzata, si è responsabili di assicurarsi che l'immagine personalizzata rimane up-to-date con le immagini di base rilasciate. Oltre a nuove funzionalità e miglioramenti, questi aggiornamenti delle immagini di base possono includere anche gli aggiornamenti della sicurezza critici per la tua app. Per assicurarsi che l'app sia protetta, assicurati di rimanere aggiornata.
In alcuni casi, è necessario apportare modifiche a livello di piattaforma che potrebbero significare che un'app in un contenitore personalizzato che usa un'immagine di base precedente potrebbe smettere di funzionare correttamente. Per tali modifiche importanti, le immagini aggiornate vengono implementate in anticipo in modo che le app che eseseguono aggiornamenti regolari non siano interessate negativamente. Per evitare potenziali problemi con le tue app in esecuzione in contenitori personalizzati, assicurarsi di non rimanere troppo indietro con l'ultima versione minore rilasciata. Durante un caso di supporto, se determiniamo che la tua app sta riscontrando problemi perché si trova su una versione precedente o non supportata, ti chiediamo di aggiornare il contenitore all'ultima versione dell'immagine di base prima di proseguire con il supporto.
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 |