Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. |
- 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.
- 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.
- 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.
- 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 nebomcr.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 nebomcr.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 nebomcr.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 nebomcr.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 nebomcr.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 nebomcr.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 nebomcr.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 |