Technologie nasazení v Azure Functions
K nasazení kódu projektu Azure Functions do Azure můžete použít několik různých technologií. Tento článek obsahuje přehled dostupných metod nasazení a doporučení pro nejlepší způsob použití v různých scénářích. Poskytuje také úplný seznam klíčových podrobností o základních technologiích nasazení.
Metody nasazení
Technologie nasazení, kterou používáte k publikování kódu do aplikace funkcí v Azure, závisí na konkrétních potřebách a bodu v cyklu vývoje. Například během vývoje a testování můžete nasadit přímo z vývojového nástroje, jako je Visual Studio Code. Když je vaše aplikace v produkčním prostředí, budete pravděpodobně publikovat nepřetržitě ze správy zdrojového kódu nebo pomocí automatizovaného kanálu publikování, který může zahrnovat ověřování a testování.
Následující tabulka popisuje dostupné metody nasazení projektu kódu.
Typ nasazení | Metody | Nejlepší pro... |
---|---|---|
Založené na nástrojích | • Azure CLI • Publikování editoru Visual Studio Code • Publikování sady Visual Studio • Publikování nástrojů Core Tools |
Nasazení během vývoje a dalších improvizovaných nasazení. Nasazení kódu na vyžádání pomocí místních vývojových nástrojů |
Spravovaná služba App Service | • Deployment Center (CI/CD) • Nasazení kontejnerů |
Průběžné nasazování (CI/CD) ze správy zdrojového kódu nebo z registru kontejneru Nasazení spravuje platforma App Service (Kudu). |
Externí kanály | • Azure Pipelines • GitHub Actions |
Produkční kanály, které zahrnují ověřování, testování a další akce, které se musí spouštět jako součást automatizovaného nasazení. Nasazení spravuje kanál. |
Konkrétní nasazení by měla používat nejlepší technologii založenou na konkrétním scénáři. Řada metod nasazení je založená na nasazení zip, které se doporučuje pro nasazení.
Dostupnost technologie nasazení
Metoda nasazení také závisí na plánu hostování a operačním systému, na kterém spouštíte aplikaci funkcí.
Funkce v současné době nabízí pět možností pro hostování aplikací funkcí:
- Plán Flex Consumption
- Využití
- Plán Elastic Premium
- Vyhrazený plán (App Service)
- Azure Container Apps
Každý plán má jiné chování. Ne všechny technologie nasazení jsou k dispozici pro každý plán hostování a operační systém. Tento graf obsahuje informace o podporovaných technologiích nasazení:
Technologie nasazení | Spotřeba u plánů Flex | Využití | Elastic Premium | Vyhrazené | Container Apps |
---|---|---|---|---|---|
Jedno nasazení | ✔ | ||||
Nasazení souboru ZIP | ✔ | ✔ | ✔ | ||
Adresa URLexterního balíčku 1 | ✔ | ✔ | ✔ | ||
Kontejner Dockeru | Pouze v Linuxu | Pouze v Linuxu | Pouze v Linuxu | ✔ | |
Správa zdrojového kódu | Pouze windows | ✔ | ✔ | ||
Místní Git1 | Pouze windows | ✔ | ✔ | ||
FTPS1 | Pouze windows | ✔ | ✔ | ||
Úpravy na portálu2 | ✔ | ✔ | ✔ |
1 Technologie nasazení, které vyžadují ruční synchronizaci triggerů , se nedoporučují.
2 Úpravy na portálu jsou zakázány, když se kód nasadí do vaší aplikace funkcí mimo portál. Další informace, včetně podrobností podpory jazyka pro úpravy na portálu, najdete v tématu Podrobnosti o podpoře jazyků.
Klíčové koncepty
Některé klíčové koncepty jsou důležité pro pochopení fungování nasazení ve službě Azure Functions.
Aktivace synchronizace
Když změníte některou z aktivačních událostí, infrastruktura functions musí o změnách vědět. Synchronizace probíhá automaticky pro mnoho technologií nasazení. V některých případech ale musíte triggery synchronizovat ručně.
Aktivační události musíte synchronizovat ručně při použití těchto možností nasazení:
Triggery můžete synchronizovat jedním z těchto způsobů:
Restartujte aplikaci funkcí na webu Azure Portal.
az rest
Pomocí příkazu odešlete požadavek HTTP POST, který volásyncfunctiontriggers
rozhraní API, jako v tomto příkladu:az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
Když nasadíte aktualizovanou verzi balíčku pro nasazení a zachováte stejnou adresu URL externího balíčku, musíte aplikaci funkcí restartovat ručně. To značí hostiteli, že by měl synchronizovat a znovu nasadit aktualizace ze stejné adresy URL balíčku. Hostitel Functions také provede synchronizaci triggeru na pozadí po spuštění aplikace. Pro plány hostování Consumption a Elastic Premium byste ale měli triggery ručně synchronizovat i v těchto scénářích:
- Nasazení využívající adresu URL externího balíčku s šablonami ARM nebo Terraformem
- Při aktualizaci balíčku pro nasazení na stejné adrese URL externího balíčku.
Vzdálené sestavení
Během nasazování můžete požádat o provedení vzdáleného sestavení projektu kódu azure Functions. V těchto scénářích byste měli místo sestavení místně požádat o vzdálené sestavení:
- Nasazujete aplikaci do aplikace funkcí založené na Linuxu, která byla vyvinuta na počítači s Windows. To se běžně týká vývoje aplikací v Pythonu. Při sestavování balíčku pro nasazení ve Windows můžete skončit s nesprávnými knihovnami, které se používají.
- Projekt má závislosti na vlastním indexu balíčků.
- Chcete zmenšit velikost balíčku pro nasazení.
Způsob vyžádání vzdáleného sestavení závisí na tom, jestli vaše aplikace běží v Azure ve Windows nebo Linuxu.
Všechny aplikace funkcí spuštěné ve Windows mají malou aplikaci pro správu, scm
kterou poskytuje Kudu. Tento web zpracovává většinu logiky nasazení a sestavení pro Azure Functions.
Když se aplikace nasadí do Windows, spustí se příkazy specifické pro jazyk, například dotnet restore
(C#) nebo npm install
JavaScript.
Při použití vzdálených sestavení během nasazování platí následující aspekty:
- Vzdálené buildy jsou podporované pro aplikace funkcí běžící v Linuxu v plánu Consumption. Možnosti nasazení jsou ale pro tyto aplikace omezené, protože nemají
scm
web (Kudu). - Aplikace funkcí běžící v Linuxu v plánu Premium nebo v plánu Dedicated (App Service) mají
scm
web (Kudu), ale ve srovnání s Windows je omezený. - Vzdálené sestavení se neprovádí, když aplikace používá run-from-package. Informace o použití vzdáleného sestavení v těchto případech najdete v tématu Nasazení souboru ZIP.
- Při vytváření aplikace před zpřístupněním funkce (1. srpna 2019) může dojít k problémům se vzdáleným sestavením. U starších aplikací buď vytvořte novou aplikaci funkcí, nebo spusťte
az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME>
aktualizaci aplikace funkcí. Tento příkaz může trvat dva pokusy o úspěch.
Úložiště obsahu aplikace
Metody nasazení založené na balíčku ukládají balíček do účtu úložiště přidruženého k aplikaci funkcí, která je definována v nastavení AzureWebJobsStorage . Pokud jsou aplikace plánu Consumption a Elastic Premium dostupné, pokusí se použít sdílenou složku obsahu Azure Files z tohoto účtu, ale balíček můžete udržovat i v jiném umístění. Aplikace plánu Flex Consumption místo toho používají kontejner úložiště ve výchozím účtu úložiště, pokud nenakonfigurujete jiný účet úložiště pro nasazení. Další informace najdete v podrobnostech o tom, kde je obsah aplikace uložený v jednotlivých technologiích nasazení popsaných v další části.
Důležité
Účet úložiště slouží k ukládání důležitých dat aplikace, někdy včetně samotného kódu aplikace. Přístup z jiných aplikací a uživatelů byste měli omezit na účet úložiště.
Podrobnosti o technologii nasazení
Ve službě Azure Functions jsou k dispozici následující metody nasazení. Informace o tom, které technologie hostování podporují, najdete v tabulce dostupnosti technologie nasazení.
Jedno nasazení
Jedním nasazením je jediná technologie nasazení podporovaná pro aplikace v plánu Flex Consumption. Konečným výsledkem je balíček připravený ke spuštění .zip, na kterém běží vaše aplikace funkcí.
Jak ho používat: Nasazení pomocí funkce publikování editoru Visual Studio Code nebo z příkazového řádku pomocí nástrojů Azure Functions Core Tools nebo Azure CLI Naše úloha Azure Dev Ops a Akce GitHubu využívají podobně jedno nasazení, když zjistí, že se nasazuje aplikace Flex Consumption.
Při vytváření aplikace Flex Consumption budete muset zadat kontejner úložiště nasazení (objekt blob) i metodu ověřování. Ve výchozím nastavení se používá stejný účet úložiště jako
AzureWebJobsStorage
připojení s připojovací řetězec jako metoda ověřování. Nastavení nasazení se proto konfiguruje během vytváření aplikace bez nutnosti nastavení aplikace.
Kdy ji použít: Jedním nasazením je jediná technologie nasazení, která je k dispozici pro aplikace funkcí běžící v plánu Flex Consumption.
Kde je uložený obsah aplikace: Při vytváření aplikace funkcí Flex Consumption zadáte kontejner úložiště nasazení. Jedná se o kontejner objektů blob, ve kterém platforma nahraje obsah aplikace, který jste nasadili. Pokud chcete změnit umístění, můžete navštívit okno Nastavení nasazení na webu Azure Portal nebo použít Azure CLI.
Nasazení souboru ZIP
Nasazení zip je výchozí a doporučená technologie nasazení pro aplikace funkcí v plánech Consumption, Elastic Premium a App Service (Dedicated). Konečným výsledkem je připravený .zip balíček, na kterém běží vaše aplikace funkcí. Liší se od adresy URL externího balíčku v tom, že naše platforma zodpovídá za vzdálené sestavování a ukládání obsahu vaší aplikace.
Postupy: Nasazení pomocí oblíbeného klientského nástroje: Visual Studio Code, Visual Studio nebo z příkazového řádku pomocí nástrojů Azure Functions Core Tools nebo Azure CLI Naše úloha Azure Dev Ops a GitHub Action podobně využívají nasazení zip.
Když nasadíte pomocí nasazení zip, můžete aplikaci nastavit tak, aby běžela z balíčku. Chcete-li spustit z balíčku, nastavte
WEBSITE_RUN_FROM_PACKAGE
hodnotu nastavení aplikace na1
hodnotu . Doporučujeme nasazení souboru ZIP. Poskytuje rychlejší načítání aplikací a je to výchozí hodnota pro VS Code, Visual Studio a Azure CLI.
Kdy ji použít: Nasazení zip je výchozí a doporučená technologie nasazení pro aplikace funkcí v plánech Windows Consumption, Windows a Linux Elastic Premium a Windows a Linux App Service (Dedicated).
Kde je uložený obsah aplikace: Obsah aplikace z nasazení souboru ZIP se ve výchozím nastavení ukládá do systému souborů, který může být zálohovaný službou Azure Files z účtu úložiště určeného při vytvoření aplikace funkcí. Ve spotřebě Linuxu se obsah aplikace místo toho zachová v objektu blob v účtu úložiště určeném
AzureWebJobsStorage
nastavením aplikace a nastaveníWEBSITE_RUN_FROM_PACKAGE
aplikace převezme hodnotu adresy URL objektu blob.
Adresa URL externího balíčku
Adresa URL externího balíčku je možnost, pokud chcete ručně řídit způsob provedení nasazení. Zodpovídáte za nahrání balíčku připraveného ke spuštění .zip obsahujícího vytvořený obsah aplikace do úložiště objektů blob a odkazování na tuto externí adresu URL jako nastavení aplikace ve vaší aplikaci funkcí. Pokaždé, když se aplikace restartuje, načte balíček, připojí ho a spustí v režimu Spustit z balíčku .
Jak ho používat: Přidejte
WEBSITE_RUN_FROM_PACKAGE
do nastavení aplikace. Hodnota tohoto nastavení by měla být adresa URL objektu blob odkazující na umístění konkrétního balíčku, který má vaše aplikace běžet. Nastavení můžete přidat buď na portálu , nebo pomocí Azure CLI.Pokud používáte Azure Blob Storage, vaše aplikace funkcí má přístup k kontejneru buď pomocí připojení založeného na spravované identitě, nebo se sdíleným přístupovým podpisem (SAS). Možnost, kterou zvolíte, má vliv na typ adresy URL, kterou použijete jako hodnotu pro WEBSITE_RUN_FROM_PACKAGE. Spravovaná identita se doporučuje pro celkové zabezpečení a protože vyprší platnost tokenů SAS a musí se udržovat ručně.
Pokaždé, když nasadíte soubor balíčku, na který odkazuje aplikace funkcí, musíte triggery synchronizovat ručně, včetně počátečního nasazení. Když změníte obsah souboru balíčku a ne samotnou adresu URL, musíte také restartovat aplikaci funkcí, aby se triggery synchronizovaly. Projděte si náš návod ke konfiguraci této technologie nasazení.
Kdy ji použít: Adresa URL externího balíčku je jedinou podporovanou metodou nasazení pro aplikace spuštěné v plánu Consumption pro Linux, pokud nechcete, aby došlo ke vzdálenému sestavení . Tato metoda je také doporučenou technologií nasazení při vytváření aplikace bez služby Azure Files. U škálovatelných aplikací běžících v Linuxu byste měli zvážit hostování plánu Flex Consumption.
Kde je uložený obsah aplikace: Zodpovídáte za nahrání obsahu aplikace do úložiště objektů blob. Můžete použít libovolný účet úložiště objektů blob, i když se doporučuje Azure Blob Storage.
Kontejner Dockeru
Aplikaci funkcí spuštěnou v kontejneru Linuxu můžete nasadit.
Jak ho používat: Vytvořte své funkce v kontejneru Linuxu a pak ho nasaďte do plánu Premium nebo Dedicated ve službě Azure Functions nebo jiném hostiteli kontejneru. Pomocí nástrojů Azure Functions Core Tools vytvořte vlastní soubor Dockerfile pro váš projekt, který používáte k sestavení kontejnerizované aplikace funkcí. Kontejner můžete použít v následujících nasazeních:
- Nasaďte je do prostředků Azure Functions, které vytvoříte na webu Azure Portal. Další informace najdete v tématu Vytváření pomocí kontejnerů na webu Azure Portal.
- Nasaďte je do prostředků Azure Functions, které vytvoříte z příkazového řádku. Vyžaduje plán Premium nebo Dedicated (App Service). Postup najdete v tématu Vytvoření první kontejnerizované služby Azure Functions.
- Nasaďte je do Azure Container Apps. Postup najdete v tématu Vytvoření první kontejnerizované služby Azure Functions v Azure Container Apps.
- Nasazení do Azure Arc (Preview) Postup najdete v tématu Vytvoření první kontejnerizované služby Azure Functions ve službě Azure Arc (Preview).
- Nasazení do clusteru Kubernetes Do clusteru můžete nasadit pomocí nástrojů Azure Functions Core Tools. Použijte příkaz
func kubernetes deploy
.
Kdy ji použít: Použijte možnost kontejneru Dockeru, pokud potřebujete větší kontrolu nad linuxovými prostředími, kde běží vaše aplikace funkcí a kde je kontejner hostovaný. Tento mechanismus nasazení je k dispozici pouze pro funkce spuštěné v Linuxu.
Kde je uložený obsah aplikace: Obsah aplikace je uložený v zadaném registru kontejneru jako součást image.
Zdrojový ovládací prvek
Můžete povolit kontinuální integraci mezi vaší aplikací funkcí a úložištěm zdrojového kódu. Když je správa zdrojového kódu povolená, aktualizace kódu v připojeném zdrojovém úložišti aktivuje nasazení nejnovějšího kódu z úložiště. Další informace najdete v tématu Průběžné nasazování pro Azure Functions.
Jak ho používat: Nejjednodušší způsob, jak nastavit publikování ze správy zdrojového kódu, je centrum nasazení v oblasti Functions na portálu. Další informace najdete v tématu Průběžné nasazování pro Azure Functions.
Kdy ji použít: Použití správy zdrojového kódu je osvědčeným postupem pro týmy, které spolupracují na svých aplikacích funkcí. Správa zdrojového kódu je dobrá možnost nasazení, která umožňuje sofistikovanější kanály nasazení. Správa zdrojového kódu je obvykle povolená v přípravném slotu, který se dá po ověření aktualizací z úložiště prohodit do produkčního prostředí. Další informace najdete v tématu Sloty nasazení služby Azure Functions.
Kde je uložený obsah aplikace: Obsah aplikace je v systému správy zdrojového kódu, ale místně naklonovaný a sestavený obsah aplikace je uložený v systému souborů aplikace, který může být zálohován službou Azure Files z účtu úložiště určeného při vytvoření aplikace funkcí.
Místní Git
Pomocí místního Gitu můžete nasdílit kód z místního počítače do Azure Functions pomocí Gitu.
Jak ho používat: Postupujte podle pokynů v místním nasazení Gitu a Aplikace Azure Service.
Kdy ji použít: Abyste snížili pravděpodobnost chyb, měli byste se vyhnout použití metod nasazení, které vyžadují další krok ruční synchronizace triggerů. Nasazení zip použijte, pokud je to možné.
Kde je uložený obsah aplikace: Obsah aplikace je uložený v systému souborů, který může být zálohovaný službou Azure Files z účtu úložiště určeného při vytvoření aplikace funkcí.
FTP/S
K přímému přenosu souborů do azure Functions můžete použít FTP/S, i když se tato metoda nasazení nedoporučuje. Pokud neplánujete používat FTP, měli byste ho zakázat. Pokud se rozhodnete používat protokol FTP, měli byste vynutit ftps. Další informace o tom, jak na webu Azure Portal, najdete v tématu Vynucení FTPS.
Jak ho používat: Podle pokynů v nastavení nasazení FTPS získejte adresu URL a přihlašovací údaje, které můžete použít k nasazení do aplikace funkcí pomocí FTPS.
Kdy ji použít: Abyste snížili pravděpodobnost chyb, měli byste se vyhnout použití metod nasazení, které vyžadují další krok ruční synchronizace triggerů. Nasazení zip použijte, pokud je to možné.
Kde je uložený obsah aplikace: Obsah aplikace je uložený v systému souborů, který může být zálohovaný službou Azure Files z účtu úložiště určeného při vytvoření aplikace funkcí.
Úpravy portálu
V editoru založeném na portálu můžete přímo upravit soubory, které jsou ve vaší aplikaci funkcí (v podstatě se nasazují při každém uložení změn).
Jak ho používat: Abyste mohli upravovat funkce na webu Azure Portal, musíte mít vytvořené funkce na portálu. Pokud chcete zachovat jediný zdroj pravdy, pomocí jakékoli jiné metody nasazení zajistíte, že vaše funkce bude jen pro čtení a zabrání pokračování v úpravách portálu. Pokud se chcete vrátit do stavu, ve kterém můžete upravovat soubory na webu Azure Portal, můžete režim
Read/Write
úprav ručně zapnout a odebrat všechna nastavení aplikace související s nasazením (napříkladWEBSITE_RUN_FROM_PACKAGE
).
Kdy ho použít: Portál je vhodný způsob, jak začít se službou Azure Functions. Z důvodu omezení vývoje na webu Azure Portal byste měli použít některý z následujících klientských nástrojů pro pokročilejší vývoj:
Kde je uložený obsah aplikace: Obsah aplikace je uložený v systému souborů, který může být zálohovaný službou Azure Files z účtu úložiště určeného při vytvoření aplikace funkcí.
Chování nasazení
Když nasadíte aktualizace kódu aplikace funkcí, aktuálně se ukončují spuštěné funkce. Po dokončení nasazení se nový kód načte, aby začal zpracovávat požadavky. Projděte si vylepšení výkonu a spolehlivosti služby Azure Functions a zjistěte, jak psát bezstavové a obranné funkce.
Pokud potřebujete větší kontrolu nad tímto přechodem, měli byste použít sloty nasazení.
Sloty nasazení
Když nasadíte aplikaci funkcí do Azure, můžete ji nasadit do samostatného slotu nasazení místo přímo do produkčního prostředí. Nasazení do slotu nasazení a následné prohození do produkčního prostředí po ověření je doporučený způsob konfigurace průběžného nasazování.
Způsob nasazení do slotu závisí na konkrétním používaném nástroji pro nasazení. Pokud například používáte Azure Functions Core Tools, zahrnete--slot
možnost označit název konkrétního slotu func azure functionapp publish
pro příkaz.
Další informace o slotech nasazení najdete v dokumentaci ke slotů nasazení Azure Functions.
Další kroky
Další informace o nasazení aplikací funkcí najdete v těchto článcích: