Delen via


Ondersteuning voor Linux-containers in Azure Functions

Wanneer u uw afzonderlijke functies plant en ontwikkelt om te worden uitgevoerd in Azure Functions, bent u doorgaans gericht op de code zelf. Met Azure Functions kunt u eenvoudig alleen uw codeproject implementeren in een functie-app in Azure. Wanneer u uw codeproject implementeert in een functie-app die wordt uitgevoerd in Linux, wordt het project uitgevoerd in een container die automatisch voor u wordt gemaakt. Deze container wordt beheerd door Functions.

Functions ondersteunt ook implementaties van functie-apps in containers. In een containerimplementatie maakt u uw eigen exemplaar van een functie-app in een lokale Docker-container op basis van een ondersteunde installatiekopieën. Vervolgens kunt u deze containerfunctie-app implementeren in een hostingomgeving in Azure. Door uw eigen functie-app-container te maken, kunt u de directe runtime-omgeving van uw functiecode aanpassen of op een andere manier beheren.

Belangrijk

Wanneer u uw eigen containers maakt, moet u de basisinstallatiekopieën van uw container bijwerken naar de meest recente ondersteunde basisinstallatiekopieën. Ondersteunde basisinstallatiekopieën voor Azure Functions zijn taalspecifiek en bevinden zich in de basisinstallatiekopieën van Azure Functions.

Het Functions-team zet zich in voor het publiceren van maandelijkse updates voor deze basisinstallatiekopieën. Regelmatige updates bevatten de meest recente secundaire versie-updates en beveiligingscorrecties voor zowel de Functions-runtime als de talen. Werk uw container regelmatig bij vanaf de meest recente basisinstallatiekopie en implementeer de bijgewerkte versie van uw container opnieuw.

Opties voor containerhosting

Er zijn verschillende opties voor het hosten van uw in containers geplaatste functie-apps in Azure:

Hostingoptie Vergoedingen
Azure Container Apps Azure Functions biedt geïntegreerde ondersteuning voor het ontwikkelen, implementeren en beheren van functie-apps in containers in Azure Container Apps. Hiermee kunt u uw apps beheren met dezelfde Functions-hulpprogramma's en -pagina's in Azure Portal. Gebruik Azure Container Apps om uw functie-app-containers te hosten wanneer u uw gebeurtenisgestuurde functies in Azure wilt uitvoeren in dezelfde omgeving als andere microservices, API's, websites, werkstromen of door containers gehoste programma's. Met Container Apps-hosting kunt u uw functies uitvoeren in een beheerde Kubernetes-omgeving met ingebouwde ondersteuning voor opensource-bewaking, mTLS, Dapr en KEDA. Biedt ondersteuning voor scale-to-zero en biedt een servless pay-for-what-you-use hostingmodel. U kunt ook toegewezen hardware, zelfs GPU's, aanvragen met behulp van workloadprofielen. Aanbevolen hostingoptie voor het uitvoeren van containerfunctie-apps in Azure.
Kubernetes-clusters met Azure Arc (preview) U kunt uw functie-apps hosten op Kubernetes-clusters met Azure Arc als een implementatie met alleen code of in een aangepaste Linux-container. Met Azure Arc kunt u Kubernetes-clusters koppelen, zodat u deze in Azure kunt beheren en configureren. Het hosten van Azure Functions-containers op Kubernetes-clusters met Azure Arc is momenteel in preview.
Azure Functions U kunt uw in containers geplaatste functie-apps hosten in Azure Functions door de container uit te voeren in een Elastic Premium-abonnement of een Dedicated-abonnement. Hosting van Premium-abonnementen biedt u de voordelen van dynamisch schalen. Mogelijk wilt u Dedicated-planhosting gebruiken om te profiteren van bestaande ongebruikte Resources van het App Service-plan.
Kubernetes Omdat de Azure Functions-runtime flexibiliteit biedt bij het hosten van waar en hoe u wilt, kunt u uw functie-app-containers rechtstreeks in Kubernetes-clusters hosten en beheren. KEDA (Op Kubernetes gebaseerde gebeurtenisgestuurde automatische schaalaanpassing) paren naadloos met de Azure Functions-runtime en hulpprogramma's om gebeurtenisgestuurde schaal in Kubernetes te bieden. Houd er rekening mee dat het uitvoeren van uw in containers geplaatste functie-apps in Kubernetes, hetzij door gebruik te maken van KEDA of door directe implementatie, een opensource-inspanning is die u gratis kunt gebruiken, met best effort-ondersteuning van inzenders en van de community. U bent verantwoordelijk voor het onderhouden van uw eigen functie-app-containers in een cluster, zelfs wanneer u implementeert in Azure Kubernetes Service (AKS).

Vergelijking van functieondersteuning

De mate waarin verschillende functies en gedragingen van Azure Functions worden ondersteund bij het uitvoeren van uw functie-app in een container, is afhankelijk van de optie voor het hosten van containers die u kiest.

