Plan Premium usługi Azure Functions

Plan Elastic Premium usługi Azure Functions to opcja hostingu dynamicznego skalowania dla aplikacji funkcji. Aby uzyskać informacje o innych opcjach planu hostingu, zobacz artykuł dotyczący planu hostingu.

Ważne

Usługa Azure Functions może działać na platformie usługi aplikacja systemu Azure. Na platformie App Service plany hostujące aplikacje funkcji planu Premium są określane jako plany Elastic Premium z nazwami jednostek SKU, takimi jak EP1. Jeśli zdecydujesz się uruchomić aplikację funkcji w planie Premium, pamiętaj, aby utworzyć plan z nazwą jednostki SKU rozpoczynającą się od "E", na przykład EP1. Nazwy jednostek SKU planu usługi App Service rozpoczynające się od "P", takie jak P1V2 (plan Premium V2 Small), są rzeczywiście dedykowanymi planami hostingu. Ponieważ są one dedykowane, a nie elastyczne Premium, plany o nazwach jednostek SKU rozpoczynających się od "P" nie będą skalowane dynamicznie i mogą zwiększyć koszty.

Hosting planu Premium zapewnia następujące korzyści dla funkcji:

  • Unikaj zimnych początków z ciepłymi wystąpieniami.
  • Łączność sieci wirtualnej.
  • Obsługuje dłuższe czasy wykonywania.
  • Wybór rozmiarów wystąpień Premium.
  • Bardziej przewidywalne ceny w porównaniu z planem Zużycie.
  • Alokacja aplikacji o wysokiej gęstości dla planów z wieloma aplikacjami funkcji.

W przypadku korzystania z planu Premium wystąpienia hosta usługi Azure Functions są dodawane i usuwane na podstawie liczby zdarzeń przychodzących, podobnie jak plan Zużycie. Wiele aplikacji funkcji można wdrożyć w tym samym planie Premium, a plan umożliwia skonfigurowanie rozmiaru wystąpienia obliczeniowego, rozmiaru planu podstawowego i maksymalnego rozmiaru planu.

Rozliczenia

Rozliczenia dla planu Premium są oparte na liczbie sekund pracy rdzenia i pamięci przydzielonej między wystąpieniami. To rozliczenie różni się od planu Zużycie, który jest rozliczany na podstawie użycia zasobów i wykonań na sekundę. Za plan Premium nie są naliczane opłaty za wykonanie. To rozliczanie powoduje minimalny miesięczny koszt za aktywny plan, niezależnie od tego, czy funkcja jest aktywna, czy bezczynna. Należy pamiętać, że wszystkie aplikacje funkcji w udostępnionym planie Premium współdzielą przydzielone wystąpienia. Aby dowiedzieć się więcej, zobacz stronę cennika usługi Azure Functions.

Uwaga

Każdy plan Premium ma co najmniej jedno aktywne (rozliczane) wystąpienie przez cały czas.

Tworzenie planu Premium

Podczas tworzenia aplikacji funkcji w witrynie Azure Portal plan Zużycie jest domyślny. Aby utworzyć aplikację funkcji działającą w planie Premium, musisz jawnie utworzyć lub wybrać plan hostingu usługi Azure Functions Premium przy użyciu jednego z jednostek SKU Elastic Premium . Utworzona aplikacja funkcji jest następnie hostowana w tym planie. Witryna Azure Portal ułatwia jednoczesne tworzenie zarówno planu Premium, jak i aplikacji funkcji. Można uruchomić więcej niż jedną aplikację funkcji w tym samym planie Premium, ale muszą działać w tym samym systemie operacyjnym (Windows lub Linux).

W poniższych artykułach pokazano, jak programowo utworzyć aplikację funkcji przy użyciu planu Premium:

Eliminowanie zimnych startów

