Plán Azure Functions Premium

Plán Azure Functions Elastic Premium je možnost hostování dynamického škálování pro aplikace funkcí. Další možnosti plánu hostování najdete v článku o plánu hostování.

Důležité

Azure Functions se dá spustit na platformě Aplikace Azure Service. Na platformě App Service se plány, které hostují aplikace funkcí plánu Premium, označují jako plány Elastic Premium s názvy skladových položek, jako jsou EP1. Pokud se rozhodnete spustit aplikaci funkcí v plánu Premium, nezapomeňte vytvořit plán s názvem skladové položky, který začíná na "E", například EP1. Názvy skladových položek plánu služby App Service, které začínají na "P", například P1V2 (plán Premium V2 Small), jsou ve skutečnosti vyhrazené plány hostování. Vzhledem k tomu, že jsou vyhrazené a ne Elastic Premium, plány s názvy skladových položek začínající na "P" se nebudou škálovat dynamicky a můžou zvýšit náklady.

Hostování plánů Premium poskytuje vašim funkcím následující výhody:

  • Vyhněte se studenému startu s teplýmiinstancemi
  • Připojení k virtuální síti.
  • Podporuje delší dobu trvání modulu runtime.
  • Volba velikostí instancí Premium
  • Předvídatelnější ceny v porovnání s plánem Consumption
  • Přidělování aplikací s vysokou hustotou pro plány s více aplikacemi funkcí

Při použití plánu Premium se instance hostitele Azure Functions přidají a odeberou na základě počtu příchozích událostí, stejně jako plán Consumption. Do stejného plánu Premium je možné nasadit více aplikací funkcí a plán umožňuje nakonfigurovat velikost výpočetní instance, velikost základního plánu a maximální velikost plánu.

Fakturace

Fakturace plánu Premium vychází z počtu jádrosekund a paměti přidělené napříč instancemi. Tato fakturace se liší od plánu Consumption, který se účtuje na základě spotřeby a provádění prostředků za sekundu. U plánu Premium se neúčtují žádné poplatky za provádění. Výsledkem této fakturace jsou minimální měsíční náklady na aktivní plán bez ohledu na to, jestli je funkce aktivní nebo nečinná. Mějte na paměti, že všechny aplikace funkcí v plánu Premium sdílejí přidělené instance. Další informace najdete na stránce s cenami služby Azure Functions.

Poznámka:

Každý plán Premium má vždy alespoň jednu aktivní (fakturovanou) instanci.

Vytvoření plánu Premium

Při vytváření aplikace funkcí na webu Azure Portal je výchozí plán Consumption. Pokud chcete vytvořit aplikaci funkcí, která běží v plánu Premium, musíte explicitně vytvořit nebo zvolit plán hostování Azure Functions Premium pomocí některé z cenových úrovní Elastic Premium . Aplikace funkcí, kterou vytvoříte, se pak hostuje v tomto plánu. Azure Portal usnadňuje vytvoření plánu Premium i aplikace funkcí najednou. Ve stejném plánu Premium můžete spustit více než jednu aplikaci funkcí, obě ale musí běžet ve stejném operačním systému (Windows nebo Linux).

V následujících článcích se dozvíte, jak programově vytvořit aplikaci funkcí s plánem Premium:

Eliminace studených startů

Pokud v plánu Consumption nedojde k událostem nebo spuštěním, může se vaše aplikace škálovat na nula instancí. Když se objeví nové události, musí být nová instance s vaší aplikací spuštěnou na ní specializovaná. V závislosti na aplikaci trvá specializaci nových instancí nějakou dobu. Tato dodatečná latence prvního volání se často označuje jako studený start aplikace.

Plán Premium poskytuje dvě funkce, které spolupracují, aby se efektivně eliminovaly studené starty ve vašich funkcích: vždy připravené instance a předzbrojené instance. Vždy připravené instance jsou kategorie předem přidělených instancí, které nemají vliv na škálování, a předzbrojené instance jsou vyrovnávací pamětí při škálování z důvodu událostí HTTP.

