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 kódu nasadíte do aplikace funkcí, která běží v Linuxu, projekt se spustí v kontejneru, který se pro vás vytvoří automaticky. Tento kontejner spravuje služba Functions.

Funkce také podporují nasazení kontejnerizovaných aplikací funkcí. V kontejnerizovaném nasazení vytvoříte vlastní instanci aplikace funkcí v místním kontejneru Dockeru z podporované 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.

Důležité

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 základních imagích Azure Functions.

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

Možnosti hostování kontejnerů

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

Možnost hostování Zaměstnanecké výhody
Azure Container Apps Azure Functions poskytuje integrovanou podporu vývoje, nasazování a správy kontejnerizovaných aplikací funkcí v Azure Container Apps. To vám umožní 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í kontejnerů aplikací funkcí, když potřebujete spustit funkce řízené událostmi v Azure ve stejném prostředí jako jiné mikroslužby, rozhraní API, weby, pracovní postupy nebo 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 servless pay-for-what-you-use hosting model. Pomocí profilů úloh můžete také požadovat vyhrazený hardware, dokonce i GPU. Doporučená možnost hostování pro spouštění kontejnerizovaných aplikací funkcí v Azure
Clustery Kubernetes s podporou Azure Arc (Preview) 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.
Azure Functions Kontejnerizované aplikace funkcí ve službě Azure Functions můžete hostovat spuštěním kontejneru v plánu Elastic Premium nebo ve vyhrazeném plánu. Hostování plánů Premium poskytuje výhody dynamického škálování. K využití stávajících nevyužitých prostředků plánu Služby App Service můžete použít hostování plánu Dedicated.
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 založené na Kubernetes) bezproblémově s modulem runtime Azure Functions a nástroji pro zajištění škálování řízeného událostmi v Kubernetes. Mějte na paměti, že spouštění kontejnerizovaných aplikací funkcí v Kubernetes, a to buď pomocí KEDA, nebo přímým nasazením, je opensourcové úsilí, které můžete používat zdarma, s podporou co nejlepšího úsilí poskytované přispěvateli a komunitou. Zodpovídáte za údržbu vlastních kontejnerů aplikací funkcí v clusteru i při nasazování 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.

Funkce/chování Container Apps (integrované) Container Apps (přímé) Plán Premium Vyhrazený plán Kubernetes
Podpora produktů Yes Ne Ano Ano No
Integrace portálu Functions Ano Ne Ano Ano Ne
Škálování řízené událostmi Ano5 Ano (pravidla škálování) Yes No Ne
Maximální škálování (instance) 10001  10001  1002  10-303  Liší se podle clusteru
Instance se škálováním na nulu Ano Ano No Ne KEDA
Časový limit provádění Nevázaný6 Nevázaný6 Nevázané7 Nevázané8 Žádný
Nasazení nástrojů Core Tools func azurecontainerapps No No Ne func kubernetes 
Revize Ne Ano Ne Ne Ne
Sloty nasazení  Ne Ne Ano Ano Ne
Protokoly streamování  Ano Ano  Ano Ano Ne
Přístup ke konzole  Momentálně není k dispozici4  Ano Ano (pomocí Kudu) Ano (pomocí Kudu) Ano (v podech pomocí kubctl)
Zmírnění rizik studeného startu Minimální počet replik Pravidla škálování  Vždy připravené nebo předem připravené instance  Není k dispozici není k dispozici
Ověřování pomocí služby App Service  Momentálně není k dispozici4  Ano Ano Ano Ne
Vlastní názvy domén  Momentálně není k dispozici4  Ano Ano Ano Ne
Certifikáty privátního klíče  Momentálně není k dispozici4  Ano Ano Ano Ne
Virtuální sítě Ano Ano Ano Ano Ano
Zóny dostupnosti Ano Ano Ano Ano Ano
Diagnostika Momentálně není k dispozici4  Ano Ano  Ano  Ne
Vyhrazený hardware Ano (profily úloh) Ano (profily úloh) Ne Ano Ano
Vyhrazené gpu Ano (profily úloh) Ano (profily úloh) Ne No Ano
Konfigurovatelný počet paměti nebo procesoru Ano Ano No Ne Ano
Možnost "Bezplatné udělení" Ano Ano No No Ne
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. Pomlčka nemůže začínat ani končit pomlčkou. Méně než 64 znaků: omezeno na alfanumerické znaky a pomlčky. Pomlčka nemůže začínat ani končit 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. Parita funkcí je cílem integrovaného hostování ve službě Azure Container Apps.
  5. 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.
  6. 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.
  7. Nevynucuje se žádná maximální doba trvání časového limitu 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.
  8. Vyžaduje, aby plán služby App Service byl nastavený na AlwaysOn. Během aktualizací platformy se poskytuje období odkladu 10 minut.

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
Vytváření a nasazování funkcí do Kubernetes s podporou Azure Arc Vytvoření první kontejnerizované služby Azure Functions ve službě Azure Arc (Preview)