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.
Azure Functions na Azure Container Apps poskytuje plně spravované serverless hostingové prostředí, které kombinuje event-driven schopnosti Azure Functions s funkcemi Container Apps. Tyto schopnosti zahrnují orchestraci založenou na Kubernetes, vestavěné automatické škálování poháněné Kubernetes Event-driven Autoscaling (KEDA), integraci s Dapr, podporu GPU zátěže, podporu sidecarů, konektivitu virtuální sítě (VNet) a správu revizí.
Tento přístup je užitečný, když chcete, aby vaše funkce běžely paralelně s dalšími kontejnerizovanými aplikacemi, jako jsou mikroslužby, API nebo webové stránky. Kontejnerizace funkčních aplikací může také pomoci, když potřebujete vlastní závislosti nebo chcete škálovat na nulu kvůli snížení nákladů. Pro úkoly náročné na výpočetní výkony, jako je AI inference, Container Apps podporuje hosting založený na GPU prostřednictvím serverless GPU a dedikovaných pracovních profilů.
Jako integrovaná funkce v Azure Container Apps můžete nasazovat Azure Functions kontejnerové obrazy přímo do Azure Container Apps pomocí Microsoft.App resource provider a nastavení kind=functionapp při volání az containerapp create. Aplikace vytvořené tímto způsobem mají přístup ke všem funkcím Azure Container Apps. V Azure portálu vyberte možnost Optimalizovat pro Azure Functions během nastavení. Pro více informací viz Nasazení a nastavení.
Klíčové výhody
Model hostování Container Apps vychází z flexibility kontejnerizovaných úloh a povahy Azure Functions řízené událostmi. Nabízí následující klíčové výhody:
- Spusťte Azure Functions jako kontejnery s vlastními závislostmi a jazykovými balíky.
- Škálujte na nulu a rozšiřujte na 1 000 instancí pomocí KEDA.
- Zabezpečení sítí s plnou integrací virtuální sítě
- Funkce kontejnerových aplikací jako více revizí, rozdělení provozu, integrace s Dapr a komponenty pozorovatelnosti.
- Podpora bezserverového a vyhrazeného GPU pro úlohy náročné na výpočetní výkon
- Jednotné prostředí Container Apps pro spouštění funkcí společně s mikroslužbami, rozhraními API a úlohami na pozadí
Následující tabulka vám pomůže porovnat funkce Funkcí v kontejnerových aplikacích s plánem Flex Consumption.
| Vlastnost | Container Apps | Plán Flex Consumption |
|---|---|---|
| Škálování na nulu | ✅ Ano (přes KEDA) | ✅ Ano |
| Maximální horizontální škálování | 1 000 (výchozí 10, konfigurovatelné) | 1 000 |
| Vždy zapnuté instance |
✅ Ano (prostřednictvím minReplicas) |
✅ Ano (prostřednictvím trvale dostupných instancí) |
| Integrace virtuální sítě | ✅ Ano | ✅ Ano |
| Podpora vlastních kontejnerů | ✅ Ano (přineste si vlastní obrázek) | ❌ Omezené (bez používání vlastního kontejneru) |
| Podpora GPU | ✅ Ano (přes profil vyhrazené úlohy GPU bez serveru) | ❌ Ne |
| Integrované funkce | Podpora funkcí Container Apps Například KEDA, Dapr, více verzí, mTLS, sidecars, řízení přístupu a další | Funkce jen pro funkce |
| Model fakturace | Ceny služby Container Apps: Plán Consumption (vCPU, paměť, požadavky) a Dedikovaný Plán (založený na profilu zátěže) | Doba provádění a vždy připravené instance |
Úplné porovnání funkcí v kontejnerových aplikacích s plánem Flex Consumption a všemi ostatními typy plánů a hostování najdete v tématu Možnosti škálování a hostování funkcí.
Scénáře
Azure Functions v Container Apps jsou ideální pro širokou škálu případů použití, zejména v případě, že potřebujete spouštění řízené událostmi, flexibilitu kontejneru nebo zabezpečenou integraci s jinými službami:
- Podniková rozhraní API: Sestavte vlastní knihovny, balíčky a rozhraní API pomocí Azure Functions pro podnikovou aplikaci.
- Migrace a modernizace: Migrace lokálně provozovaných starších a/nebo monolitických aplikací do nativních cloudových mikroslužeb běžících v kontejnerech.
- Zpracování řízené událostmi: Zpracovávat události z Event Grid, Service Bus, Event Hubů a dalších zdrojů událostí pomocí programovacího modelu Azure Functions.
- Pracovní zátěže AI a GPU: Zpracovává videa, obrázky, přepisy a další výpočetně náročné pracovní zátěže, které vyžadují zdroje GPU. Další informace najdete v tématu Použití bezserverových GPU v Azure Container Apps.
- Mikroslužby: Integrace Azure Functions s dalšími službami hostovanými v Container Apps.
- Vlastní kontejnery: Balení funkcí s vlastními běhovými prostředími nebo sidecary.
- Soukromé aplikace: Zabezpečení interních funkcí pomocí virtuální sítě a interního příchozího přenosu dat
- .NET Aspire: Integrace .NET Aspire s Azure Functions umožňuje vyvíjet, ladit a orchestrovat projekt Azure Functions .NET jako součást hostitele aplikace .NET Aspire. Přečtěte si další informace o Azure Functions s .NET Aspire
- General Functions: Spusťte všechny podporované standardní scénáře Azure Functions (například časovače, zpracování souborů, triggery databáze).
Nasazení a nastavení
Pro nasazení Azure Functions na Azure Container Apps zabalte svou aplikaci Function jako vlastní obraz kontejneru a nasaděte ji jako jakoukoli jinou kontejnerovou aplikaci s jedním klíčovým rozdílem. Nastavte vlastnost, kind=functionapp když používáte Azure CLI, šablony Azure Resource Manager nebo Bicep. Pro podrobné kroky a příklady viz Vytvořit funkční aplikaci.
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart-functions:latest \
--ingress external \
--target-port 80 \
--kind functionapp \
--query properties.outputs.fqdn
Tento příkaz vrátí URL vaší funkční aplikace. Zkopírujte tuto adresu URL a vložte ji do webového prohlížeče.
V portálu Azure vyberte možnost Optimalizovat pro Azure Functions při vytváření kontejnerové aplikace pro použití konfigurace Azure Functions.
Podporují se všechny standardní metody nasazení, včetně:
Podrobné kroky a příklady najdete v oficiální úvodní dokumentaci.
Ceny a fakturace
Azure Functions na Azure Container Apps mají stejný cenový model jako Azure Container Apps. Fakturace je založená na typu plánu , který vyberete pro vaše prostředí, což může být Consumption nebo Dedicated.
- Plán využití: Tato bezserverová výpočetní možnost vám účtuje pouze za prostředky, které vaše aplikace používají během jejich spuštění.
- Vyhrazený plán: Tato volba poskytuje přizpůsobené výpočetní prostředky a účtuje vám instance přidělené každému profilu úlohy.
Volba plánu určuje způsob provádění výpočtů fakturace. Různé aplikace v rámci prostředí můžou používat různé plány.
Podrobnosti o fakturaci:
- Za použití programovacího modelu Azure Functions v container Apps se neúčtují žádné další poplatky.
- Trvalé funkce a další pokročilé vzory jsou podporovány a účtovány podle stejného cenového modelu „Container Apps“. Podrobný způsob fakturace a příklady najdete v dokumentaci k Billing v Azure Container Apps.
Škálování řízené událostmi
Azure Functions on Container Apps podporuje všechny hlavní jazykové runtime dostupné v Azure Functions, včetně C#, JavaScriptu / TypeScriptu (Node.js), Python, Java, PowerShellu a vlastních kontejnerů (přineste si vlastní obrázek).
Azure Functions spuštěné na Azure Container Apps automaticky konfigurují pravidla škálování na základě zdroje událostí a eliminují potřebu ručních definic pravidel škálování KEDA ve výchozím prostředí. To je důvod, proč je tlačítko Přidat pravidla škálování na portálu Azure zakázané pro funkce ve službě Container Apps. Stále ale můžete definovat minimální a maximální počet replik, abyste vytvořili hranice škálování a zachovali kontrolu nad přidělováním prostředků.
Pokud potřebujete zadat vlastní pravidla škálování, můžete se odhlásit z pravidel generovaných platformou pomocí allowScalingRuleOverride. Další informace najdete v článku Přepsání automaticky generovaných pravidel škálování KEDA pro Azure Functions v Container Apps.
Platforma automaticky přeloží parametry triggeru služby Functions (z host.json konfigurace nebo atributů triggeru) do příslušných parametrů škálovače KEDA. Podrobné informace o mapování konfigurací triggerů služby Functions na parametry škálování KEDA najdete v tématu Azure Functions mapování škálování KEDA.
Všechny standardní spouště a vazby Azure Functions jsou podporovány v Container Apps s následujícími výjimkami:
- Blob Storage Aktivovat automatické škálování: Funguje pouze při použití Event Gridu jako zdroje. Přečtěte si další informace o spouštění funkcí Azure u kontejnerů Blob pomocí odběru událostí
- Durable Functions automatické škálování: Podporuje pouze poskytovatele úložišť Microsoft SQL Server a Durable Task Scheduler. Pro více informací viz Deploy Durable Functions with SQL Server.
- Automatické škálování není podporováno pro:
- Azure Cache for Redis
- Azure SQL
Spravované identity jsou podporované pro triggery a vazby, které to umožňují. Jsou také k dispozici pro:
- Výchozí účet úložiště (AzureWebJobsStorage)
- Azure Container Registry (ACR)
- Připojení ke zdrojům událostí spouštěče
U nepodporovaných triggerů použijte počet pevných replik (tj. nastavte minReplicas > 0) v Azure Functions na Azure Container Apps. Další informace najdete v příručce pro vývojáře functions.
Škálování a výkon
Azure Functions ve službě Container Apps se ve výchozím nastavení automaticky škálují podle událostí pomocí KEDA. Stále můžete nastavit minimální nebo maximální počet replik pro řízení chování škálování. Můžete také použít allowScalingRuleOverride k poskytování vlastních pravidel škálování.
- Škálování řízené událostmi: Automaticky se škáluje na základě spouštěčů, jako je Event Grid, Service Bus nebo HTTP.
- Škálování na nulu: Nečinné aplikace se škáluje na nulu, aby se ušetřily náklady.
- Řízení studeného startu: Přečtěte si o zkrácení doby studeného startu na Azure Container Apps.
- Souběžnost: Každá instance může zpracovávat více událostí paralelně.
- Vysoké škálování: Horizontální navýšení kapacity na 1 000 instancí na aplikaci (výchozí hodnota je 10).
- Podpora GPU: Spouštění úloh náročných na výpočetní výkon, jako je odvození umělé inteligence, s využitím uzlů založených na GPU.
Díky tomu jsou kontejnerové aplikace ideální pro práci s proměnlivým i stabilním zatížením. Další informace najdete v tématu Set pravidel škálování v Azure Container Apps
Sítě a zabezpečení
Azure Functions on Container Apps využívá síťové a bezpečnostní funkceContainer Apps:
- Integrace virtuální sítě: Zabezpečený přístup k privátním prostředkům prostřednictvím interních koncových bodů a privátních databází.
- Spravovaná identita: Autentizujte se službami Azure pomocí systémově nebo uživatelsky přiřazených identit. Nemusíte spravovat tajemství ani spojovací řetězce.
- Podpora Dapr: Umožnit pub/sub, správu stavu a zabezpečené vyvolání služby prostřednictvím bočních procesů Dapr. Další informace najdete v tématu Rozhraní API mikroslužeb využívající Dapr.
- Ingress a TLS: Zpřístupněte zabezpečené koncové body HTTP pomocí protokolu TLS/mTLS, vlastních domén nebo je ponechejte interní.
- Izolace prostředí: Funkce sdílejí hranice prostředí Container Apps pro bezpečnou, omezenou komunikaci.
Monitorování a protokolování
Azure Functions on Container Apps integruje s nástroji Azure observability pro sledování výkonu a diagnostiku problémů:
- Application Insights: Poskytuje telemetrii pro požadavky, závislosti, výjimky a vlastní trasování. Další informace najdete v tématu Monitor Azure Functions.
-
Log Analytics: Zachycuje životní cyklus kontejneru a škálovací události, jako
FunctionsScalerInfojsou záznamy. Pro více informací viz Application logging in Azure Container Apps. - Vlastní protokolování: Podporuje standardní architektury, jako je ILogger a protokolování konzoly pro strukturovaný výstup.
- Centralizované monitorování: Prostředí Container Apps nabízí jednotné řídicí panely a výstrahy napříč všemi aplikacemi.
Proměnné prostředí
Azure Functions spuštěné v Container Apps mají přístup k systémovým proměnným prostředí. Proměnná CONTAINER_NAME prostředí se automaticky nastaví na název repliky vaší aplikace funkcí. Tuto proměnnou použijte pro logování, korelaci a ladění v multireplica scénáři.
Úplný seznam systémových proměnných prostředí viz Proměnné prostředí v Azure Container Apps.
Úvahy
Při používání Azure Functions na Azure Container Apps mějte na paměti tyto další aspekty:
- Požadavek na vstupní přenos pro automatické škálování: Pro umožnění automatického škálování na základě událostí povolte vstup, buď veřejně, nebo v interním prostředí Container Apps.
- Povinný úložný účet: Každá funkční aplikace nasazená v Container Apps musí být propojena s úložným účtem. Tento úložný účet spravuje spouštěče, záznamy a stav. Projděte si pokyny k účtu úložiště , kde najdete osvědčené postupy.
- Úložiště s více revizemi: Při nasazování s více aktivními revizemi přiřaďte každému revizi vyhrazený účet úložiště. Použití vyhrazeného účtu úložiště pomáhá zabránit konfliktům a zajistit správnou izolaci. Případně pokud nevyžadujete souběžné revize, zvažte použití výchozího režimu jedné revize pro zjednodušenou správu.
- Spouštěče s více revizemi: Pokud používáte režim více revizí s triggerem na základě vyžádání, použijte pro každou revizi jiný zdroj událostí, abyste se vyhnuli konfliktům souvisejícím s konkurenčními příjemci. Příkladem triggerů založených na vyžádání jsou funkce, které používají Azure Queue Storage, Azure Event Hubs, Azure Service Bus nebo Durable Functions triggery.
- Latence studeného spuštění: Když se vaše aplikace kontejneru během nečinných období škáluje na nulu, první požadavek po nečinnosti se spustí za studena. Přečtěte si další informace o snížení doby studeného startu.
- Integrace s Application Insights: Pro monitorování a diagnostiku vaší funkční aplikace ji připojte k Application Insights. Pro více informací viz integrace Application Insights s Funkcemi.
- Proxy služby Functions: Nepodporuje se. V případě scénářů brány rozhraní API se místo toho integrujte s Azure API Management.
- Sloty nasazení: Přípravné a produkční sloty nejsou k dispozici. Používejte strategie deploymentu typu blue-green pro vydání bez výpadků.
- Přístupové klíče funkcí: Použití portálu ke generování přístupových klíčů Functions se nepodporuje. Zvažte použití Azure Key Vault k ukládání klíčů. K zabezpečení koncových bodů HTTP v produkčním prostředí můžete použít také následující možnosti:
- Kvóty a limity prostředků: Prostředí Container Apps mají výchozí omezení paměti, procesoru a počtu instancí v jednotlivých oblastech. Další informace najdete v omezeních prostředí a výchozích kvótách. Pokud vaše úloha vyžaduje více prostředků, můžete požádat o navýšení kvóty.
- Ruční konfigurace pravidel škálování: Tlačítko "Přidat pravidla škálování" na portálu Azure je deaktivováno pro Azure Functions hostované v Container Apps, protože pravidla škálování se automaticky konfigurují podle zdroje události. Ruční definice pravidel KEDA se v tomto nastavení nevyžadují.
Odeslat názor
Odešlete problém nebo žádost o funkci do úložiště Azure Container Apps GitHub.
Další kroky / další zdroje informací
Pokud chcete pokračovat ve studiu a sestavování s Azure Functions v Container Apps, projděte si následující zdroje informací:
- Začátění: Podrobný průvodce nasazením a konfigurací Azure Functions v Azure Container Apps.
- Azure Container Apps dokumentace: Úplné referenční informace o funkcích Container Apps, včetně škálování, sítí, Dapr a profilů úloh.
- Ceník Azure Container Apps: Podrobnosti o nákladech na fakturaci na základě spotřeby a plánu Dedicated.
- Azure Functions možnosti hostování: Porovnání plánů hostování, včetně Container Apps, Flex Consumption, Premium a Dedicated.
- Azure Functions příručka pro vývojáře: Podrobné informace o triggerech, vazbách, chování modulu runtime a konfiguraci.