Gdy zdarzenia lub wykonania nie występują w planie Zużycie, aplikacja może być skalowana do zera wystąpień. Gdy pojawią się nowe zdarzenia, nowe wystąpienie aplikacji uruchomionej na niej musi być wyspecjalizowane. Specjalizacja nowych wystąpień zajmuje trochę czasu, w zależności od aplikacji. To dodatkowe opóźnienie podczas pierwszego wywołania jest często nazywane zimnym startem aplikacji.

Plan Premium udostępnia dwie funkcje, które współpracują ze sobą, aby skutecznie wyeliminować zimne starty w funkcjach: zawsze gotowe wystąpienia i wystąpienia wstępnie przygotowane. Zawsze gotowe wystąpienia są kategorią wstępnie przydzielanych wystąpień, których nie dotyczy skalowanie, a wstępnie przygotowane są buforem podczas skalowania z powodu zdarzeń HTTP.

Gdy zdarzenia zaczynają wyzwalać aplikację, są one najpierw kierowane do zawsze gotowych wystąpień. Gdy funkcja staje się aktywna z powodu zdarzeń HTTP, inne wystąpienia są rozgrzewane jako bufor. Te wystąpienia buforowane są nazywane wystąpieniami wstępnymi. Ten bufor zmniejsza zimny start dla nowych wystąpień wymaganych podczas skalowania.

Zawsze gotowe wystąpienia

W planie Premium możesz mieć aplikację zawsze gotową na określoną liczbę wystąpień. Aplikacja działa w sposób ciągły na tych wystąpieniach niezależnie od obciążenia. Jeśli obciążenie przekracza to, co zawsze gotowe wystąpienia mogą obsługiwać, więcej wystąpień jest dodawanych zgodnie z potrzebami, maksymalnie do określonej wartości maksymalnej.

To ustawienie na poziomie aplikacji kontroluje również minimalne wystąpienia planu. Rozważ na przykład posiadanie trzech aplikacji funkcji w tym samym planie Premium. Gdy dwie aplikacje mają zawsze gotową liczbę wystąpień ustawioną na jedną, a w trzecim wystąpieniu jest ustawiona na pięć, minimalna liczba całego planu wynosi pięć. Odzwierciedla to również minimalną liczbę wystąpień, dla których jest rozliczany plan. Maksymalna liczba zawsze gotowych wystąpień, które obsługujemy dla aplikacji, wynosi 20.

Możesz skonfigurować liczbę zawsze gotowych wystąpień w witrynie Azure Portal, wybierając aplikację funkcji, przechodząc do karty Funkcje platformy i wybierając opcje Skalowanie w poziomie. W oknie edycji aplikacji funkcji zawsze gotowe wystąpienia są specyficzne dla tej aplikacji.

Ustawienia skalowania elastycznego w portalu

Wystąpienia przedwarmowane

Ustawienie liczby wystąpień wstępnie rozgrzanych udostępnia wystąpienia jako bufor podczas skalowania HTTP i zdarzeń aktywacji. Wystąpienia przedwarmowane będą buforowane do momentu osiągnięcia maksymalnego limitu skalowania w poziomie. Domyślna liczba wstępnie utworzonych wystąpień to 1, a w większości scenariuszy ta wartość powinna pozostać na poziomie 1.

Rozważmy mniej typowy scenariusz, taki jak aplikacja działająca w kontenerze niestandardowym. Ponieważ kontenery niestandardowe mają długą rozgrzewkę, można rozważyć zwiększenie tego buforu wstępnie rozwojonych wystąpień. Wystąpienie przedwzroczone staje się aktywne tylko po użyciu wszystkich aktywnych wystąpień.

Można również zdefiniować wyzwalacz rozgrzewki uruchamiany podczas procesu przedwzroczy. Możesz użyć wyzwalacza rozgrzewki, aby wstępnie załadować niestandardowe zależności podczas procesu przedwojennego, dzięki czemu funkcje są gotowe do natychmiastowego rozpoczęcia przetwarzania żądań. Aby dowiedzieć się więcej, zobacz Wyzwalacz rozgrzewania usługi Azure Functions.

