Sdílet prostřednictvím


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:

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 je Microsoft.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 je 1000.
  • 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ů.

Možnostihostování Azure Functions – Vytváření a správa aplikací funkcí v plánu Flex Consumption