Porovnání možností hostování Azure Functions

Dokončeno

Při vytváření aplikace funkcí v Azure musíte zvolit plán hostování vaší aplikace. Azure nabízí tyto možnosti hostování kódu funkce:

Možnost hostování Služba Dostupnost Podpora kontejnerů
Plán Consumption Azure Functions Obecně dostupné (GA) Nic
Plán Flex Consumption Azure Functions Preview Nic
Plán Premium Azure Functions GA Linux
Vyhrazený plán Azure Functions GA Linux
Container Apps Azure Container Apps GA Linux

infrastruktura služby Aplikace Azure usnadňuje hostování azure Functions na virtuálních počítačích s Linuxem i Windows. Možnost hostování, kterou zvolíte, určuje následující chování:

  • Jak se aplikace funkcí škáluje.
  • Prostředky dostupné pro každou instanci aplikace funkcí.
  • Podpora pokročilých funkcí, jako je připojení k virtuální síti Azure.
  • Podpora kontejnerů Linuxu

Zvolený plán má také vliv na náklady na spuštění kódu funkce.

Přehled plánů

Následuje souhrn výhod různých možností hostování:

Plán Consumption

Plán Consumption je výchozím plánem hostování. Platíte za výpočetní prostředky jenom v případě, že vaše funkce běží (průběžné platby) s automatickým škálováním. V plánu Consumption se instance hostitele služby Azure Functions přidávají a odebírají automaticky na základě počtu příchozích událostí.

Plán Flex Consumption

Získejte vysokou škálovatelnost s volbami výpočetních prostředků, virtuálními sítěmi a průběžnými platbami. V plánu Flex Consumption se instance hostitele Functions dynamicky přidávají a odebírají na základě nakonfigurované souběžnosti jednotlivých instancí a počtu příchozích událostí.

Začátek chladu můžete snížit zadáním počtu předem zřízených (vždy připravených) instancí. Škáluje se automaticky na základě poptávky.

Plán Premium

Automaticky škáluje na základě poptávky pomocí předem ozbrojených pracovníků, které spouští aplikace bez zpoždění po nečinnosti, běží na výkonnějších instancích a připojuje se k virtuálním sítím.

V následujících situacích zvažte plán Azure Functions Premium:

  • Aplikace funkcí běží nepřetržitě nebo téměř nepřetržitě.
  • Chcete mít větší kontrolu nad vašimi instancemi a chcete do stejného plánu nasadit více aplikací funkcí se škálováním řízeným událostmi.
  • V plánu Consumption máte velký počet malých spuštění a fakturu za vysoké provedení, ale nízké GB sekund.
  • Potřebujete více možností procesoru nebo paměti, než poskytují plány consumption.
  • Váš kód musí běžet déle, než je maximální doba provádění povolená v plánu Consumption.
  • Potřebujete připojení k virtuální síti.
  • Chcete zadat vlastní image Linuxu, ve které chcete spouštět funkce.

Plán Dedicated

Spouštějte funkce v rámci plánu služby App Service s pravidelnými sazbami plánu služby App Service. Nejvhodnější pro dlouhotrvající scénáře, kdy durable Functions nejde použít.

V následujících situacích zvažte plán služby App Service:

  • Musíte mít plně předvídatelnou fakturaci nebo potřebujete ručně škálovat instance.
  • Chcete spustit více webových aplikací a aplikací funkcí ve stejném plánu.
  • Potřebujete přístup k větším možnostem velikosti výpočetních prostředků.
  • Úplná izolace výpočetních prostředků a zabezpečený přístup k síti poskytovaný službou App Service Environment (ASE).
  • Vysoké využití paměti a vysoké škálování (ASE).

Container Apps

Vytvářejte a nasazujte kontejnerizované aplikace funkcí v plně spravovaném prostředí hostované službou Azure Container Apps.

Pomocí programovacího modelu Azure Functions můžete vytvářet bezserverové aplikace funkcí nativní pro cloud. Funkce můžete spouštět společně s dalšími mikroslužbami, rozhraními API, weby a pracovními postupy jako programy hostované kontejnery.

Zvažte hostování funkcí v Container Apps v následujících situacích:

  • Vlastní knihovny chcete s kódem funkce zabalit tak, aby podporovaly obchodní aplikace.
  • Je potřeba migrovat spouštění kódu z místních nebo starších aplikací do nativních cloudových mikroslužeb spuštěných v kontejnerech.
  • Chcete se vyhnout režii a složitosti správy clusterů Kubernetes a vyhrazených výpočetních prostředků.
  • Pro vaše funkce potřebujete vysoký výpočetní výkon, který poskytuje vyhrazené výpočetní prostředky procesoru.

Doba trvání časového limitu aplikace funkcí

Vlastnost functionTimeout v souboru projektu host.json určuje dobu časového limitu pro funkce v aplikaci funkcí. Tato vlastnost se vztahuje konkrétně na provádění funkcí. Po spuštění triggeru funkce musí funkce v době časového limitu vrátit nebo odpovědět.

Následující tabulka uvádí výchozí a maximální hodnoty (v minutách) pro konkrétní plány:

Plánování Výchozí Maximálně1
Plán Consumption 5 10
Plán Flex Consumption 30 Neomezené3
Plán Premium 302 Neomezené3
Plán Dedicated 302 Neomezené3
Container Apps 305 Neomezené3
  1. Bez ohledu na nastavení časového limitu aplikace funkcí může funkci aktivované protokolem HTTP trvat reakce na požadavek maximálně 230 sekund.
  2. Výchozí časový limit pro modul runtime Služby Functions verze 1.x je neomezený.
  3. Zaručeno až 60 minut. Opravy operačního systému a modulu runtime, opravy ohrožení zabezpečení a škálování v chování můžou stále rušit provádění funkcí.
  4. V plánu Flex Consumption hostitel nevynucuje časový limit provádění. V současné době ale neexistují žádné záruky, protože platforma může potřebovat ukončit instance během horizontálního navýšení kapacity, nasazení nebo instalace aktualizací.
  5. 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.