Když události začnou spouštět aplikaci, nejprve se přesměrují do vždy připravených instancí. Jakmile se funkce aktivuje kvůli událostem HTTP, ostatní instance se zahřejí jako vyrovnávací paměť. Tyto instance ve vyrovnávací paměti se nazývají předzbrojené instance. Tato vyrovnávací paměť snižuje studený start pro nové instance vyžadované během škálování.

Vždy připravené instance

V plánu Premium můžete mít aplikaci vždy připravenou na zadaný počet instancí. Vaše aplikace běží na těchto instancích nepřetržitě bez ohledu na zatížení. Pokud zatížení překročí to, co můžou vždy připravené instance zpracovat, přidají se podle potřeby další instance až do zadaného maxima.

Toto nastavení na úrovni aplikace také řídí minimální instance vašeho plánu. Zvažte například tři aplikace funkcí ve stejném plánu Premium. Když dva z vašich aplikací mají vždy připravený počet instancí nastavený na jednu a ve třetí instanci je nastaveno na pět, minimální počet pro celý plán je pět. To také odráží minimální počet instancí, za které se váš plán účtuje. Maximální počet vždy připravených instancí, které podporujeme pro každou aplikaci, je 20.

Počet instancí vždy připravených na webu Azure Portal můžete nakonfigurovat tak, že vyberete svou aplikaci Funkcí, přejdete na kartu Funkce platformy a vyberete možnosti horizontálního navýšení kapacity. V okně pro úpravy aplikace funkcí jsou vždy připravené instance specifické pro danou aplikaci.

Nastavení elastického škálování na portálu

Předzbrojené instance

Nastavení počtu předpřipravených instancí poskytuje zahřáté instance jako vyrovnávací paměť během událostí škálování HTTP a aktivace. Předzbrojené instance se budou dál ukládat do vyrovnávací paměti, dokud nedosáhnete maximálního limitu horizontálního navýšení kapacity. Výchozí počet předzbrojených instancí je 1 a ve většině scénářů by tato hodnota měla zůstat 1.

Zvažte méně běžný scénář, například aplikaci spuštěnou ve vlastním kontejneru. Vzhledem k tomu, že vlastní kontejnery mají dlouhou přípravu, můžete zvážit zvýšení této vyrovnávací paměti předzbrojených instancí. Předpřipravená instance se aktivuje až po použití všech aktivních instancí.

Můžete také definovat aktivační událost pro přípravu, která se spouští během předzpracování. Trigger warmup můžete použít k předběžnému načtení vlastních závislostí během předzpracovacího procesu, aby vaše funkce byly připraveny okamžitě začít zpracovávat požadavky. Další informace najdete v triggeru pro přípravu služby Azure Functions.

Podívejte se na tento příklad spolupráce vždy připravených instancí a předzbrojených instancí. Aplikace funkcí Premium má nakonfigurované dvě vždy připravené instance a výchozí nastavení jedné předzbrojené instance.

Horizontální navýšení kapacity grafu

  1. Když je aplikace nečinná a neaktivují se žádné události, aplikace se zřídí a spustí se dvěma instancemi. V tuto chvíli se vám budou účtovat dvě vždy připravené instance, ale neúčtují se vám za předzbrojenou instanci, protože není přidělena žádná předzbrojená instance.
  2. Když vaše aplikace začne přijímat provoz HTTP, požadavky se vyrovnávají zatížení mezi dvěma vždy připravenými instancemi. Jakmile tyto dvě instance začnou zpracovávat události, přidá se instance, která vyplní předzbrojenou vyrovnávací paměť. Aplikace je teď spuštěná se třemi zřízenými instancemi: dvěma vždy připravenými instancemi a třetí předzbrojenou a neaktivní vyrovnávací pamětí. Za tři instance se vám budou účtovat poplatky.
  3. S rostoucím zatížením a vaše aplikace potřebuje více instancí pro zpracování provozu HTTP, tato předzbrojená instance se přehodí na aktivní instanci. Načtení PROTOKOLU HTTP je nyní směrováno do všech tří instancí a čtvrtá instance je okamžitě zřízena, aby vyplnila předzbrojenou vyrovnávací paměť.
  4. Tato posloupnost škálování a předběžného vytváření pokračuje, dokud nedosáhnete maximálního počtu instancí aplikace nebo se sníží zatížení, což způsobí, že se platforma po určité době škáluje zpět. Žádné instance nejsou předzbrojené nebo aktivované nad rámec maxima.