Rozważmy ten przykład współpracy wystąpień i wystąpień wstępnie gotowych. Aplikacja funkcji w warstwie Premium ma skonfigurowane dwa zawsze gotowe wystąpienia i wartość domyślną jednego wystąpienia z góry.

Skalowanie wykresu w poziomie

  1. Gdy aplikacja jest bezczynna i żadne zdarzenia nie są wyzwalane, aplikacja jest aprowizowana i uruchamiana z dwoma wystąpieniami. Obecnie opłaty są naliczane za dwa zawsze gotowe wystąpienia, ale nie są naliczane opłaty za wystąpienie przedwarmowane, ponieważ nie jest przydzielone żadne wystąpienie wstępne.
  2. Gdy aplikacja zacznie odbierać ruch HTTP, żądania są zrównoważone w dwóch zawsze gotowych wystąpieniach. Gdy tylko te dwa wystąpienia rozpoczną przetwarzanie zdarzeń, wystąpienie zostanie dodane w celu wypełnienia buforu przedwzroczonego. Aplikacja jest teraz uruchomiona z trzema wystąpieniami aprowizacji: dwoma zawsze gotowymi wystąpieniami i trzecim buforem wstępnie przygotowanym i nieaktywnym. Opłaty są naliczane za trzy wystąpienia.
  3. Wraz ze wzrostem obciążenia i potrzebami aplikacji jest więcej wystąpień do obsługi ruchu HTTP, to wstępnie utworzone wystąpienie jest zamieniane na aktywne wystąpienie. Obciążenie HTTP jest teraz kierowane do wszystkich trzech wystąpień, a czwarte wystąpienie jest natychmiast aprowizowane w celu wypełnienia buforu przedwzroczonego.
  4. Ta sekwencja skalowania i przedwzromienia będzie kontynuowana do momentu osiągnięcia maksymalnej liczby wystąpień dla aplikacji lub spadku obciążenia, co powoduje, że platforma będzie skalowana z powrotem po upływie okresu. Żadne wystąpienia nie są wstępnie uruchamiane lub aktywowane poza maksymalną wartością.

Nie można zmienić ustawienia liczby wystąpień wstępnie w portalu. Zamiast tego należy użyć interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Maksymalna liczba wystąpień aplikacji funkcji

Oprócz maksymalnej liczby serii planu można skonfigurować maksymalną liczbę serii dla aplikacji. Maksymalną liczbę aplikacji można skonfigurować przy użyciu limitu skalowania aplikacji. Maksymalny limit skalowania aplikacji w poziomie nie może przekraczać maksymalnego rozmiaru wystąpień planu.

Łączność z siecią prywatną

Aplikacje funkcji wdrożone w planie Premium mogą korzystać z integracji sieci wirtualnej dla aplikacji internetowych. Po skonfigurowaniu aplikacja może komunikować się z zasobami w sieci wirtualnej lub zabezpieczyć się za pośrednictwem punktów końcowych usługi. Ograniczenia adresów IP są również dostępne w aplikacji w celu ograniczenia ruchu przychodzącego.

Podczas przypisywania podsieci do aplikacji funkcji w planie Premium potrzebna jest podsieć z wystarczającą ilością adresów IP dla każdego potencjalnego wystąpienia. Wymagamy bloku adresów IP z co najmniej 100 dostępnymi adresami.

Aby uzyskać więcej informacji, zobacz integrowanie aplikacji funkcji z siecią wirtualną.

Szybka skala elastyczna

Więcej wystąpień obliczeniowych jest automatycznie dodawanych dla aplikacji przy użyciu tej samej logiki szybkiego skalowania co plan Zużycie. Aplikacje w tym samym planie usługi App Service są skalowane niezależnie od siebie na podstawie potrzeb poszczególnych aplikacji. Jednak aplikacje usługi Functions w tym samym planie usługi App Service współużytkują zasoby maszyn wirtualnych, aby w miarę możliwości zmniejszyć koszty. Liczba aplikacji skojarzonych z maszyną wirtualną zależy od rozmiaru każdej aplikacji i rozmiaru maszyny wirtualnej.

