Porovnání možností hostování Azure Functions
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.
- Potřebujete 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 |
- Bez ohledu na nastavení časového limitu aplikace funkcí může funkci aktivované protokolem HTTP trvat reakce na požadavek maximálně 230 sekund.
- Výchozí časový limit pro modul runtime Služby Functions verze 1.x je neomezený.
- 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í.
- 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í.
- 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.