Na portálu nemůžete změnit nastavení počtu předzbrojené instance, musíte místo toho použít Azure CLI nebo Azure PowerShell.

Maximální počet instancí aplikace funkcí

Kromě maximálního počtu nárůstů kapacity plánu můžete nakonfigurovat maximální počet pro jednotlivé aplikace. Maximální počet aplikací je možné nakonfigurovat pomocí limitu škálování aplikace. Maximální limit horizontálního navýšení kapacity aplikace nesmí překročit maximální počet instancí nárůstu kapacity plánu.

Připojení k privátní síti

Aplikace funkcí nasazené do plánu Premium můžou využívat integraci virtuální sítě pro webové aplikace. Když je nakonfigurovaná, může vaše aplikace komunikovat s prostředky ve vaší virtuální síti nebo zabezpečená prostřednictvím koncových bodů služby. Omezení IP adres jsou dostupná také v aplikaci, aby omezila příchozí provoz.

Při přiřazování podsítě k aplikaci funkcí v plánu Premium potřebujete podsíť s dostatečnými IP adresami pro každou potenciální instanci. Vyžadujeme blok IP adres s alespoň 100 dostupnými adresami.

Další informace najdete v tématu Integrace aplikace funkcí s virtuální sítí.

Rychlé elastické škálování

Pro vaši aplikaci se automaticky přidají další výpočetní instance pomocí stejné logiky rychlého škálování jako v plánu Consumption. Aplikace ve stejném plánu služby App Service se škáluje nezávisle na sobě na základě potřeb jednotlivých aplikací. Aplikace Functions ve stejném plánu služby App Service ale sdílejí prostředky virtuálních počítačů, aby se snížily náklady, pokud je to možné. Počet aplikací přidružených k virtuálnímu počítači závisí na využití jednotlivých aplikací a velikosti virtuálního počítače.

Další informace o tom, jak škálování funguje, najdete v tématu Škálování řízené událostmi ve službě Azure Functions.

Delší doba běhu

Funkce v plánu Consumption jsou pro jedno spuštění omezené na 10 minut. V plánu Premium se doba běhu ve výchozím nastavení nastaví na 30 minut, aby se zabránilo spuštěním. Konfiguraci host.json ale můžete upravit tak, aby byla doba trvání pro aplikace plánů Premium nevázaná, a to s následujícími omezeními:

  • Upgrady platformy můžou aktivovat spravované vypnutí a zastavit provádění funkce.
  • Výpadky platformy můžou způsobit neošetřené vypnutí a zastavit provádění funkce.
  • Existuje nečinný časovač, který zastaví pracovní proces po 60 minutách bez nových spuštění.
  • Chování škálování může způsobit vypnutí pracovního procesu po 60 minutách.
  • Prohození slotů může během prohození ukončit spouštění zdrojového a cílového slotu.

Migrace

Pokud máte existující aplikaci funkcí, můžete pomocí příkazů Azure CLI migrovat aplikaci mezi plánem Consumption a plánem Premium ve Windows. Konkrétní příkazy závisí na směru migrace. Další informace najdete v tématu Plánování migrace.

Tato migrace není v Linuxu podporovaná.

Nastavení plánu Premium

Při vytváření plánu existují dvě nastavení velikosti plánu: minimální počet instancí (nebo velikost plánu) a limit maximálního nárůstu.

Pokud vaše aplikace vyžaduje instance nad rámec vždy připravených instancí, může i nadále škálovat na více instancí, dokud počet instancí nenarazí na maximální limit maximálního navýšení kapacity plánu, nebo maximální limit horizontálního navýšení kapacity aplikace, pokud je nakonfigurovaný. Za instance se vám účtují jenom v době, kdy jsou spuštěné a přidělené vám, za sekundu. Platforma se maximálně snaží škálovat aplikaci na definované maximální limity.

Velikost plánu a maximální hodnoty můžete nakonfigurovat na webu Azure Portal výběrem možností horizontálního navýšení kapacity v části Nastavení aplikace funkcí nasazené do tohoto plánu.