Functie/gedrag Container Apps (geïntegreerd) Container Apps (direct) Premium-abonnement Toegewezen abonnement Kubernetes
Productondersteuning Ja No Ja Ja Nee
Integratie van de Functions-portal Ja Nee Ja Ja Nee
Gebeurtenisgestuurd schalen Ja5 Ja (regels schalen) Ja No Nr.
Maximale schaal (exemplaren) 10001  10001  1002  10-303  Verschilt per cluster
Exemplaren van schalen naar nul Ja Ja Nee Nr. KEDA
Uitvoeringstijdlimiet Niet-gebonden6 Niet-gebonden6 Niet-gebonden7 Niet-gebonden8 Geen
Core Tools-implementatie func azurecontainerapps Nee Nee Nr. func kubernetes 
Revisies Nee Ja Nee Nee Nee
Implementatiesites  Nee Nee Ja Ja Nee
Streaminglogboeken  Ja Ja  Ja Ja Nee
Consoletoegang  Momenteel niet beschikbaar4  Ja Ja (met Kudu) Ja (met Kudu) Ja (in pods met behulp van kubctl)
Beperking van koude start Minimale replica's Regels schalen  Altijd gereed/vooraf opgewarmde exemplaren  n.v.t. n.v.t
App Service-verificatie  Momenteel niet beschikbaar4  Ja Ja Ja Nee
Aangepaste domeinnamen  Momenteel niet beschikbaar4  Ja Ja Ja Nee
Certificaten voor persoonlijke sleutels  Momenteel niet beschikbaar4  Ja Ja Ja Nee
Virtuele netwerken Ja Ja Ja Ja Ja
Beschikbaarheidszones Ja Ja Ja Ja Ja
Diagnostiek Momenteel niet beschikbaar4  Ja Ja  Ja  Nee
Toegewezen hardware Ja (workloadprofielen) Ja (workloadprofielen) Nee Ja Ja
Toegewezen GPU's Ja (workloadprofielen) Ja (workloadprofielen) Nee Nr. Ja
Configureerbaar geheugen/CPU-aantal Ja Ja Nee Nee Ja
Optie Gratis toekenning Ja Ja No Nee Nr.
Prijsdetails Facturering voor Container Apps Facturering voor Container Apps Facturering van Premium-abonnement Facturering van toegewezen plannen AKS-prijzen
Vereisten voor servicenaam 2-32 tekens: beperkt tot kleine letters, cijfers en afbreekstreepjes. Moet beginnen met een letter en eindigen met een alfanumerieke teken. 2-32 tekens: beperkt tot kleine letters, cijfers en afbreekstreepjes. Moet beginnen met een letter en eindigen met een alfanumerieke teken. Minder dan 64 tekens: beperkt tot alfanumerieke tekens en afbreekstreepjes. Kan niet beginnen met of eindigen op een afbreekstreepje. Minder dan 64 tekens: beperkt tot alfanumerieke tekens en afbreekstreepjes. Kan niet beginnen met of eindigen op een afbreekstreepje. Minder dan 253 tekens: beperkt tot alfanumerieke tekens en afbreekstreepjes. Moet beginnen en eindigen met een alfanumerieke teken.
  1. In Container Apps is de standaardwaarde 10 exemplaren, maar u kunt het maximum aantal replica's instellen, met een totaal maximum van 1000. Deze instelling wordt gehonoreerd zolang er voldoende kerngeheugenquotum beschikbaar is. Wanneer u uw functie-app maakt vanuit Azure Portal, bent u beperkt tot 300 exemplaren.
  2. In sommige regio's kunnen Linux-apps in een Premium-abonnement worden geschaald naar 100 exemplaren. Zie het artikel over het Premium-abonnement voor meer informatie.
  3. Zie de limieten van het App Service-plan voor specifieke limieten voor de verschillende opties voor het App Service-plan.
  4. Functiepariteit is een doel van geïntegreerde hosting in Azure Container Apps.
  5. Vereist KEDA; ondersteund door de meeste triggers. Zie Overwegingen voor het hosten van Container Apps voor informatie over welke triggers ondersteuning bieden voor gebeurtenisgestuurd schalen.
  6. Wanneer het minimale aantal replica's is ingesteld op nul, is de standaardtime-out afhankelijk van de specifieke triggers die in de app worden gebruikt.
  7. Er is geen maximale time-outduur voor uitvoering afgedwongen. De respijtperiode die aan een functie-uitvoering wordt gegeven, is echter 60 minuten tijdens het inschalen en er wordt een respijtperiode van 10 minuten gegeven tijdens platformupdates.
  8. Vereist dat het App Service-plan is ingesteld op AlwaysOn. Er wordt een respijtperiode van 10 minuten gegeven tijdens platformupdates.

Aan de slag

Gebruik deze koppelingen om aan de slag te gaan met Azure Functions in Linux-containers:

Ik wil... Zie het artikel:
Mijn eerste containerfuncties maken Een functie-app maken in een lokale Linux-container
Functies maken en implementeren in Azure Container Apps Uw eerste containerfuncties maken in Azure Container Apps
Containerfuncties maken en implementeren in Azure Functions Uw eerste in een container geplaatste Azure Functions maken
Functies maken en implementeren in Kubernetes met Azure Arc Uw eerste in containers geplaatste Azure Functions maken in Azure Arc (preview)