Sdílet prostřednictvím


Podpora kontejnerů Linuxu ve službě Azure Functions

Při plánování a vývoji jednotlivých funkcí pro spouštění ve službě Azure Functions se obvykle zaměřujete na samotný kód. Azure Functions usnadňuje nasazení projektu kódu do aplikace funkcí v Azure. Když projekt nasadíte do aplikace funkcí Pro Linux, kód se spustí v kontejneru, který se vytvoří automaticky a bezproblémově se integruje s nástroji pro správu functions.

Platforma Functions také podporuje nasazování aplikací funkcí v kontejnerech. V kontejnerizovaném nasazení vytvoříte instanci své aplikace funkcí v místním kontejneru Dockeru z podporovaného základního image. Tuto kontejnerizovanou aplikaci funkcí pak můžete nasadit do hostitelského prostředí v Azure. Vytvoření vlastního kontejneru aplikace funkcí vám umožní přizpůsobit nebo jinak řídit prostředí okamžitého běhu kódu funkce.

Important

Když vytváříte vlastní kontejnery, musíte zachovat základní image kontejneru aktualizovanou na nejnovější podporovanou základní image. Podporované základní image pro Azure Functions jsou specifické pro jazyk. Podívejte se na úložiště základních imagí Azure Functions.

Tým Functions se zavazuje publikovat měsíční aktualizace těchto základních imagí. Mezi běžné aktualizace patří aktualizace méně významné verze a opravy zabezpečení pro prostředí runtime Functions i jazyky. Kontejner byste měli pravidelně aktualizovat z nejnovější základní image a znovu nasadit aktualizovanou verzi kontejneru. Pro více informací, viz Údržba vlastních kontejnerů.

Možnosti hostování kontejnerů

Hostování kontejnerizovaných aplikací funkcí v Azure nabízí několik možností:

Možnost hostování Benefits
Azure Container Apps Azure Functions poskytuje integrovanou podporu vývoje, nasazování a správy kontejnerizovaných aplikací funkcí v Azure Container Apps. Tato integrace umožňuje spravovat aplikace pomocí stejných nástrojů a stránek Functions na webu Azure Portal. Azure Container Apps můžete použít k hostování kontejneru aplikace funkcí ve stejném prostředí jako jiné mikroslužby, rozhraní API, weby, pracovní postupy nebo jiné programy hostované kontejnerem. Hostování Container Apps umožňuje spouštět funkce ve spravovaném prostředí založeném na Kubernetes s integrovanou podporou pro opensourcové monitorování, mTLS, Dapr a KEDA. Podporuje model hostování se škálováním na nulu a poskytuje bezserverový model průběžných plateb za to, co používáte. Pomocí profilů úloh můžete také požadovat vyhrazený hardware, dokonce i GPU. Doporučená možnost hostování pro kontejnerizované aplikace funkcí v Azure
Clustery Kubernetes s podporou Azure Arc (předběžná verze) Aplikace funkcí můžete hostovat v clusterech Kubernetes s podporou Azure Arc jako nasazení jen pro kód nebo ve vlastním kontejneru Linuxu. Azure Arc umožňuje připojit clustery Kubernetes, abyste je mohli spravovat a konfigurovat v Azure. Hostování kontejnerů Azure Functions v clusterech Kubernetes s podporou Azure Arc je aktuálně ve verzi Preview. Další informace najdete v tématu Práce s kontejnery a Azure Functions.
Azure Functions Kontejnerizované aplikace funkcí můžete hostovat ve službě Azure Functions spuštěním kontejneru v elastickém plánu Premium nebo služby App Service (Dedicated). Využijte hostování Container Apps pro bohatou podporu kontejnerů z Container Apps. Hostování plánů Premium poskytuje výhody dynamického škálování. Můžete použít hostování na dedikovaném plánu k využití stávajících nevyužitých prostředků plánu služby App Service.
Kubernetes Vzhledem k tomu, že modul runtime Azure Functions poskytuje flexibilitu při hostování, kde a jak chcete, můžete hostovat a spravovat kontejnery aplikací funkcí přímo v clusterech Kubernetes. KEDA (automatické škálování řízené událostmi na základě Kubernetes) se bezproblémově propojuje s modulem runtime a nástroji Azure Functions, aby poskytovala event-driven škálování v Kubernetes. Důležité: Hostování vašich kontejnerizovaných aplikačních funkcí na Kubernetes, ať už pomocí KEDA, nebo přímého nasazení, je open-source projekt, který můžete využívat zdarma. Podporu pro tento scénář hostování poskytují jen přispěvatelé a komunita. Zodpovídáte za údržbu vlastních kontejnerů aplikací funkcí v clusteru, i když je nasazujete do služby Azure Kubernetes Service (AKS).

Porovnání podpory funkcí

Stupeň, do kterého se při spouštění aplikace funkcí v kontejneru podporují různé funkce a chování azure Functions, závisí na zvolené možnosti hostování kontejneru.