Nastavení velikosti elastického plánu na portálu

Minimum pro každý plán Premium je alespoň jedna instance. Skutečný minimální počet instancí je určený pro vás na základě vždy připravených instancí požadovaných aplikacemi v plánu. Pokud například aplikace A požaduje pět instancí vždy připravených a aplikace B požaduje dvě vždy připravené instance ve stejném plánu, minimální velikost plánu se určí jako pět. Aplikace A běží na všech pěti a aplikace B běží jenom na 2.

Důležité

Za každou instanci přidělenou v minimálním počtu instancí se vám účtují poplatky bez ohledu na to, jestli se funkce spouštějí nebo ne.

Ve většině případů je toto automaticky vypočtené minimum dostatečné. Škálování nad rámec minimálního rozsahu se však provádí v rámci maximálního úsilí. Je sice možné, že by v určitém časovém limitu mohlo dojít ke zpoždění, pokud nejsou k dispozici jiné instance. Nastavením minimálního minimálního, než je automaticky vypočtené minimum, si předem vyhradíte instance před horizontálním navýšením kapacity.

Minimální instance na webu Azure Portal můžete nakonfigurovat tak, že v části Nastavení aplikace funkcí nasazené do tohoto plánu vyberete možnosti horizontálního navýšení kapacity.

Minimální nastavení instance na portálu

Dostupné skladové položky instance

Při vytváření nebo škálování plánu si můžete vybrat ze tří velikostí instancí. Účtuje se vám celkový počet zřízených jader a paměti za sekundu, které vám každá instance přidělí. Vaše aplikace se může podle potřeby automaticky škálovat na více instancí.

Skladová jednotka (SKU) Cores Memory (Paměť) Úložiště
EP1 0 3,5 GB 250 GB
EP2 2 7 GB 250 GB
EP3 4 14 GB 250 GB

Důležité informace o využití paměti

Spuštění na počítači s větší pamětí neznamená vždy, že vaše aplikace funkcí používá veškerou dostupnou paměť.

Aplikace funkcí JavaScriptu je například omezena výchozím limitem paměti v Node.js. Pokud chcete tento pevný limit paměti zvýšit, přidejte nastavení languageWorkers:node:arguments aplikace s hodnotou --max-old-space-size=<max memory in MB>.

A pro plány s více než 4 GB paměti se ujistěte, že nastavení platformy Bitness je nastavené v 64 Bit části Obecné Nastavení.

Maximální škálování na více oblastí

Toto jsou aktuálně podporované maximální hodnoty horizontálního navýšení kapacity pro jeden plán v každé oblasti a konfiguraci operačního systému:

Oblast Windows Linux
Austrálie – střed 100 20
Austrálie – střed 2 100 Není k dispozici
Austrálie – východ 100 40
Austrálie – jihovýchod 100 20
Brazílie – jih 100 20
Střední Kanada 100 100
Indie – střed 100 20
USA – střed 100 100
Čína – východ 2 100 20
Čína – sever 2 100 20
Východní Asie 100 20
USA – východ 100 100
USA – východ 2 100 100
Francie – střed 100 60
Německo – středozápad 100 20
Izrael - střed 100 20
Itálie - sever 100 20
Japonsko – východ 100 20
Japonsko – západ 100 20
Jio – západní Indie 100 20
Jižní Korea – střed 100 20
Korea Jih 40 20
Severní střed USA 100 20
Severní Evropa 100 100
Norsko – východ 100 20
Jižní Afrika – sever 100 20
Jižní Afrika – západ 20 20
Středojižní USA 100 100
Indie – jih 100 Není k dispozici
Southeast Asia 100 20
Švýcarsko – sever 100 20
Švýcarsko – západ 100 20
Spojené arabské emiráty – sever 100 20
Velká Británie – jih 100 100
Velká Británie – západ 100 20
USGov – Arizona 100 20
USGov Texas 100 Není k dispozici
USGov Virginia 100 20
Středozápad USA 100 20
Západní Evropa 100 100
Západ Indie 100 20
USA – západ 100 100
Západní USA 2 100 20
USA – západ 3 100 20

Další informace najdete v úplné regionální dostupnosti služby Azure Functions.

Další kroky