Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 project implementeert in een Linux-functie-app, wordt uw code uitgevoerd in een container die automatisch voor u wordt gemaakt en naadloos kan worden geïntegreerd met functions-beheerhulpprogramma's.
Functions ondersteunt ook implementaties van functie-apps in containers. In een containergebaseerde implementatie maakt u uw eigen exemplaar van een function-app in een lokale Docker-container op basis van een ondersteunde basisimage. 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.
Important
Wanneer u uw eigen containers maakt, moet u de basisafbeelding van uw container bijwerken naar de meest recente ondersteunde basisafbeelding. Ondersteunde basisinstallatiekopieën voor Azure Functions zijn taalspecifiek. Zie de basisimage-repositories van Azure Functions.
Het Functions-team zet zich in voor het publiceren van maandelijkse updates voor deze basisbeelden. 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. Zie Aangepaste containers onderhouden voor meer informatie.
Opties voor containerhosting
Er zijn verschillende opties voor het hosten van uw in containers geplaatste functie-apps in Azure:
Hostingoptie | Benefits |
---|---|
Azure Container Apps | Azure Functions biedt geïntegreerde ondersteuning voor het ontwikkelen, implementeren en beheren van functie-apps in containers in Azure Container Apps. Met deze integratie kunt u uw apps beheren met dezelfde Functions-hulpprogramma's en -pagina's in Azure Portal. Gebruik Azure Container Apps om uw container voor uw functie-app te hosten in dezelfde omgeving als andere microservices, API's, websites, werkstromen of andere 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 serverloze pay-for-what-you-use hostingmodel. U kunt ook toegewezen hardware, zelfs GPU's, aanvragen met behulp van workloadprofielen. Aanbevolen hostingoptie voor containerfunctie-apps n Azure. |
Azure Arc-ingeschakelde Kubernetes-clusters (voorvertoning) | 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. Zie Werken met containers en Azure Functions voor meer informatie. |
Azure Functions | U kunt uw in containers geplaatste functie-apps hosten in Azure Functions door de container uit te voeren in een Elastic Premium- of Een App Service-abonnement (Dedicated). Gebruik Container Apps-hosting voor uitgebreide containerondersteuning van Container Apps. Hosting van Premium-abonnementen biedt u de voordelen van dynamisch schalen. U kunt overwegen een dedicated hostingplan te gebruiken om te profiteren van de bestaande, ongebruikte middelen 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. Belangrijk: Kubernetes die als host fungeert voor uw functie-apps in containers, hetzij met behulp van KEDA of door directe implementatie, is een opensource-inspanning die u gratis kunt gebruiken. Ondersteuning voor best effort voor dit hostingscenario wordt alleen aangeboden door inzenders en door de community. U bent verantwoordelijk voor het onderhouden van uw eigen functie-app-containers in een cluster, zelfs wanneer u ze 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.
Feature/behavior | Container Apps (geïntegreerd) | Container Apps (direct) | Premium-abonnement | Toegewezen abonnement | Kubernetes |
---|---|---|---|---|---|
Productondersteuning | Yes | No | Yes | Yes | No |
Integratie van de Functions-portal | No | No | Yes | Yes | No |
Gebeurtenisgestuurd schalen | Yes5 | Ja (schaalregels) | Yes | No | No |
Maximale schaal (instanties) | 10001 | 10001 | 1002 | 10-303 | Verschilt per cluster |
Instanties schalen tot nul | Yes | Yes | No | No | KEDA |
Uitvoeringstijdlimiet | Unbounded6 | Unbounded6 | Unbounded7 | Unbounded8 | None |
Core Tools-implementatie | No | No | No | No | func kubernetes |
Revisions | Yes | Yes | No | No | No |
Implementatiesites | No | No | Yes | Yes | No |
Streaming-logboeken | Yes | Yes | Yes | Yes | No |
Consoletoegang | Yes | Yes | Ja (met Kudu) | Ja (met Kudu) | Ja (in pods met behulp van kubectl ) |
Beperking van koude start | Minimale replica's | Schaalregels | Altijd gereed/vooraf opgewarmde exemplaren | n/a | n/a |
App Service-verificatie | Yes | Yes | Yes | Yes | No |
Aangepaste domeinnamen | Yes | Yes | Yes | Yes | No |
Certificaten voor persoonlijke sleutels | Yes | Yes | Yes | Yes | No |
Virtuele netwerken | Yes | Yes | Yes | Yes | Yes |
Beschikbaarheidszones | Yes | Yes | Yes | Yes | Yes |
Diagnostics | Yes | Yes | Yes | Yes | No |
Toegewezen hardware | Ja (workloadprofielen) | Ja (workloadprofielen) | No | Yes | Yes |
Toegewezen GPU's | Ja (workloadprofielen) | Ja (workloadprofielen) | No | No | Yes |
Configureerbaar geheugen/CPU-aantal | Yes | Yes | No | No | Yes |
Optie Gratis toekenning | Yes | Yes | No | No | No |
Prijsinformatie | Facturering voor Container Apps | Facturering voor Container Apps | Facturering van Premium-abonnement | Facturering van specifieke 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 streepje. | Minder dan 64 tekens: beperkt tot alfanumerieke tekens en afbreekstreepjes. Kan niet beginnen met of eindigen op een streepje. | 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 kernquotum beschikbaar is. Wanneer u uw functie-app maakt vanuit Azure Portal, bent u beperkt tot 300 exemplaren.
- In sommige regio's kunnen Linux-apps op een Premium-abonnement worden geschaald naar 100 exemplaren. Zie het artikel over het Premium-abonnement voor meer informatie.
- Zie de App Service-planlimieten voor specifieke limieten voor de verschillende opties van het App Service-plan.
- 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. Tijdens platformupdates wordt er een respijtperiode van 10 minuten gegeven.
Aangepaste containers onderhouden
Wanneer u uw eigen containers maakt, moet u de basisimage van uw container bijwerken naar de meest recente ondersteunde basisimage. Ondersteunde basisafbeeldingen voor Azure Functions zijn taalspecifiek en bevinden zich in de basisafbeeldingsopslagplaatsen van Azure Functions.
Het Functions-team zet zich in voor het publiceren van maandelijkse updates voor deze basisbeelden. 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.
Kies uw basisimage op basis van de taalstack die u gebruikt in uw function app. De volgende tabel bevat voorbeelden voor elke stack. Over het algemeen moet de tag beginnen met 4-
om de V4 Functions-runtime aan te geven. Wanneer er nieuwe secundaire versies worden uitgebracht, wordt deze tag bijgewerkt zodat deze verwijst naar de nieuwe versie. Wanneer u uw aangepaste installatiekopie periodiek opnieuw bouwt, haalt u de nieuwe versies via dezelfde tag op, zodat uw app dezelfde updates kan hebben. Gebruik geen tags die secundaire runtimeversies opgeven, omdat deze geen updates ontvangen en uw app mogelijk een niet-gepatchte versie blijft gebruiken, ongeacht hoe vaak u uw aangepaste installatiekopieën opnieuw bouwt.
Taalstack | Voorbeeld van aanbevolen basisafbeeldingstags |
---|---|
.NET (geïsoleerd werkmodel) |
mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0 ofmcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0-appservice (Deze voorbeelden zijn gericht op .NET 8. Selecteer de juiste installatiekopieën voor de .NET-versie die u nodig hebt.) |
.NET (verouderd in-procesmodel) |
mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0 ofmcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0-appservice (Ondersteuning eindigt op 10 november 2026 voor het in-process model. U moet zo snel mogelijk migreren naar het geïsoleerde werkrolmodel .) |
Java |
mcr.microsoft.com/azure-functions/java:4-java21 ofmcr.microsoft.com/azure-functions/java:4-java21-appservice (Deze voorbeelden zijn gericht op Java 21. Selecteer de juiste installatiekopieën voor de Java-versie die u nodig hebt.) |
Node.js (JavaScript of TypeScript) |
mcr.microsoft.com/azure-functions/node:4-node22 ofmcr.microsoft.com/azure-functions/node:4-node22-appservice (Deze voorbeelden zijn voor Node.js 22. Selecteer de juiste afbeelding van de Node.js versie die u nodig hebt.) |
PowerShell |
mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 ofmcr.microsoft.com/azure-functions/powershell:4-powershell7.4-appservice (Deze voorbeelden zijn bedoeld voor PowerShell 7.4. Selecteer de juiste installatiekopieën voor de PowerShell-versie die u nodig hebt.) |
Python |
mcr.microsoft.com/azure-functions/python:4-python3.12 ofmcr.microsoft.com/azure-functions/python:4-python3.12-appservice (Deze voorbeelden zijn bedoeld voor Python 3.12. Selecteer de juiste afbeelding voor de Python-versie die u nodig hebt.) |
Aangepaste handlers/andere |
mcr.microsoft.com/azure-functions/base:4 ofmcr.microsoft.com/azure-functions/base:4-appservice |
Basisafbeeldingen die eindigen op -appservice
maken het mogelijk om SSH en externe debugging vanaf het platform in te schakelen. Tenzij u deze mogelijkheden nodig hebt, kunt u de basisafbeeldingen zonder het -appservice
achtervoegsel gebruiken.
Important
Het is niet voldoende om slechts een van de bovenstaande tags in uw Dockerfile te hebben. U moet regelmatig de meest recente image uit die tag ophalen, zodat uw aangepaste image opnieuw kan worden opgebouwd en de nieuwste updates kan bevatten. Als u de meest recente installatiekopie niet ophaalt en opnieuw bouwt, blijft uw app worden uitgevoerd op de oude basisinstallatiekopie.
Wanneer u uw eigen container-app maakt of implementeert met behulp van een aangepaste installatiekopieën, moet u ervoor zorgen dat uw aangepaste installatiekopieën up-to-date blijven met onze uitgebrachte basisinstallatiekopieën. Naast nieuwe functies en verbeteringen kunnen deze updates voor basisinstallatiekopieën ook beveiligingsupdates bevatten die essentieel zijn voor uw app. Zorg ervoor dat u up-to-date blijft om ervoor te zorgen dat uw app is beveiligd. U moet regelmatig de nieuwste versie van de basisinstallatiekopie ophalen, de aangepaste containerinstallatiekopie opnieuw bouwen en uw app opnieuw implementeren om deze te gebruiken.
In sommige gevallen moeten we wijzigingen op platformniveau aanbrengen die kunnen betekenen dat een app in een aangepaste container met behulp van een oude basisinstallatiekopieën mogelijk niet meer goed werkt. Voor dergelijke belangrijke wijzigingen implementeren we bijgewerkte installatiekopieën ruim van tevoren, zodat apps die regelmatig updates uitvoeren, niet negatief worden beïnvloed. Als u potentiële problemen wilt voorkomen met uw apps die worden uitgevoerd in aangepaste containers, moet u ervoor zorgen dat u niet te ver achterloopt op de meest recente secundaire versie die is uitgebracht. Als we tijdens een ondersteuningsaanvraag vaststellen dat uw app problemen ondervindt omdat deze zich in een oudere of niet-ondersteunde versie bevindt, wordt u wel verzocht uw container bij te werken naar de nieuwste versie van de basisinstallatiekopieën voordat u verdergaat met ondersteuning.
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 |