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.
Azure Functions podporuje tři možnosti sestavení pro publikování aplikací Pythonu do Azure. Zvolte metodu sestavení na základě vašeho místního prostředí, závislostí aplikace a požadavků za běhu.
Rychlé porovnání akcí sestavení
| Typ nasazení | Kde jsou nainstalovány závislosti | Typický případ použití |
|---|---|---|
| Vzdálené sestavení (doporučeno) | Azure (App Service) | Výchozí, doporučeno pro většinu uživatelů |
| Místní sestavení | Váš počítač | Vývojáři pro Linux/macOS, omezené scénáře pro Windows |
| Vlastní závislosti | Řešení prostřednictvím extra adresy URL indexu nebo místní instalace | Jiné závislosti než PyPI |
Důležité informace o balíčku pro nasazení
Při nasazování aplikace funkcí Pythonu do Azure mějte na paměti tyto požadavky na balení:
- Obsah balíčku, ne složka: Nasaďte obsah složky projektu, ne samotnou složku.
-
Kořenová úroveň
host.json: Zajistěte, aby byl jedenhost.jsonsoubor v kořenovém adresáři balíčku pro nasazení, který není vnořený do podsložky. -
Vyloučit vývojové soubory: Můžete vyloučit složky, jako
tests/je ,.github/a.venv*/z nasazeného balíčku jejich zahrnutím do.funcignore. - Prostředí sestavení se musí shodovat s produkčním prostředím: Závislosti musí být vytvořené na počítači s Ubuntu pomocí stejné verze Pythonu jako produkční aplikace. Vzdálený build zpracovává tento scénář automaticky.
-
Závislosti musí být nainstalovány do
./.python_packages/lib/site-packages: Vzdálené sestavení nainstaluje všechny závislosti uvedené verequirements.txtsprávném adresáři. -
Mějte na paměti velikost balíčku pro nasazení: Velké sady závislostí zvyšují dobu sestavení, latenci studeného spuštění a dobu importu a inicializace modulů. Ovlivněné jsou zejména aplikace s velkými vědeckými knihovnami nebo knihovnami ML (včetně
pytorch). - Vzdálené sestavení má 60sekundový časový limit: Pokud instalace závislostí překročí limit, sestavení selže. V takovém případě zvažte použití místního sestavení a nasazení s předem připravenými závislostmi.
-
Import modulu má 2minutový časový limit: Načítání modulu Pythonu a indexování funkcí během spouštění má 2minutový limit pro Python 3.13 a vyšší nebo pro starší verze Pythonu s povolenou
PYTHON_ENABLE_INIT_INDEXINGverzí. Pokud aplikace tuto hodnotu překročí, snižte importy nejvyšší úrovně nebo použijte odložené importy (import modulů uvnitř těla funkce místo globálního oboru).
Vzdálené sestavení
Vzdálené sestavení je doporučeným přístupem pro nasazení aplikace v Pythonu do služby Functions jen pro kód.
Při vzdáleném sestavení platforma Functions zpracovává instalaci balíčků a zajišťuje kompatibilitu s prostředím vzdáleného modulu runtime. Použití vzdáleného sestavení také vede k menšímu balíčku pro nasazení.
Vzdálené sestavení můžete použít při publikování aplikace v Pythonu pomocí těchto nástrojů:
-
Azure Functions Core Tools: Příkaz
func azure functionapp publishve výchozím nastavení požaduje vzdálené sestavení při publikování aplikací v Pythonu. -
AZ CLI:
az functionapp deployment source config-zipPři nasazování aplikací v Pythonu ve výchozím nastavení používá vzdálené sestavení. - Visual Studio Code: Azure Functions: Nasazení do Azure... příkaz vždy používá vzdálené sestavení.
-
Průběžné doručování pomocí GitHub Actions: Akce Azure/functions-action@v1 používá vzdálené sestavení, když je parametr
remote-buildnastaven natruepro plán Flex Consumption, nebo když jsouscm-do-build-during-deploymentaenable-oryx-buildnastaveny natruepro vyhrazené plány.
Pokud chcete povolit vzdálené sestavení pro jiné scénáře, jako je průběžné doručování pomocí Azure Pipelines, přečtěte si téma Povolení vzdáleného sestavení.
Vzdálené sestavení také podporuje používání vlastních indexů balíčků, když je použito nastavení aplikace PIP_EXTRA_INDEX_URL. Další informace naleznete v tématu Vzdálené sestavení.
Důležité
Vzdálené sestavení nainstaluje všechny závislosti uvedené v souboru requirements.txt. Abyste měli jistotu, že jsou všechny požadované balíčky nainstalované, nezapomeňte do souboru requirements.txt zahrnout tyto závislosti.
Místní sestavení
Pokud o vzdálené sestavení nepožádáte, závislosti se místo toho nainstalují na váš počítač. Celý místní projekt a závislosti se pak zabalí místně a nasadí do vaší aplikace funkcí. Při použití místního sestavení se nahraje větší balíček.
Závislosti musíte také nainstalovat do správného adresáře. Slouží pip install --target="./.python_packages/lib/site-packages" k instalaci požadovaných závislostí do místní .python_packages/lib/site-packages složky.
Pokud máte například závislosti uvedené v requirements.txt souboru, můžete spustit tento příkaz:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
Místní sestavení použijte, když:
- Vyvíjíte místně v Linuxu nebo macOS.
- Vzdálené sestavení není k dispozici nebo je omezeno.
- Chcete definovat závislosti v jiném souboru, než
requirements.txtje napříkladpyproject.toml.
Pro použití místního sestavení je možné nakonfigurovat následující nástroje:
-
Azure Functions Core Tools: Použijte
func azure functionapp publishs příznakem--no-build. -
AZ CLI:
az functionapp deployment source config-zips příznakem--build-remote=false. -
Průběžné doručování pomocí GitHub Actions: Nastavte parametr
remote-buildnafalsepro plán Flex Consumption nebo u dedikovaných plánů nastavtescm-do-build-during-deploymentaenable-oryx-buildnafalse.
Důležité
Při vývoji aplikací v Pythonu na počítači s Windows nepoužívejte místní build. Balíčky založené na počítači s Windows často mají problémy s nasazením a spouštěním v Linuxu ve službě Azure Functions. Místní sestavení používejte jenom v případě, že máte jistotu, že balíček běží v systémech založených na Linuxu.
Vlastní závislosti
Azure Functions podporuje vlastní a další závislosti jiné než PyPI pomocí PIP_EXTRA_INDEX_URL nastavení aplikace nebo vytvořením místního sestavení na počítači s Linuxem nebo macOS.
Vzdálené sestavení s další adresou URL indexu
Pokud jsou vaše privátní balíčky dostupné online, můžete po nakonfigurování umístění balíčku pomocí nastavení aplikace PIP_EXTRA_INDEX_URL požádat o vzdálené sestavení.
Když nastavíte PIP_EXTRA_INDEX_URL, vzdálená sestavení používají tento zdroj balíčků během nasazování.
PIP_INDEX_URL nahrazuje index balíčku, proto zvažte použití PIP_EXTRA_INDEX_URL místo toho, abyste zabránili neočekávanému chování.
Místní balíčky nebo kola
Místní balíčky a kola se podporují při vytváření aplikací Azure Functions v Pythonu.
Pokud chcete tyto balíčky nebo kola nainstalovat pomocí vzdáleného sestavení, můžete do souboru zahrnout závislosti requirements.txt a nasadit je s povoleným vzdáleným sestavením.
Soubor requirements.txt může například vypadat jako následující úryvek.
# Installing a custom wheel
<my_package_wheel>.whl
# Installing a local package
path/to/my/package
Pokud chcete tyto závislosti nainstalovat pomocí místního sestavení, nainstalujte závislosti do místní .python_packages/lib/site-packages složky a nasaďte je se zakázaným vzdáleným sestavením.
Pokud máte například balíčky definované v requirements.txt souboru, můžete nainstalovat a publikovat pomocí následujících příkazů a nástrojů Core Tools:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
func azure functionapp publish <APP_NAME> --no-build