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 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í.
Služba Functions v současné době nabízí tři plány hostování:

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í Využití ve Windows Windows Premium Windows Dedicated Využití v Linuxu Linux Premium Linux Dedicated
Adresa URLexterního balíčku 1
Nasazení souboru ZIP
Kontejner Dockeru
Správa zdrojového kódu
Místní Git1
FTPS1
Ú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ě.

Při použití těchto možností nasazení je nutné ručně synchronizovat triggery:

Triggery můžete synchronizovat jedním ze tří způsobů:

  • Restartujte aplikaci funkcí na webu Azure Portal.
  • Odešlete požadavek HTTP POST na https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> použití hlavního klíče.
  • Odeslat požadavek HTTP POST na https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME>/syncfunctiontriggers?api-version=2016-08-01adresu . Zástupné symboly nahraďte ID předplatného, názvem skupiny prostředků a názvem vaší aplikace funkcí. Tento požadavek vyžaduje přístupový token v Authorization hlavičce požadavku.

Když nasazujete pomocí adresy URL externího balíčku, musíte ručně restartovat aplikaci funkcí, aby se plně synchronizovala nasazení, když se balíček změní beze změny adresy URL, která zahrnuje počáteční nasazení.

Pokud je vaše aplikace funkcí zabezpečená omezeními příchozí sítě, koncový bod aktivačních událostí synchronizace se dá volat jenom z klienta ve virtuální síti.

Vzdálené sestavení

Azure Functions může automaticky provádět sestavení kódu, který obdrží po nasazení zip. Tyto buildy se liší v závislosti na tom, jestli je vaše aplikace spuštěná 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 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

Několik metod nasazení ukládá nasazenou nebo sestavenou datovou část aplikace do účtu úložiště přidruženého k aplikaci funkcí. Funkce se pokusí při konfiguraci použít sdílenou složku obsahu Azure Files, ale některé metody místo toho ukládají datovou část do instance úložiště objektů blob přidružené k AzureWebJobsStorage připojení. Podívejte se na podrobnosti v části Where app content is stored paragraphs of each deployment technology covered in the next section.

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í.

Adresa URL externího balíčku

Pomocí adresy URL externího balíčku můžete odkazovat na vzdálený soubor balíčku (.zip), který obsahuje vaši aplikaci funkcí. Soubor se stáhne z poskytnuté adresy URL a aplikace se 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 (umístění konkrétního souboru balíčku, který chcete spustit). Nastavení můžete přidat buď na portálu , nebo pomocí Azure CLI.

Pokud používáte Azure Blob Storage, pomocí privátního kontejneru se sdíleným přístupovým podpisem (SAS) udělte službě Functions přístup k balíčku. Kdykoli se aplikace restartuje, načte kopii obsahu. Váš odkaz musí být platný po celou dobu životnosti aplikace.

Kdy ji použít: Adresa URL externího balíčku je jedinou podporovanou metodou nasazení pro Službu Azure Functions spuštěnou v linuxovém plánu Consumption, pokud uživatel nechce, aby došlo ke vzdálenému sestavení . 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.

Kde je uložený obsah aplikace: Obsah aplikace je uložený na zadané adrese URL. Může se jednat o objekty blob Azure, případně v účtu úložiště určeném připojením AzureWebJobsStorage . Některé klientské nástroje můžou ve výchozím nastavení nasadit do objektu blob v tomto účtu. Například pro aplikace Consumption pro Linux se Azure CLI pokusí nasadit prostřednictvím balíčku uloženého v objektu blob v účtu určeném uživatelem AzureWebJobsStorage.

Nasazení souboru ZIP

Nasazením zip odešlete soubor .zip, který obsahuje vaši aplikaci funkcí do Azure. Volitelně můžete aplikaci nastavit tak, aby se spustila z balíčku, nebo můžete určit, že dojde ke vzdálenému sestavení .

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 Ve výchozím nastavení tyto nástroje používají nasazení zip a spouštějí se z balíčku. Nástroje Core Tools a rozšíření editoru Visual Studio Code umožňují vzdálené sestavení při nasazování do Linuxu. Pokud chcete do aplikace funkcí ručně nasadit soubor .zip, postupujte podle pokynů v tématu Nasazení ze souboru nebo adresy URL .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 na 1hodnotu . 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 doporučená technologie nasazení pro Azure Functions.

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 službě Linux Consumption se místo toho obsah aplikace zachová v objektu blob v účtu úložiště určeném AzureWebJobsStorage připojením.

Kontejner Dockeru

Aplikaci funkcí spuštěnou v kontejneru Linuxu můžete nasadit.

Jak ho použít: 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:

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říklad WEBSITE_RUN_FROM_PACKAGE).

Kdy ho použít: Portál je vhodný způsob, jak začít se službou Azure Functions. Pro pokročilejší vývoj doporučujeme použít jeden z následujících klientských nástrojů:

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í.

Následující tabulka uvádí operační systémy a jazyky, které podporují úpravy na portálu:

Jazyk Využití ve Windows Windows Premium Windows Dedicated Využití v Linuxu Linux Premium Linux Dedicated
Jazyk C#1
Java
JavaScript (Node.js)
Python2
PowerShell
TypeScript (Node.js)

1 Úpravy na portálu jsou podporovány pouze pro soubory skriptů jazyka C#, které běží v procesu s hostitelem. Další informace najdete v referenčních informacích pro vývojáře azure Functions v jazyce C# (.csx).
2 Úpravy na portálu jsou podporovány pouze pro programovací model Pythonu v1.

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: