Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace funkcí běží na konkrétní verzi modulu runtime Azure Functions. Ve výchozím nastavení vytvoříte aplikace funkcí v nejnovější verzi modulu runtime Functions 4.x. Vaše aplikace funkcí se podporují jenom v případech, kdy běží na podporované hlavní verzi. Tento článek vysvětluje, jak nakonfigurovat aplikaci funkcí v Azure tak, aby v případě potřeby cílila nebo připnula na konkrétní verzi modulu runtime Functions.
Úvahy
Při cílení na konkrétní verzi modulu runtime mějte na paměti tyto aspekty:
-
Plán Flex Consumption běží pouze na verzi 4.x modulu runtime. Vzhledem k tomu, že plán Flex Consumption nepodporuje nastavení aplikace
FUNCTIONS_EXTENSION_VERSION, nemůže vaše aplikace při běhu v tomto plánu cílit na konkrétní verzi runtime. - Způsob, jakým cílíte na konkrétní verzi, závisí na tom, jestli používáte Windows nebo Linux.
- Tento článek je specifický pro Windows nebo Linux. V horní části článku vyberte svůj operační systém.
- Pokud je to možné, vždy spusťte aplikaci na nejnovější podporované verzi modulu runtime. Připněte aplikaci na konkrétní verzi jenom v případě, že máte pokyn, abyste to udělali kvůli problému s nejnovější verzí. Vždy přejděte až k nejnovější verzi modulu runtime, jakmile vaše funkce můžou běžet správně.
- Během místního vývoje musí nainstalovaná verze nástrojů Azure Functions Core Tools odpovídat hlavní verzi modulu runtime používané aplikací funkcí v Azure. Další informace najdete v tématu Verze nástrojů Core Tools.
Aktualizace verze modulu runtime
Pokud je to možné, vždy spouštět aplikace funkcí na nejnovější podporované verzi modulu runtime Azure Functions. Pokud je vaše aplikace funkcí aktuálně spuštěná ve starší verzi modulu runtime, migrujte aplikaci na verzi 4.x.
Pokud má vaše aplikace existující funkce, musíte před přechodem na novější hlavní verzi modulu runtime provést preventivní opatření. Následující články popisují zásadní změny mezi hlavními verzemi, včetně zásadních změn specifických pro jednotlivé jazyky. Poskytují také podrobné pokyny pro úspěšnou migraci vaší stávající aplikace funkcí.
Pokud chcete zjistit aktuální verzi modulu runtime, přečtěte si téma Zobrazení aktuální verze modulu runtime.
Zobrazení aktuální verze modulu runtime
Aktuálně používanou verzi modulu runtime vaší aplikace funkcí můžete zobrazit některým z těchto způsobů:
Pokud chcete zobrazit a aktualizovat verzi modulu runtime, kterou aktuálně používá aplikace funkcí, postupujte takto:
Na webu Azure Portal přejděte do aplikace funkcí.
Rozbalte nastavení a pak vyberte Konfigurace.
Na kartě Nastavení modulu runtime funkce si poznamenejte Verzi modulu runtime. V tomto příkladu je verze nastavena na
~4.
Připnout ke konkrétní verzi
Azure Functions umožňuje použít nastavení aplikace FUNCTIONS_EXTENSION_VERSION k určení verze běhového prostředí používané konkrétní aplikací funkcí. Pokud zadáte jenom hlavní verzi (~4), aplikace funkcí se automaticky aktualizuje na nové podverze modulu runtime, jakmile budou dostupné. Aktualizace podverzí jsou automatické, protože nové podverze pravděpodobně nezavádějí změny, které by přerušily vaše funkce.
Aplikace pro Linux používají linuxFxVersion nastavení webu spolu s FUNCTIONS_EXTENSION_VERSION určením správné základní image Linuxu, ve které se mají spouštět funkce. Při vytváření nové aplikace funkcí v Linuxu modul runtime automaticky zvolí správnou základní image na základě verze modulu runtime vašeho zásobníku jazyků.
Připnutí na konkrétní verzi modulu runtime restartuje vaši funkci aplikace.
Když zadáte konkrétní podverzi (například 4.0.12345) v FUNCTIONS_EXTENSION_VERSION, připnete aplikaci funkcí na tuto konkrétní verzi modulu runtime, dokud se explicitně nerozhodnete přejít zpět na automatické aktualizace verzí. Připněte si určitou podverzi pouze na nezbytně dlouhou dobu, abyste vyřešili všechny problémy s vaší aplikací funkcí, které vám brání v cílení na hlavní verzi. Starší vedlejší verze jsou z produkčního prostředí pravidelně odstraňovány. Když je vaše funkční aplikace připnutá k podverzi, která se později odebere, běží na nejbližší dostupnou verzi místo verze, která byla původně nastavena v FUNCTIONS_EXTENSION_VERSION.
Oznámení služby App Service oznamují odebrání menší verze.
Poznámka:
Když se pokusíte publikovat ze sady Visual Studio do aplikace, která je připnutá ke konkrétní podverzi modulu runtime, zobrazí se dialogové okno s výzvou k aktualizaci na nejnovější verzi nebo zrušení publikování. Pokud se chcete této kontrole vyhnout a musíte použít konkrétní dílčí verzi, přidejte vlastnost <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> do souboru .csproj.
K dočasnému připnutí aplikace na konkrétní verzi modulu runtime použijte jednu z těchto metod:
Pokud chcete zobrazit a aktualizovat verzi modulu runtime, kterou aktuálně používá aplikace funkcí, postupujte takto:
Na webu Azure Portal přejděte do aplikace funkcí.
Rozbalte nastavení a pak vyberte Konfigurace.
Na kartě Nastavení modulu runtime funkce si poznamenejte Verzi modulu runtime. V tomto příkladu je verze nastavena na
~4.
Pokud chcete aplikaci připnout ke konkrétní podverzi, rozbalte v levém podokně možnost Nastavení a potom vyberte Proměnné prostředí.
Na kartě Nastavení aplikace vyberte FUNCTIONS_EXTENSION_VERSION, změňte hodnotu na požadovanou podverzi a pak vyberte Použít.
Vyberte Použít a pak vyberte Potvrdit , aby se změny použily, a restartujte aplikaci.
Aplikace funkcí se restartuje po provedení změny nastavení aplikace.
Pokud chcete aplikaci funkcí připnout na konkrétní verzi modulu runtime v Linuxu, nastavte adresu URL základní image specifickou pro verzi v linuxFxVersion nastavení webu ve formátu DOCKER|<PINNED_VERSION_IMAGE_URI>.
Důležité
Aplikace funkcí v Linuxu připnuté ke konkrétní verzi nedostávají pravidelné aktualizace zabezpečení ani aktualizace funkcí hostitele. Pokud ji nedoporučuje pracovník podpory, použijte FUNCTIONS_EXTENSION_VERSION nastavení a standardní linuxFxVersion hodnotu pro váš jazyk a verzi, například Python|3.12. Platné hodnoty najdete v referenčním linuxFxVersion článku.
Připnutí na konkrétní modul runtime se v současné době nepodporuje pro aplikace funkcí linuxu spuštěné v plánu Consumption.
Následující příklad ukazuje hodnotu linuxFxVersion, která je potřebná k připnutí aplikace funkcí pro Node.js 22 ke konkrétní verzi modulu runtime 4.14.0.3:
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22
V případě potřeby vám může pracovník podpory poskytnout platný identifikátor URI základní image pro vaši aplikaci.
Pomocí následujících příkazů Azure CLI zobrazte a nastavte linuxFxVersion. Aktuálně nemůžete nastavit linuxFxVersion na portálu nebo pomocí Azure PowerShellu:
Pokud chcete zobrazit aktuální verzi modulu runtime, použijte příkaz az functionapp config show :
az functionapp config show --name <function_app> \ --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsvV tomto kódu nahraďte
<function_app>názvem vaší aplikace funkcí. Také nahraďte<my_resource_group>názvem skupiny prostředků pro vaši aplikaci funkcí. Vrátí se aktuální hodnotalinuxFxVersion.Pokud chcete aktualizovat nastavení
linuxFxVersionve funkční aplikaci, použijte příkaz az functionapp config set:az functionapp config set --name <FUNCTION_APP> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version <LINUX_FX_VERSION>Nahraďte
<FUNCTION_APP>názvem vaší Function App. Také nahraďte<RESOURCE_GROUP>názvem skupiny prostředků pro vaši aplikaci funkcí. Nakonec nahraďte<LINUX_FX_VERSION>hodnotou konkrétního obrázku poskytnutého pracovníkem podpory.
Tyto příkazy můžete spustit z Azure Cloud Shellutak, že v předchozích příkladech kódu zvolíte Open Cloud Shell. Tento příkaz můžete spustit také místně pomocí Azure CLI po spuštění az login a přihlásit se.
Aplikace funkcí se restartuje po provedení změny konfigurace webu.
Aktualizujte spravovaný obraz Linuxu
Tato sekce se vztahuje pouze na existující aplikace Python 3.11 a Java 8, 11 nebo 17 na plánech Linux Elastic Premium nebo Dedicated (App Service), které používají spravovaný obraz Debian Bullseye. Pokud vaše aplikace nesplňuje všechny tyto podmínky, nemusíte se tímto postupem řídit.
Novější spravovaný obraz poskytuje dočasnou cestu, jak může postižená aplikace zůstat na své aktuální jazykové verzi a zároveň přejít na podporovanou linuxovou distribuci. Tento postup se nevztahuje na Flex Consumption ani na aplikace s vlastními kontejnery. Pro aplikaci na plánu Linux Consumption přejděte na tarif Flex Consumption.
Tato aktualizace vybírá linuxovou distribuci pro stávající jazykovou verzi pomocí tříčlenné hodnoty linuxFxVersion . Nepřipíná hostitele Functions ke konkrétnímu DOCKER|<IMAGE_URI> obrázku.
Vyberte hodnotu „Bookworm“ nebo „Noble“ linuxFxVersion
Nejprve zjistěte, zda můžete aktualizovat jazykovou verzi, nebo je potřeba zachovat současnou jazykovou verzi a vybrat novější linuxovou distribuci.
Zvažte aktualizaci aplikace na novější podporovanou jazykovou verzi. Po jazykové aktualizaci aplikace používá aktuální výchozí spravovaný obraz pro danou jazykovou verzi.
Pokud musí aplikace zůstat na aktuální jazykové verzi, zvolte odpovídající hodnotu novějšího obrázku:
Jazyková verze Hodnota Debianu Bullseye Novější distribuce Novější hodnota obrazu 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.0Tyto třísložkové hodnoty výslovně určují spravovaný obraz systému Linux pro tyto obrazy z éry Bullseye. Nevrací je příkaz
az functionapp list-runtimes.
Otestujte novější spravovaný obraz Linuxu
Před aktualizací produkční aplikace otestujte svou aplikaci a její závislosti na novějším obrazu.
Vytvořte samostatnou testovací aplikaci nebo vytvořte slot pro nasazení.
Nasazujte stejný kód a konfiguraci, jakou používá vaše produkční aplikace, do testovací aplikace nebo slotu.
Nastavte hodnotu novějšího obrázku podle kroků v Aktualizovat hodnotu obrázku. Když používáte slot, uveďte
--slot <SLOT_NAME>v každém příkazu Azure CLI.Vyvolejte každou funkci a ověřte, že aplikace se úspěšně spustí, spouštěče běží podle očekávání a že nativní nebo operační systémy závislosti se správně načítají.
Aktualizujte hodnotu obrazu
Změna hodnoty obrázku restartuje aplikaci Function. Aktualizovat produkci během okna údržby, nebo použít slot pro nasazení.
Zobrazit aktuální
linuxFxVersionhodnotu:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvTento příkaz vrací hodnotu uloženou v konfiguraci site. Vrácená hodnota může obsahovat pouze jazykovou a jazykovou verzi, například
Python|3.11, místo třídílné hodnoty, která identifikuje distribuci Linuxu. Pokud hodnota neobsahuje verzi obrázku, postupujte podle kroků v sekci Ověřit distribuci Linuxu , abyste potvrdili, že aplikace aktuálně používá Debian Bullseye.Nastavte
linuxFxVersionna novou hodnotu obrazu:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"Pro Python 3.11 na Debian Bookworm použijte
Python|3.11|3.0. Pro Java na Ubuntu Noble použijteJava|8|4.0,Java|11|4.0, neboJava|17|4.0.Počkej, až se aplikace restartuje.
Ověřte distribuci Linuxu
Ověřte jak nastavenou hodnotu, tak i linuxovou distribuci, která vaše aplikaci spouští.
Potvrďte aktualizovanou
linuxFxVersionhodnotu:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvProtože explicitně nastavíte hodnotu ze tří částí, tento příkaz vrátí přesně tu hodnotu Bookworm nebo Noble, kterou jste vybrali.
Otevřete web Kudu aplikace na adrese
https://<APP_NAME>.scm.azurewebsites.net.Vyberte Prostředí a zkontrolujte
KUDU_ENV, nebo otevřete SSH relaci a spusťte:cat /etc/os-releasePotvrďte, že výstup identifikuje Debian Bookworm pro Python 3.11 nebo Ubuntu Noble pro Java 8, 11 nebo 17.
Spusťte každou funkci a ověřte, že spouštěče a závislosti nadále fungují podle očekávání.
Vrátit zpět aktualizaci spravovaného linuxového obrazu
Pokud aktualizovaný obraz způsobí problém s kompatibilitou, dočasně obnovte předchozí linuxFxVersion hodnotu, zatímco problém opravíte.
Warning
Debian Bullseye již není podporován po skončení své životnosti a nepřijímá bezpečnostní aktualizace. Rollback používejte pouze jako dočasné řešení a co nejdříve se vraťte k podporovanému obrazu.
Z tabulky v Vyber hodnotu Bookworm nebo Noble
linuxFxVersionnajdi hodnotu Debian Bullseye pro svou jazykovou verzi.Nastavte
linuxFxVersionna tuto hodnotu Bullseye:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"Počkejte, až se aplikace restartuje, a pak opakujte kontrolu v Ověřte distribuci Linuxu.