Aby dowiedzieć się więcej o sposobie działania skalowania, zobacz Skalowanie oparte na zdarzeniach w usłudze Azure Functions.

Dłuższy czas trwania

Funkcje w planie Zużycie są ograniczone do 10 minut dla pojedynczego wykonania. W planie Premium czas trwania przebiegu domyślnie wynosi 30 minut, aby zapobiec wykonywaniu ucieczki. Można jednak zmodyfikować konfigurację host.json tak, aby czas trwania aplikacji planu Premium był niezwiązany z następującymi ograniczeniami:

  • Uaktualnienia platformy mogą wyzwalać zarządzane zamykanie i zatrzymywać wykonywanie funkcji.
  • Awarie platformy mogą spowodować nieobsługiwane zamknięcie i zatrzymać wykonywanie funkcji.
  • Istnieje czasomierz bezczynności, który zatrzymuje proces roboczy po 60 minutach bez nowych wykonań.
  • Zachowanie skalowania w poziomie może spowodować zamknięcie procesu roboczego po upływie 60 minut.
  • Zamiany miejsc mogą kończyć wykonywanie miejsc źródłowych i docelowych podczas zamiany.

Migracja

Jeśli masz istniejącą aplikację funkcji, możesz użyć poleceń interfejsu wiersza polecenia platformy Azure, aby przeprowadzić migrację aplikacji między planem Zużycie i planem Premium w systemie Windows. Określone polecenia zależą od kierunku migracji. Aby dowiedzieć się więcej, zobacz Planowanie migracji.

Ta migracja nie jest obsługiwana w systemie Linux.

Ustawienia planu Premium

Podczas tworzenia planu istnieją dwa ustawienia rozmiaru planu: minimalna liczba wystąpień (lub rozmiar planu) i maksymalny limit liczby serii.

Jeśli aplikacja wymaga wystąpień poza zawsze gotowymi wystąpieniami, może nadal skalować w poziomie, dopóki liczba wystąpień nie osiągnie maksymalnego limitu liczby wystąpień lub maksymalnego limitu skalowania aplikacji w poziomie, jeśli zostanie skonfigurowany. Opłaty są naliczane tylko za wystąpienia, gdy są uruchomione i przydzielone Do Ciebie, na sekundę. Platforma dokłada wszelkich starań, aby skalować aplikację w poziomie do zdefiniowanych limitów maksymalnych.

Rozmiar planu i maksimum można skonfigurować w witrynie Azure Portal, wybierając opcje Skalowanie w poziomie w obszarze Ustawienia aplikacji funkcji wdrożonej w tym planie.

Ustawienia rozmiaru planu elastycznego w portalu

Minimum dla każdego planu Premium to co najmniej jedno wystąpienie. Rzeczywista minimalna liczba wystąpień jest określana na podstawie zawsze gotowych wystąpień żądanych przez aplikacje w planie. Jeśli na przykład aplikacja A żąda pięciu zawsze gotowych wystąpień, a aplikacja B żąda dwóch zawsze gotowych wystąpień w tym samym planie, minimalny rozmiar planu jest określany jako pięć. Aplikacja A działa na wszystkich pięciu, a aplikacja B działa tylko na 2.

Ważne

Opłaty są naliczane za każde wystąpienie przydzielone w minimalnej liczbie wystąpień niezależnie od tego, czy funkcje są wykonywane, czy nie.

