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.
Když plánujete a vyvíjíte své jednotlivé funkce pro běžení v Azure Functions, zaměřte se na samotný kód. Azure Functions usnadňuje nasazení projektu kódu do aplikace funkcí v Azure. Když nasadíte svůj projekt do linuxové aplikace Function, váš kód běží v kontejneru, který pro vás Azure Functions automaticky vytvoří. Tento kontejner se bezproblémově integruje s nástroji pro správu funkcí.
Platforma Functions také podporuje nasazování aplikací funkcí v kontejnerech. V kontejnerizovaném nasazení vytvoříte vlastní instanci funkční aplikace v lokálním Docker kontejneru z podporovaného základního obrazu. 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ů
Tip
Pro většinu kontejnerizovaných zátěží hostujte své funkční aplikace v Azure Container Apps. Container Apps poskytuje plně spravované, serverově bez-Kubernetes prostředí s vestavěným škálováním řízeným událostmi, škálováním až na nulu a podporou GPU. Pro začátek viz Azure Functions on Azure Container Apps.
Máte několik možností, jak hostovat své kontejnerizované funkční aplikace v Azure:
| Možnost hostování | Benefits |
|---|---|
| Azure Container Apps (Recommended) | Azure Container Apps hostuje a spravuje kontejnery funkčních aplikací nativně pomocí poskytovatele Microsoft.App zdrojů. Spususťujte své funkce v plně spravovaném prostředí bez serveru založeném na Kubernetes s vestavěnou podporou open-source monitorování, mTLS, Dapr a KEDA. Podporuje fakturaci typu scale-to-zero, serverless place-for-you-use, dedikovaný hardware a GPU přes pracovní zátěže. Těžíte ze stejného programovacího modelu a spouštěčů funkcí a zároveň získáte kompletní sadu funkcí kontejnerových aplikací.
Doporučená možnost hostingu pro kontejnerizované funkční aplikace v Azure. |
| Azure Container Apps (legacy) | Azure Functions poskytuje integrovanou podporu pro nasazení kontejnerizovaných aplikací funkcí do prostředí Container Apps pomocí poskytovatele Microsoft.Web zdrojů. Ačkoliv je tato možnost aktuálně podporována, je plánována pro budoucí vyřazení. Pro nové workloady použijte doporučenou možnost hostingu Container Apps. |
| 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). 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 | Kontejnerové aplikace (doporučené) | Container Apps (legacy)1 | Plán Premium | Speciální plán | Kubernetes |
|---|---|---|---|---|---|
| Podpora produktů | Yes | Yes | Yes | Yes | No |
| Integrace portálu funkcí | Yes | No | Yes | Yes | No |
| Škálování řízené událostmi | Ano (pravidla škálování) | Yes5 | Yes | No | No |
| Maximální počet instancí | 10002 | 10002 | 1003 | 10-304 | Liší se podle klastru |
| Škálování instancí na nulu | Yes | Yes | No | No | KEDA |
| Časový limit provedení | 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 | Pravidla škálování | Minimální počet replik | 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ého grantu" | 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. |
- Plánováno na budoucí vyřazení. Místo toho použijte nativní hosting Container Apps.
- 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ů
Když vytváříte vlastní kontejnery, udržujte základní obraz svého kontejneru aktualizovaný na nejnovější podporovaný základní obraz. 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. Pravidelně aktualizujte svůj kontejner z nejnovějšího základního obrazu a znovu nasazujte 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ě tag začíná slovem 4- a označuje runtime V4 Functions. Když jsou vydány nové vedlejší verze, tento tag se aktualizuje tak, aby odkazoval na novou verzi. Při pravidelném obnovování vlastního obrazu natahujete nové verze přes stejný tag, takže vaše aplikace má stejné aktualizace. Nepoužívejte tagy, které určují menší verze za běhu, protože tyto tagy nedostávají aktualizace. Vaše aplikace může zůstat na nepatchované verzi, bez ohledu na to, jak často svůj vlastní obraz znovu sestavujete.
| 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 končí 10. listopadu 2026. Přejděte na model izolovaného pracovníka co nejdříve.) |
| 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, používejte základní obrázky bez -appservice přípony.
Important
Není dostatečné mít ve svém Dockerfile jen jeden z předchozích štítků. 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 neobnovíte ho, vaše aplikace bude dál běžet na starém základním obrazu.
Když vytvoříte nebo nasadíte vlastní kontejnerizovanou aplikaci pomocí vlastního obrázku, jste zodpovědní za to, aby váš vlastní obrázek zůstal up-toaktuálním jako vydané základní 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í. Pravidelně stahuji nejnovější verzi základního image, znovu sestavuj svůj vlastní image kontejneru a znovu nasaduj aplikaci, aby ji mohla používat.
V některých případech je Microsoft povinen provádět změny na úrovni platformy, které by mohly znamenat, že aplikace v vlastním kontejneru používajícím starý základní obraz přestane správně fungovat. U takových zásadních změn Microsoft vydává aktualizované obrázky s dostatečným předstihem, aby aplikace s pravidelnými aktualizacemi 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, pokud Microsoft zjistí, že vaše aplikace má problémy kvůli starší nebo nepodporované verzi, Microsoft požádá o aktualizaci kontejneru na nejnovější základní image před pokračováním v podpoře.
Začínáme
Pomocí těchto odkazů můžete začít pracovat se službou Azure Functions v kontejnerech Linuxu:
| Chci... | Viz článek: |
|---|---|
| Deploy functions to Azure Container Apps (doporučeno) | Vytvoření prvních kontejnerizovaných funkcí v Azure Container Apps |
| Vytvořil jsem své první kontejnerizované funkce lokálně | Vytvoření aplikace funkcí v místním kontejneru Linuxu |
| Nasazování kontejnerizovaných funkcí do Premium nebo Dedikovaného plánu | Vytvoření první kontejnerizované služby Azure Functions |