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. |
- 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.
- 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.
- Zie de limieten van het App Service-plan voor specifieke limieten voor de verschillende opties voor het App Service-plan.
- Functiepariteit is een doel van geïntegreerde hosting in Azure Container Apps.
- 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.
- 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.
- 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.
- 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) |