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. |
- 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í.
- 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.
- Konkrétní limity pro různé možnosti plánu služby App Service najdete v omezeních plánu služby App Service.
- Parita funkcí je cílem integrovaného hostování ve službě Azure Container Apps.
- 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.
- 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.
- 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.
- 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) |