W większości przypadków ta wartość minimalna automatycznie obliczana jest wystarczająca. Jednak skalowanie poza minimum odbywa się w najlepszym przypadku. Jest możliwe, choć mało prawdopodobne, że w określonym czasie skalowanie w poziomie może być opóźnione, jeśli inne wystąpienia są niedostępne. Ustawiając minimalną wartość wyższą niż wartość minimalną obliczaną automatycznie, należy zarezerwować wystąpienia z wyprzedzeniem skalowania w poziomie.

Minimalne wystąpienia można skonfigurować w witrynie Azure Portal, wybierając opcje skalowania w poziomie w obszarze Ustawienia aplikacji funkcji wdrożonej w tym planie.

Minimalne ustawienia wystąpienia w portalu

Dostępne jednostki SKU wystąpienia

Podczas tworzenia lub skalowania planu można wybrać jeden z trzech rozmiarów wystąpień. Opłaty są naliczane za łączną liczbę rdzeni i aprowizowaną pamięć na sekundę przydzieloną każdemu wystąpieniu. Aplikacja może automatycznie skalować w poziomie do wielu wystąpień odpowiednio do potrzeb.

SKU Rdzenie Pamięć Storage
EP1 1 3,5 GB 250 GB
EP2 2 7 GB 250 GB
EP3 100 14 GB 250 GB

Zagadnienia dotyczące użycia pamięci

Uruchamianie na maszynie z większą ilością pamięci nie zawsze oznacza, że aplikacja funkcji używa całej dostępnej pamięci.

Na przykład aplikacja funkcji Języka JavaScript jest ograniczona do domyślnego limitu pamięci w Node.js. Aby zwiększyć ten stały limit pamięci, dodaj ustawienie languageWorkers:node:arguments aplikacji z wartością --max-old-space-size=<max memory in MB>.

W przypadku planów z więcej niż 4 GB pamięci upewnij się, że ustawienie platformy bitów ma wartość 64 Bit w obszarze Ogólne Ustawienia.

Maksymalny skalowanie regionu w poziomie

Są to obecnie obsługiwane maksymalne wartości skalowania w poziomie dla jednego planu w każdym regionie i konfiguracji systemu operacyjnego:

Region (Region) Windows Linux
Australia Środkowa 100 20
Australia Środkowa 2 100 Niedostępne
Australia Wschodnia 100 40
Australia Południowo-Wschodnia 100 20
Brazylia Południowa 100 20
Kanada Środkowa 100 100
Indie Centralne 100 20
Środkowe stany USA 100 100
Chiny Wschodnie 2 100 20
Chiny Północne 2 100 20
Azja Wschodnia 100 20
Wschodnie stany USA 100 100
Wschodnie stany USA 2 100 100
Francja Środkowa 100 60
Niemcy Środkowo-Zachodnie 100 20
Izrael Centralny 100 20
Włochy Północne 100 20
Japonia Wschodnia 100 20
Japonia Zachodnia 100 20
Indie Zachodnie (Jio) 100 20
Korea Środkowa 100 20
Korea Południowa 40 20
Północno-środkowe stany USA 100 20
Europa Północna 100 100
Norwegia Wschodnia 100 20
Północna Republika Południowej Afryki 100 20
Zachodnia Republika Południowej Afryki 20 20
South Central US 100 100
Indie Południowe 100 Niedostępne
Southeast Asia 100 20
Szwajcaria Północna 100 20
Szwajcaria Zachodnia 100 20
Północne Zjednoczone Emiraty Arabskie 100 20
Południowe Zjednoczone Królestwo 100 100
Zachodnie Zjednoczone Królestwo 100 20
Administracja USA — Arizona 100 20
USGov Teksas 100 Niedostępne
USGov Wirginia 100 20
Zachodnio-środkowe stany USA 100 20
West Europe 100 100
Indie Zachodnie 100 20
Zachodnie stany USA 100 100
Zachodnie stany USA 2 100 20
Zachodnie stany USA 3 100 20

Aby uzyskać więcej informacji, zobacz pełną regionalną dostępność usługi Azure Functions.

Następne kroki