Feature/behavior Container Apps (integrované) Aplikace pro kontejnery (přímé) Plán Premium Speciální plán Kubernetes
Podpora produktů Yes No Yes Yes No
Integrace portálu Functions No No Yes Yes No
Škálování řízené událostmi Yes5 Ano (pravidla škálování) Yes No No
Maximální počet instancí 10001  10001  1002  10-303  Liší se podle klastru
Škálování instancí na nulu Yes Yes No No KEDA
Časový limit provádění Unbounded6 Unbounded6 Unbounded7 Unbounded8 None
Nasazení nástrojů Core Tools No No No No func kubernetes 
Revisions Yes  Yes No No No
Sloty nasazení  No No Yes Yes No
Protokoly streamování  Yes  Yes  Yes Yes No
Přístup ke konzole  Yes  Yes Ano (pomocí Kudu) Ano (pomocí Kudu) Ano (v podech pomocí kubectl)
Zmírnění rizik studeného startu Minimální počet replik Pravidla škálování  Trvale připravené / předem zahřáté instance  n/a n/a
Ověřování pomocí služby App Service  Yes  Yes Yes Yes No
Vlastní názvy domén  Yes  Yes Yes Yes No
Certifikáty privátního klíče  Yes  Yes Yes Yes No
Virtuální sítě Yes  Yes Yes Yes Yes
Zóny dostupnosti Yes  Yes Yes Yes Yes
Diagnostics Yes  Yes Yes  Yes  No
Vyhrazený hardware Ano (profily úloh) Ano (profily úloh) No Yes Yes
Vyhrazené gpu Ano (profily úloh) Ano (profily úloh) No No Yes
Konfigurovatelný počet paměti nebo procesoru Yes Yes No No Yes
Možnost "Bezplatné udělení" Yes Yes No No No
Podrobnosti o cenách Fakturace služby Container Apps Fakturace služby Container Apps Fakturace plánu Premium Fakturace vyhrazeného plánu Ceny AKS
Požadavky na název služby 2–32 znaků: omezeno na malá písmena, číslice a pomlčky. Musí začínat písmenem a končit alfanumerickým znakem. 2–32 znaků: omezeno na malá písmena, číslice a pomlčky. Musí začínat písmenem a končit alfanumerickým znakem. Méně než 64 znaků: omezeno na alfanumerické znaky a pomlčky. Nelze začít ani skončit s pomlčkou. Méně než 64 znaků: omezeno na alfanumerické znaky a pomlčky. Nelze začít ani skončit s pomlčkou. Méně než 253 znaků: omezeno na alfanumerické znaky a pomlčky. Musí začínat a končit alfanumerickým znakem.
  1. Ve službě Container Apps je výchozí 10 instancí, ale můžete nastavit maximální počet replik, které mají celkově maximálně 1 000. Toto nastavení se respektuje, pokud je k dispozici dostatek kvót jader. Když vytvoříte aplikaci funkcí z webu Azure Portal, budete omezeni na 300 instancí.
  2. V některých oblastech se aplikace pro Linux v plánu Premium můžou škálovat na 100 instancí. Další informace najdete v článku o plánu Premium.
  3. Konkrétní limity pro různé možnosti plánu služby App Service najdete v omezeních plánu služby App Service.
  4. Vyžaduje KEDA; podporuje většina triggerů. Informace o tom, které triggery podporují škálování řízené událostmi, najdete v tématu Důležité informace o hostování Container Apps.
  5. Pokud je minimální počet replik nastaven na nulu, výchozí časový limit závisí na konkrétních aktivačních událostech použitých v aplikaci.
  6. Není vynucen žádný maximální časový limit pro spuštění. Období odkladu poskytnuté spuštěním funkce je však během škálování 60 minut a během aktualizací platformy se poskytuje období odkladu 10 minut.
  7. Vyžaduje, aby plán služby App Service byl nastavený na AlwaysOn. Během aktualizací platformy se poskytuje období odkladu 10 minut.

Údržba vlastních kontejnerů

Při vytváření vlastních kontejnerů musíte zachovat základní image kontejneru aktualizovanou na nejnovější podporovanou základní image. Podporované základní image pro Azure Functions jsou specifické pro jazyk a nacházejí se v úložištích základních imagí Azure Functions.

Tým Functions se zavazuje publikovat měsíční aktualizace těchto základních imagí. Mezi běžné aktualizace patří aktualizace méně významné verze a opravy zabezpečení pro prostředí runtime Functions i jazyky. Kontejner byste měli pravidelně aktualizovat z nejnovější základní image a znovu nasadit aktualizovanou verzi kontejneru.

