Stöd för Linux-container i Azure Functions
När du planerar och utvecklar dina enskilda funktioner som ska köras i Azure Functions fokuserar du vanligtvis på själva koden. Azure Functions gör det enkelt att bara distribuera kodprojektet till en funktionsapp i Azure. När du distribuerar kodprojektet till en funktionsapp som körs på Linux körs projektet i en container som skapas automatiskt. Den här containern hanteras av Functions.
Functions stöder även distribution av containerbaserade funktionsappar. I en containerbaserad distribution skapar du en egen funktionsappinstans i en lokal Docker-container från en baserad avbildning som stöds. Du kan sedan distribuera den här containerbaserade funktionsappen till en värdmiljö i Azure. Genom att skapa en egen container för funktionsappen kan du anpassa eller på annat sätt styra den omedelbara körningsmiljön för din funktionskod.
Viktigt!
När du skapar egna containrar måste du hålla basavbildningen av containern uppdaterad till den senaste basavbildningen som stöds. Basavbildningar som stöds för Azure Functions är språkspecifika och finns i basavbildningslagringarna för Azure Functions.
Functions-teamet har åtagit sig att publicera månatliga uppdateringar för dessa basavbildningar. Regelbundna uppdateringar omfattar de senaste delversionsuppdateringarna och säkerhetskorrigeringarna för både Functions-körningen och språken. Du bör regelbundet uppdatera containern från den senaste basavbildningen och distribuera om den uppdaterade versionen av containern.
Värdalternativ för containrar
Det finns flera alternativ för att vara värd för dina containerbaserade funktionsappar i Azure:
Värdalternativ | Förmåner |
---|---|
Azure Container Apps | Azure Functions ger integrerat stöd för att utveckla, distribuera och hantera containerbaserade funktionsappar i Azure Container Apps. På så sätt kan du hantera dina appar med samma Functions-verktyg och -sidor i Azure Portal. Använd Azure Container Apps för att vara värd för dina funktionsappcontainrar när du behöver köra dina händelsedrivna funktioner i Azure i samma miljö som andra mikrotjänster, API:er, webbplatser, arbetsflöden eller alla värdbaserade containerprogram. Med Container Apps-värd kan du köra dina funktioner i en hanterad Kubernetes-baserad miljö med inbyggt stöd för övervakning med öppen källkod, mTLS, Dapr och KEDA. Stöder skalning till noll och tillhandahåller en servless pay-for-what-you-use-värdmodell. Du kan också begära dedikerad maskinvara, även GPU:er, med hjälp av arbetsbelastningsprofiler. Rekommenderat värdalternativ för att köra containerbaserade funktionsappar i Azure. |
Azure Arc-aktiverade Kubernetes-kluster (förhandsversion) | Du kan vara värd för dina funktionsappar i Azure Arc-aktiverade Kubernetes-kluster som antingen en kodbaserad distribution eller i en anpassad Linux-container. Med Azure Arc kan du koppla Kubernetes-kluster så att du kan hantera och konfigurera dem i Azure. Att vara värd för Azure Functions-containrar i Azure Arc-aktiverade Kubernetes-kluster är för närvarande i förhandsversion. |
Azure Functions | Du kan vara värd för dina containerbaserade funktionsappar i Azure Functions genom att köra containern i antingen en Elastic Premium-plan eller en dedikerad plan. Premium-planvärdar ger dig fördelarna med dynamisk skalning. Du kanske vill använda Dedikerad planvärd för att dra nytta av befintliga oanvända App Service-planresurser. |
Kubernetes | Eftersom Azure Functions-körningen ger flexibilitet när det gäller att vara värd för var och hur du vill kan du vara värd för och hantera dina funktionsappcontainrar direkt i Kubernetes-kluster. KEDA (Kubernetes-baserad händelsedriven autoskalning) parar sömlöst med Azure Functions-körningen och verktygen för att tillhandahålla händelsedriven skalning i Kubernetes. Tänk bara på att köra dina containerbaserade funktionsappar på Kubernetes, antingen med hjälp av KEDA eller genom direkt distribution, är en insats med öppen källkod som du kan använda utan kostnad, med bästa möjliga support från deltagare och från communityn. Du ansvarar för att underhålla dina egna funktionsappcontainrar i ett kluster, även när du distribuerar till Azure Kubernetes Service (AKS). |
Jämförelse av funktionsstöd
I vilken utsträckning olika funktioner och beteenden i Azure Functions stöds när du kör funktionsappen i en container beror på vilket värdalternativ för containrar du väljer.
Funktion/beteende | Container Apps (integrerade) | Container Apps (direkt) | Premium-plan | Dedikerad plan | Kubernetes |
---|---|---|---|---|---|
Produktsupport | Ja | No | Ja | Ja | Nej |
Integrering av Functions-portalen | Ja | Nej | Ja | Ja | Nej |
Händelsedriven skalning | Ja5 | Ja (skalningsregler) | Ja | Nej | Nej |
Maximal skala (instanser) | 10001 | 10001 | 1002 | 10-303 | Varierar beroende på kluster |
Skala till noll-instanser | Ja | Ja | Nej | Nej | KEDA |
Tidsgräns för körning | Obundna6 | Obundna6 | Obundna7 | Obundna8 | Ingen |
Core Tools-distribution | func azurecontainerapps |
Nej | Nej | Nej | func kubernetes |
Revideringar | Nej | Ja | Nej | Nej | Nej |
Distributionsplatser | Nej | Nej | Ja | Ja | Nej |
Direktuppspelningsloggar | Ja | Ja | Ja | Ja | Nej |
Konsolåtkomst | Inte tillgängligför närvarande 4 | Ja | Ja (med Kudu) | Ja (med Kudu) | Ja (i poddar med )kubctl |
Minskning av kallstart | Minsta antal repliker | Skalningsregler | Alltid redo/förvärmda instanser | saknas | n/a |
App Service-autentisering | Inte tillgängligför närvarande 4 | Ja | Ja | Ja | Nej |
Egna domännamn | Inte tillgängligför närvarande 4 | Ja | Ja | Ja | Nej |
Certifikat för privat nyckel | Inte tillgängligför närvarande 4 | Ja | Ja | Ja | Nej |
Virtuella nätverk | Ja | Ja | Ja | Ja | Ja |
Tillgänglighetszoner | Ja | Ja | Ja | Ja | Ja |
Diagnostik | Inte tillgängligför närvarande 4 | Ja | Ja | Ja | Nej |
Dedikerad maskinvara | Ja (arbetsbelastningsprofiler) | Ja (arbetsbelastningsprofiler) | Nej | Ja | Ja |
Dedikerade GPU:er | Ja (arbetsbelastningsprofiler) | Ja (arbetsbelastningsprofiler) | Nej | Nej | Ja |
Konfigurerbart minne/CPU-antal | Ja | Ja | Nej | Nej | Ja |
Alternativet "Kostnadsfri beviljande" | Ja | Ja | Nej | Nej | Nej |
Prisinformation | Fakturering för Container Apps | Fakturering för Container Apps | Fakturering av Premium-plan | Fakturering av dedikerad plan | AKS-priser |
Krav för tjänstnamn | 2–32 tecken: begränsat till gemener, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. | 2–32 tecken: begränsat till gemener, siffror och bindestreck. Måste börja med en bokstav och sluta med ett alfanumeriskt tecken. | Mindre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. | Mindre än 64 tecken: begränsat till alfanumeriska tecken och bindestreck. Det går inte att börja med eller sluta med ett bindestreck. | Mindre än 253 tecken: begränsat till alfanumeriska tecken och bindestreck. Måste börja och sluta med ett alfanumeriskt tecken. |
- I Container Apps är standardvärdet 10 instanser, men du kan ange det maximala antalet repliker, som totalt har högst 1 000. Den här inställningen respekteras så länge det finns tillräckligt med tillgängliga kärnor. När du skapar din funktionsapp från Azure Portal är du begränsad till 300 instanser.
- I vissa regioner kan Linux-appar på en Premium-plan skalas till 100 instanser. Mer information finns i artikeln premiumplan.
- Specifika gränser för de olika App Service-planalternativen finns i Gränserna för App Service-planen.
- Funktionsparitet är ett mål för integrerad värd på Azure Container Apps.
- Kräver KEDA, som stöds av de flesta utlösare. Information om vilka utlösare som stöder händelsedriven skalning finns i Överväganden för värdtjänster för Container Apps.
- När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.
- Tidsgränsen för maximal körning har inte tillämpats. Respitperioden som ges till en funktionskörning är dock 60 minuter under inskalning och en respitperiod på 10 minuter ges under plattformsuppdateringar.
- Kräver att App Service-planen är inställd på AlwaysOn. En respitperiod på 10 minuter ges under plattformsuppdateringar.
Komma igång
Använd dessa länkar för att komma igång med Azure Functions i Linux-containrar:
Jag vill... | Se artikel: |
---|---|
Skapa mina första containerbaserade funktioner | Skapa en funktionsapp i en lokal Linux-container |
Skapa och distribuera funktioner till Azure Container Apps | Skapa dina första containerbaserade funktioner i Azure Container Apps |
Skapa och distribuera containerbaserade funktioner till Azure Functions | Skapa dina första containerbaserade Azure Functions |
Skapa och distribuera funktioner till Azure Arc-aktiverade Kubernetes | Skapa dina första containerbaserade Azure Functions på Azure Arc (förhandsversion) |