Hostování plánu Flex Consumption služby Azure Functions
Flex Consumption je plán hostování Azure Functions založený na Linuxu, který vychází z plateb consumption za to, co používáte bezserverový fakturační model. Poskytuje větší flexibilitu a přizpůsobitelnost tím, že zavádí privátní sítě, výběr velikosti paměti instance a funkce rychlého/rozsáhlého škálování na více instancí, které jsou stále založené na bezserverovém modelu.
Můžete si projít kompletní ukázky, které obsahují plán Flex Consumption v úložišti ukázek plánů Flex Consumption.
Zaměstnanecké výhody
Plán Flex Consumption vychází ze silných stránek plánu Consumption, mezi které patří dynamické škálování a fakturace na základě provádění. S Flex Consumption získáte také tyto další funkce:
- Vždy připravené instance
- Integrace virtuální sítě
- Rychlé škálování na základě souběžnosti pro aplikace HTTP i jiné aplikace než HTTP
- Více možností pro velikosti paměti instance
Tato tabulka vám pomůže přímo porovnat funkce Flex Consumption s plánem hostování Consumption:
Funkce | Využití | Spotřeba u plánů Flex |
---|---|---|
Škálování na nulu | ✅ Ano | ✅ Ano |
Chování škálování | Řízené událostmi | Řízený událostmi (rychlé) |
Virtuální sítě | ❌ Nepodporováno | ✅ Podporovaný |
Vyhrazené výpočetní prostředky (zmírnění studených startů) | ❌ Žádný | ✅ Vždy připravené instance (volitelné) |
Fakturace | Pouze doba provádění | Doba provádění a vždy připravené instance |
Instance se škálováním na více instancí (maximum) | 200 | 1000 |
Úplné porovnání plánu Flex Consumption s plánem 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í.
Integrace virtuální sítě
Flex Consumption rozšiřuje tradiční výhody plánu Consumption přidáním podpory pro integraci virtuální sítě. Když vaše aplikace běží v plánu Flex Consumption, můžou se připojit k dalším službám Azure zabezpečeným ve virtuální síti. A zároveň vám to umožňuje využívat výhod bezserverové fakturace a škálování společně s výhodami škálování a propustnosti plánu Flex Consumption. Další informace najdete v tématu Povolení integrace virtuální sítě.
Paměť instance
Při vytváření aplikace funkcí v plánu Flex Consumption můžete vybrat velikost paměti instancí, na kterých běží vaše aplikace. Informace o tom, jak velikosti paměti instancí ovlivňují náklady vaší aplikace funkcí, najdete v tématu Fakturace .
Flex Consumption v současné době nabízí možnosti velikosti paměti instance o velikosti 2 048 MB i 4 096 MB.
Při rozhodování o velikosti paměti instance pro použití s vašimi aplikacemi je potřeba vzít v úvahu některé věci:
- Velikost paměti instance 2 048 MB je výchozí a měla by se použít pro většinu scénářů. Velikost paměti instance 4 096 MB použijte ve scénářích, ve kterých vaše aplikace vyžaduje větší souběžnost nebo vyšší výpočetní výkon. Další informace naleznete v tématu Konfigurace paměti instance.
- Velikost paměti instance můžete kdykoli změnit. Další informace naleznete v tématu Konfigurace paměti instance.
- Prostředky instance se sdílejí mezi kódem funkce a hostitelem služby Functions.
- Čím větší je velikost paměti instance, tím více může každá instance zpracovat, pokud jde o souběžná spuštění nebo náročnější úlohy procesoru nebo paměti. Konkrétní rozhodnutí o škálování jsou specifická pro úlohy.
- Výchozí souběžnost triggerů HTTP závisí na velikosti paměti instance. Další informace najdete v tématu Souběžnost triggeru HTTP.
- Dostupné procesory a šířka pásma sítě jsou k dispozici proporcionální s konkrétní velikostí instance.
Škálování podle funkcí
Souběžnost je klíčovým faktorem, který určuje, jak se aplikace funkcí Flex Consumption škáluje. Aby se zlepšil výkon aplikací s různými typy aktivačních událostí, plán Flex Consumption nabízí deterministický způsob škálování aplikace na základě jednotlivých funkcí.
Toto chování škálování jednotlivých funkcí je součástí hostitelské platformy, takže nemusíte konfigurovat aplikaci ani měnit kód. Další informace najdete v článku o škálování řízeném událostmi v článku o škálování založeném na funkcích.
Při škálování jednotlivých funkcí se rozhodnutí pro určité triggery funkcí provádějí na základě agregací skupin. Tato tabulka ukazuje definovanou sadu skupin škálování funkcí:
Škálování skupin | Triggery ve skupině | Hodnota nastavení |
---|---|---|
Triggery HTTP | Trigger HTTP Aktivační událost SignalR |
http |
Triggery úložiště objektů blob (založená na Event Gridu) |
Trigger služby Blob Storage | blob |
Odolná služba Functions | Aktivační událost orchestrace Trigger aktivity Trigger entity |
durable |
Všechny ostatní funkce v aplikaci se škálují jednotlivě ve vlastní sadě instancí, na které se odkazuje pomocí konvence function:<NAMED_FUNCTION>
.
Vždy připravené instance
Flex Consumption zahrnuje funkci vždy připravenou pro výběr instancí, které jsou vždy spuštěné a přiřazené ke každé skupině nebo funkcím škálování jednotlivých funkcí. To je skvělá možnost pro scénáře, kdy potřebujete mít minimální počet instancí, které jsou vždy připravené ke zpracování požadavků, například ke snížení latence studeného spuštění aplikace. Výchozí hodnota je 0 (nula).
Pokud například nastavíte vždy připraveno na hodnotu 2 pro skupinu funkcí HTTP, platforma udržuje dvě instance vždy spuštěné a přiřazené aplikaci pro funkce HTTP v aplikaci. Tyto instance zpracovávají vaše spuštění funkcí, ale v závislosti na nastavení souběžnosti se platforma škáluje nad rámec těchto dvou instancí s instancemi na vyžádání.
Informace o konfiguraci vždy připravených instancí najdete v tématu Nastavení vždy připravených počtu instancí.
Souběžnost
Souběžnost odkazuje na počet paralelních spuštění funkce v instanci vaší aplikace. Můžete nastavit maximální počet souběžnýchspuštěních Další informace najdete v tématu Souběžnost triggeru HTTP.
Souběžnost má přímý vliv na to, jak se vaše aplikace škáluje, protože na nižších úrovních souběžnosti potřebujete více instancí pro zpracování poptávky řízené událostmi pro funkci. I když můžete řídit a doladit souběžnost, poskytujeme výchozí hodnoty, které ve většině případů fungují. Informace o nastavení limitů souběžnosti pro funkce triggeru HTTP najdete v tématu Nastavení limitů souběžnosti HTTP.
Nasazení
Nasazení v plánu Flex Consumption se řídí jednou cestou. Jakmile se kód projektu sestaví a zazipuje do balíčku aplikace, nasadí se do kontejneru úložiště objektů blob. Při spuštění aplikace načte balíček a spustí kód funkce z tohoto balíčku. Ve výchozím nastavení se jako kontejner nasazení používá stejný účet úložiště, který slouží k ukládání interních metadat hostitele (AzureWebJobsStorage). Můžete ale použít alternativní účet úložiště nebo zvolit upřednostňovanou metodu ověřování tím, že nakonfigurujete nastavení nasazení vaší aplikace. Při zřetězení cesty nasazení už není potřeba, aby nastavení aplikace ovlivnilo chování nasazení.
Fakturace
Při spouštění aplikací v plánu Flex Consumption se určují dva režimy, podle kterých se náklady určují. Každý režim je určen pro jednotlivé instance.
Režim fakturace | Popis |
---|---|
Na požádání | Při spuštění v režimu na vyžádání se vám účtuje jenom doba, po kterou kód funkce běží na dostupných instancích. V režimu na vyžádání se nevyžaduje žádný minimální počet instancí. Účtuje se vám: • Celková velikost paměti zřízená, zatímco každá instance na vyžádání aktivně spouští funkce (v GB sekundách), minus bezplatný grant GB za měsíc. • Celkový počet spuštění minus bezplatný grant (počet) spuštění za měsíc. |
Vždy připraveno | Můžete nakonfigurovat jednu nebo více instancí přiřazených ke konkrétním typům triggerů (HTTP/Durable/Blob) a jednotlivým funkcím, které jsou vždy k dispozici pro zpracování požadavků. Pokud máte povolené všechny vždy připravené instance, účtují se vám poplatky za: • Celková velikost paměti zřízená ve všech instancích, které jsou vždy připravené, označované jako standardní hodnoty (v GB sekundách). • Celková velikost paměti zřízená během doby, kdy každá vždy připravená instance aktivně spouští funkce (v GB sekundách). • Celkový počet spuštění. Ve vždy připravené fakturaci neexistují žádné bezplatné granty. |
Nejaktuálnější informace o cenách spouštění, vždy připravených standardních nákladů a bezplatných grantů na provádění na vyžádání najdete na stránce s cenami služby Azure Functions.
Minimální fakturovatelná doba provádění pro oba režimy provádění je 1 000 ms. Za tímto účelem se fakturovatelné období aktivity zaokrouhlí nahoru na nejbližší 100 ms. Podrobnosti o fakturačních měřičích plánu Flex Consumption najdete v referenčních informacích k monitorování.
Podrobnosti o tom, jak se náklady počítají při spuštění v plánu Flex Consumption, včetně příkladů, najdete v tématu Náklady založené na spotřebě.
Podporované verze zásobníku jazyků
Tato tabulka ukazuje verze zásobníku jazyků, které jsou aktuálně podporované pro aplikace Flex Consumption:
Zásobník jazyků | Požadovaná verze |
---|---|
C# (režim izolovaného procesu)1 | .NET 82 |
Java | Java 11, Java 17 |
Node.js | Uzel 20 |
PowerShell | PowerShell 7.4 |
Python | Python 3.10, Python 3.11 |
Režim 1jazyka C# v procesu není podporovaný. Místo toho je potřeba migrovat projekt kódu .NET, který se má spustit v izolovaném pracovním modelu.
2Vyžaduje verzi 1.20.0
microsoft.Azure.Functions.Worker a 1.16.2
novější nebo novější microsoft.Azure.Functions.Worker.Sdk.
Kvóty paměti místního předplatného
V současné době má každá oblast v daném předplatném limit 512,000 MB
paměti pro všechny instance aplikací spuštěných v plánech Flex Consumption. To znamená, že v daném předplatném a oblasti můžete mít libovolnou kombinaci velikostí a počtů paměti instance, pokud zůstanou pod limitem kvóty. Každý z následujících příkladů by například znamenal dosažení kvóty a aplikace by přestaly škálovat:
- Máte jednu 2 048 MB aplikaci škálovanou na 100 a druhou 2 048 MB škálovanou na 150 instancí.
- Máte jednu 2 048 MB aplikaci, která škálovala na 250 instancí.
- Máte jednu 4 096 MB aplikaci, která škálovala na 125 instancí.
- Máte jednu 4 096 MB aplikaci škálovanou na 100 a jednu 2 048 MB škálovanou na 50 instancí.
Tuto kvótu můžete zvýšit, aby se aplikace Flex Consumption mohly škálovat dál podle vašich požadavků. Pokud vaše aplikace vyžadují větší kvótu, vytvořte lístek podpory.
Zastaralé vlastnosti a nastavení
Ve funkci Flex Consumption je mnoho standardních nastavení aplikací a vlastností konfigurace webu používaných v Bicep, šablonách ARM a celkové rovině řízení zastaralé nebo přesunuté a nemělo by se používat při automatizaci vytváření prostředků aplikace funkcí. Další informace najdete v tématu Vyřazení plánu Flex Consumption.
Důležité informace
Při používání plánu Flex Consumption mějte na paměti tyto další aspekty:
- Hostitel: Pro inicializaci aplikace existuje 30sekundový časový limit. Když spuštění aplikace funkcí trvá déle než 30 sekund, může se zobrazit zaprotokolované položky související s
System.TimeoutException
gRPC. Tento časový limit momentálně nejde nakonfigurovat. Další informace najdete v této pracovní položce hostitele. - Durable Functions: Azure Storage je v současné době jediným podporovaným poskytovatelem úložiště pro Durable Functions, když je hostovaný v plánu Flex Consumption. Podívejte se na doporučení při hostování Durable Functions v plánu Flex Consumption.
- Podle těchto pokynů se ujistěte, že
Microsoft.App
je pro vaše předplatné povolený poskytovatel prostředků Azure. Delegování podsítě vyžadované aplikacemi Flex Consumption jeMicrosoft.App/environments
. - Triggery: Všechny triggery jsou plně podporované s výjimkou triggerů Kafka a Azure SQL. Trigger služby Blob Storage podporuje pouze zdroj služby Event Grid. Aplikace funkcí bez jazyka C# musí používat verzi
[4.0.0, 5.0.0)
sady rozšíření nebo novější verzi. - Oblasti: V současné době se nepodporují všechny oblasti. Další informace najdete v tématu Zobrazení aktuálně podporovaných oblastí.
- Nasazení: Sloty nasazení se v současné době nepodporují.
- Měřítko: Nejnižší maximální měřítko je aktuálně
40
. Nejvyšší aktuálně podporovaná hodnota je1000
. - Spravované závislosti: Služba Flex Consumption nepodporuje spravované závislosti v PowerShellu . Místo toho musíte definovat vlastní moduly.
- Nastavení diagnostiky: Nastavení diagnostiky se v současné době nepodporuje.
- Certifikáty: Načítání certifikátů s nastavením aplikace WEBSITE_LOAD_CERTIFICATES se v současné době nepodporuje.
- Reference ke službě Key Vault: Odkazy služby Key Vault v nastavení aplikace nefungují, pokud je přístup k síti omezený, i když má aplikace funkcí integraci virtuální sítě. Aktuálním alternativním řešením je přímý odkaz na key Vault v kódu a čtení požadovaných tajných kódů.
Související články
Možnostihostování Azure Functions – Vytváření a správa aplikací funkcí v plánu Flex Consumption