Vyberte základní image na základě zásobníku jazyka, který používáte ve své aplikaci funkcí. Následující tabulka obsahuje příklady pro každý zásobník. Obecně platí, že značka by měla začínat 4-, aby označovala runtime V4 Functions. Když jsou vydány nové podverze, tato značka se aktualizuje tak, aby odkazovala na novou verzi. Při pravidelném opětovném sestavení vlastní image stáhnete nové verze prostřednictvím stejné značky, což vaší aplikaci umožní získat tyto aktualizace. Značky, které určují podverze modulu runtime, byste neměli používat, protože tyto verze nebudou dostávat aktualizace a vaše aplikace může zůstat v nepatchované verzi bez ohledu na to, jak často vlastní image znovu sestavíte.

Stack jazyků Příklad doporučených značek základních obrazů
.NET (izolovaný pracovní model) mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0 nebo
mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0-appservice

(Tyto příklady cílí na .NET 8. Vyberte příslušnou image pro požadovanou verzi .NET.)
.NET (starší model interního procesu) mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0 nebo
mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0-appservice

(Podpora pro model v procesu skončí 10. listopadu 2026. Co nejdříve byste měli migrovat na izolovaný model pracovního procesu .)
Java mcr.microsoft.com/azure-functions/java:4-java21 nebo
mcr.microsoft.com/azure-functions/java:4-java21-appservice

(Tyto příklady cílí na Javu 21. Vyberte příslušnou image pro verzi Javy, kterou potřebujete.)
Node.js (JavaScript nebo TypeScript) mcr.microsoft.com/azure-functions/node:4-node22 nebo
mcr.microsoft.com/azure-functions/node:4-node22-appservice

(Tyto příklady cílí na Node.js 22. Vyberte odpovídající image pro Node.js verzi, kterou potřebujete.)
PowerShell mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 nebo
mcr.microsoft.com/azure-functions/powershell:4-powershell7.4-appservice

(Tyto příklady cílí na PowerShell 7.4. Vyberte příslušnou image pro požadovanou verzi PowerShellu.)
Python mcr.microsoft.com/azure-functions/python:4-python3.12 nebo
mcr.microsoft.com/azure-functions/python:4-python3.12-appservice

(Tyto příklady cílí na Python 3.12. Vyberte příslušnou image pro verzi Pythonu, kterou potřebujete.)
Vlastní zpracovatelé / jiné mcr.microsoft.com/azure-functions/base:4 nebo
mcr.microsoft.com/azure-functions/base:4-appservice

Základní obrazy končící na -appservice umožňují SSH a vzdálené ladění z platformy. Pokud tyto funkce nepotřebujete, můžete použít základní image bez přípony -appservice .

Important

Nestačí mít v souboru Dockerfile jenom jednu z výše uvedených značek. Musíte pravidelně stahovat nejnovější image z této značky, aby bylo možné vlastní image znovu vytvořit, aby obsahovala nejnovější aktualizace. Pokud nestáhnete nejnovější obraz a znovu nepřestavíte, vaše aplikace bude nadále běžet na starém základním obrazu.

Když vytvoříte nebo nasadíte vlastní kontejnerizovanou aplikaci pomocí vlastní obraz, zodpovídáte za to, že váš vlastní obraz zůstává aktuální s našimi vydanými základními obrazy. Kromě nových funkcí a vylepšení můžou tyto aktualizace základních imagí zahrnovat také aktualizace zabezpečení, které jsou pro vaši aplikaci důležité. Abyste měli jistotu, že je vaše aplikace chráněná, ujistěte se, že jste aktuální. Měli byste pravidelně stahovat nejnovější verzi základní image, znovu sestavit vlastní image kontejneru a znovu nasadit aplikaci, aby ji používala.

V některých případech je potřeba provést změny na úrovni platformy, které by mohly znamenat, že aplikace ve vlastním kontejneru používající starou základní image nemusí správně fungovat. U takových velkých změn postupně postupně zpřístupujeme aktualizované obrázky, aby aplikace, které provádějí pravidelné aktualizace, nebyly negativně ovlivněny. Abyste se vyhnuli potenciálním problémům s aplikacemi běžícími ve vlastních kontejnerech, ujistěte se, že nezůstáváte příliš pozadu za nejnovější menší verzí vydanou. Během případu podpory bychom měli zjistit, že u vaší aplikace dochází k problémům, protože používá starší nebo nepodporovanou verzi, žádáme, abyste před pokračováním v podpoře aktualizovali kontejner na nejnovější verzi základní image.

Začínáme

Pomocí těchto odkazů můžete začít pracovat se službou Azure Functions v kontejnerech Linuxu:

Chci... Viz článek:
Vytvoření prvních kontejnerizovaných funkcí Vytvoření aplikace funkcí v místním kontejneru Linuxu
Vytváření a nasazování funkcí do Azure Container Apps Vytvoření prvních kontejnerizovaných funkcí v Azure Container Apps
Vytvoření a nasazení kontejnerizovaných funkcí do Azure Functions Vytvoření první kontejnerizované služby Azure Functions