Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En funktionsapp körs på en specifik version av Azure Functions-körningen. Som standard skapar du funktionsappar i den senaste 4.x-versionen av Functions-körningen. Dina funktionsappar stöds endast när de körs på en huvudversion som stöds. Den här artikeln beskriver hur du konfigurerar en funktionsapp i Azure för att rikta in eller fästa vid en specifik version av Functions-runtime vid behov.
Överväganden
Tänk på följande när du riktar in dig på en viss körningsversion:
-
Flex Consumption-planen körs bara på version 4.x av runtime. Eftersom Flex Consumption-planen inte stöder appinställningen
FUNCTIONS_EXTENSION_VERSIONkan din app inte rikta in sig på en specifik körningsversion när den körs i den här planen. - Hur du riktar in dig på en viss version beror på om du kör Windows eller Linux.
- Den här artikeln är specifik för antingen Windows eller Linux. Välj ditt operativsystem överst i artikeln.
- När det är möjligt kör du alltid din app på den senaste körningsversionen som stöds. Fäst din app endast på en viss version om du uppmanas att göra det på grund av ett problem med den senaste versionen. Flytta alltid upp till den senaste körningsversionen så snart dina funktioner kan köras korrekt.
- Under den lokala utvecklingen måste den installerade versionen av Azure Functions Core Tools matcha den större körningsversion som används av funktionsappen i Azure. Mer information finns i Core Tools-versioner.
Uppdatera din runtime-version
När det är möjligt kör du alltid dina funktionsappar på den senaste versionen av Azure Functions-körningen som stöds. Om din funktionsapp för närvarande körs på en äldre version av runtime-miljön bör du migrera din app till version 4.x.
När appen har befintliga funktioner måste du vidta försiktighetsåtgärder innan du går över till en senare större körningsversion. Följande artiklar beskriver brytande ändringar mellan huvudversioner, inklusive språkspecifika brytande ändringar. De ger dig också stegvisa instruktioner för en lyckad migrering av din befintliga funktionsapp.
Om du vill avgöra din aktuella körningsversion, se Visa den aktuella körningsversionen.
Visa den aktuella runtime-versionen
Du kan visa den aktuella körningsversionen av funktionsappen på något av följande sätt:
Följ dessa steg om du vill visa och uppdatera körningsversionen som för närvarande används av en funktionsapp:
I Azure-portalen bläddrar du till din funktionsapp.
Expandera Inställningar och välj sedan Konfiguration.
På fliken Inställningar för funktionskörning noterar du Körningsversionen. I det här exemplet är versionen inställd på
~4.
Fäst på en specifik version
Med Azure Functions kan du använda appinställningen FUNCTIONS_EXTENSION_VERSION för att rikta in dig på körningsversionen som används av en viss funktionsapp. Om du bara anger huvudversionen (~4) uppdateras funktionsapp automatiskt till nya delversioner av körtid när de blir tillgängliga. Delversionsuppdateringar är automatiska eftersom nya delversioner sannolikt inte kommer att introducera ändringar som bryter dina funktioner.
Linux-appar använder platsinställningen linuxFxVersion tillsammans med FUNCTIONS_EXTENSION_VERSION för att fastställa rätt Linux-basavbildning där du kan köra dina funktioner. När du skapar en ny funktionsapp i Linux väljer körningen automatiskt rätt basavbildning för dig baserat på körningsversionen av språkstacken.
Om du låser till en specifik körversion startas funktionsappen om.
När du anger en specifik delversion (till exempel 4.0.12345) i FUNCTIONS_EXTENSION_VERSIONfäster du funktionsappen på den specifika versionen av körningen tills du uttryckligen väljer att gå tillbaka till automatiska versionsuppdateringar. Fäst bara på en viss delversion tillräckligt länge för att lösa eventuella problem med din funktionsapp som hindrar dig från att rikta in dig på huvudversionen. Äldre mindre versioner tas regelbundet bort från produktionsmiljön. När funktionsappen fästs på en delversion som senare tas bort körs funktionsappen på den närmaste befintliga versionen i stället för den version som anges i FUNCTIONS_EXTENSION_VERSION.
App Service-meddelanden meddelar mindre versionsborttagningar.
Kommentar
När du försöker publicera från Visual Studio till en app som är fäst på en viss delversion av körningen uppmanas du i en dialogruta att uppdatera till den senaste versionen eller avbryta publiceringen. Om du vill undvika den här kontrollen när du måste använda en viss delversion lägger du till <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> egenskapen i .csproj filen.
Använd någon av dessa metoder för att tillfälligt låsa appen till en viss version av körmiljön:
Följ dessa steg om du vill visa och uppdatera körningsversionen som för närvarande används av en funktionsapp:
I Azure-portalen bläddrar du till din funktionsapp.
Expandera Inställningar och välj sedan Konfiguration.
På fliken Inställningar för funktionskörning noterar du Körningsversionen. I det här exemplet är versionen inställd på
~4.
Om du vill fästa appen på en viss delversion expanderar du Inställningar i den vänstra rutan och väljer sedan Miljövariabler.
På fliken Appinställningar väljer du FUNCTIONS_EXTENSION_VERSION, ändrar Värde till den delversion som krävs och väljer sedan Använd.
Välj Använd och välj sedan Bekräfta för att tillämpa ändringarna och starta om appen.
Funktionsappen startas om efter att ändringen har gjorts i programinställningen.
Om du vill fästa funktionsappen på en specifik körningsversion i Linux anger du en versionsspecifik basavbildnings-URL i webbplatsinställningenlinuxFxVersion i formatet DOCKER|<PINNED_VERSION_IMAGE_URI>.
Viktigt!
Funktionsappar som är låsta på Linux får inte regelbundna uppdateringar av säkerhet och värdfunktionalitet. Om du inte rekommenderas av en supportpersonal använder du FUNCTIONS_EXTENSION_VERSION inställningen och ett standardvärde linuxFxVersion för ditt språk och din version, till exempel Python|3.12. Giltiga värden finns i referensartikelnlinuxFxVersion.
Det går för närvarande inte att fästa vid en viss körning för Linux-funktionsappar som körs i en förbrukningsplan.
I följande exempel visas det linuxFxVersion värde som krävs för att fästa en Node.js 22-funktionsapp på en specifik körningsversion av 4.14.0.3:
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22
När det behövs kan en supportpersonal ge dig en giltig basavbildnings-URI för ditt program.
Använd följande Azure CLI-kommandon för att visa och ange linuxFxVersion. Du kan för närvarande inte ange linuxFxVersion i portalen eller med hjälp av Azure PowerShell:
Om du vill visa den aktuella runtime-versionen använder du kommandot az functionapp config show:
az functionapp config show --name <function_app> \ --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsvI den här koden ersätter du
<function_app>med namnet på funktionsappen. Ersätt<my_resource_group>också med namnet på resursgruppen för funktionsappen. Det aktuella värdet förlinuxFxVersionreturneras.Om du vill uppdatera
linuxFxVersioninställningen i funktionsappen använder du kommandot az functionapp config set :az functionapp config set --name <FUNCTION_APP> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version <LINUX_FX_VERSION>Ersätt
<FUNCTION_APP>med namnet på funktionsappen. Ersätt<RESOURCE_GROUP>också med namnet på resursgruppen för funktionsappen. Ersätt slutligen<LINUX_FX_VERSION>med värdet för en specifik bild som tillhandahålls av en supportpersonal.
Du kan köra dessa kommandon från Azure Cloud Shell genom att välja Öppna Cloud Shell i föregående kodexempel. Du kan också använda Azure CLI lokalt för att köra det här kommandot när du az login har kört för att logga in.
Funktionsappen startas om när ändringen har gjorts i platskonfigurationen.
Uppdatera den hanterade Linux-bilden
Detta avsnitt gäller endast befintliga Python 3.11 och Java 8, 11 eller 17 appar på Linux Elastic Premium eller dedikerade (App Service)-planer som använder en Debian Bullseye-hanterad image. Om din app inte uppfyller alla dessa villkor behöver du inte följa denna procedur.
Den nyare hanterade bilden ger en tillfällig väg för en påverkad app att stanna kvar på sin nuvarande språkversion samtidigt som den flyttar till en stödd Linux-distribution. Denna procedur gäller inte för Flex Consumption eller anpassade containerappar. För en app i Linux Consumption-planen, migrera till Flex Consumption-planen.
Denna uppdatering väljer Linux-distributionen för den befintliga språkversionen genom att använda ett tredelat linuxFxVersion värde. Den fäster inte Functions-värden till en specifik DOCKER|<IMAGE_URI> bild.
Välj ett Bookworm- eller Noble-värde linuxFxVersion
Först, avgör om du kan uppdatera språkversionen eller om du behöver behålla den nuvarande språkversionen och välj en nyare Linux-distribution.
Överväg att uppdatera appen till en nyare språkversion som stöds. Efter en språkuppdatering använder appen den nuvarande standardhanterade avbilden för den språkversionen.
Om appen måste behålla sin nuvarande språkversion, välj motsvarande nyare bildvärde:
Språkversion värde för Debian Bullseye Nyare utbredning Nyare bildvärde Python 3.11 Python\|3.11\|2.0Debian Bookworm Python\|3.11\|3.0Java 8 Java\|8\|2.0Ubuntu Noble Java\|8\|4.0Java 11 Java\|11\|2.0Ubuntu Noble Java\|11\|4.0Java 17 Java\|17\|2.0Ubuntu Noble Java\|17\|4.0Dessa värden i tre delar anger uttryckligen den hanterade Linux-avbildningen för dessa avbildningar från Bullseye-eran. De returneras inte av kommandot
az functionapp list-runtimes.
Testa den nyare hanterade Linux-bilden
Testa din app och dess beroenden av den nyare bilden innan du uppdaterar produktionsappen.
Skapa en separat testapp eller skapa en distributionsplats.
Distribuera samma kod och konfiguration som din produktionsapp använder till testappen eller platsen.
Sätt det nyare bildvärdet genom att följa stegen i Uppdatera bildvärdet. När du använder en slot inkluderar du
--slot <SLOT_NAME>i varje Azure CLI-kommando.Starta varje funktion och kontrollera att appen startar framgångsrikt, att triggarna körs som förväntat och att native- eller operativsystemberoenden laddas korrekt.
Uppdatera bildvärdet
Att ändra bildvärdet startar om funktionsappen. Uppdatera produktionen under ett underhållsfönster, eller använd en distributionsplats.
Visa det aktuella
linuxFxVersionvärdet:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvDetta kommando returnerar värdet som lagrats i platskonfigurationen. Det returnerade värdet kan innehålla endast språket och språkversionen, såsom
Python|3.11, istället för det tredelade värdet som identifierar Linux-distributionen. Om värdet inte inkluderar bildversionen, följ stegen i Verifiera Linux-distributionen för att bekräfta att appen för närvarande använder Debian Bullseye.Sätt
linuxFxVersiontill det nyare bildvärdet:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"För Python 3.11 på Debian Bookworm, använd
Python|3.11|3.0. För Java på Ubuntu Noble, användJava|8|4.0,Java|11|4.0, ellerJava|17|4.0.Vänta på att appen ska starta om.
Verifiera Linux-distributionen
Verifiera både det konfigurerade värdet och Linux-distributionen som kör din app.
Bekräfta det uppdaterade
linuxFxVersionvärdet:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvEftersom du uttryckligen sätter ett tredelat värde, returnerar detta kommando exakt det Bookworm- eller Noble-värde du valde.
Öppna appens Kudu-sida på
https://<APP_NAME>.scm.azurewebsites.net.Välj Miljö och granska
KUDU_ENV, eller öppna en SSH-session och kör:cat /etc/os-releaseBekräfta att utdata identifierar Debian Bookworm för Python 3.11 eller Ubuntu Noble för Java 8, 11 eller 17.
Anropa varje funktion och bekräfta att triggers och beroenden fortsätter att fungera som förväntat.
Rulla tillbaka den hanterade Linux-avbildningsuppdateringen
Om den uppdaterade bilden orsakar kompatibilitetsproblem, återställ tillfälligt det tidigare linuxFxVersion värdet medan du åtgärdar problemet.
Varning
Debian Bullseye stöds inte längre efter dess slutgiltiga datum och får inga säkerhetsuppdateringar. Använd rollback endast som en tillfällig åtgärd och återgå till en stödd bild så snart som möjligt.
I tabellen Välj värdet Bookworm eller Noble
linuxFxVersionletar du reda på Debian Bullseye-värdet för din språkversion.Ställ in
linuxFxVersionpå det värdet för Bullseye:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"Vänta tills appen startar om, och upprepa sedan kontrollerna i Verifiera Linux-distributionen.