Hosting planu Flex Consumption usługi Azure Functions
Flex Consumption to oparty na systemie Linux plan hostingu usługi Azure Functions, który opiera się na modelu płatności za użycie za korzystanie z modelu rozliczeń bezserwerowych. Zapewnia ona większą elastyczność i możliwość dostosowywania, wprowadzając sieć prywatną, wybór rozmiaru pamięci wystąpienia oraz funkcje szybkiego/dużego skalowania w poziomie nadal oparte na modelu bezserwerowym.
Możesz przejrzeć kompleksowe przykłady, które zawierają plan Flex Consumption w repozytorium przykładów planu Flex Consumption.
Świadczenia
Plan Flex Consumption opiera się na mocnych stronach planu Zużycie, które obejmują dynamiczne skalowanie i rozliczenia oparte na wykonaniu. Dzięki funkcji Flex Consumption uzyskasz również następujące dodatkowe funkcje:
- Wystąpienia zawsze gotowe
- Integracja sieci wirtualnej
- Szybkie skalowanie na podstawie współbieżności zarówno dla aplikacji HTTP, jak i innych niż HTTP
- Wiele opcji dla rozmiarów pamięci wystąpień
Ta tabela ułatwia bezpośrednie porównanie funkcji rozwiązania Flex Consumption z planem hostingu Zużycie:
Funkcja | Zużycie | Zużycie elastyczne |
---|---|---|
Skalowanie do zera | ✅ Tak | ✅ Tak |
Zachowanie skalowania | Sterowane zdarzeniami | Sterowane zdarzeniami (szybkie) |
Sieci wirtualne | ❌ Nieobsługiwane | ✅ Obsługiwane |
Dedykowane obliczenia (eliminowanie zimnych startów) | ❌ Żaden | ✅ Zawsze gotowe wystąpienia (opcjonalnie) |
Rozliczenia | Tylko czas wykonywania | Czas wykonywania i zawsze gotowe wystąpienia |
Skalowanie wystąpień w poziomie (maks.) | 200 | 1000 |
Aby uzyskać pełne porównanie planu Flex Consumption względem planu Zużycie i wszystkich innych typów planów i hostingu, zobacz Opcje skalowania i hostingu funkcji.
Integracja sieci wirtualnej
Flex Consumption rozszerza tradycyjne korzyści planu Zużycie przez dodanie obsługi integracji sieci wirtualnej. Gdy aplikacje działają w ramach planu Flex Consumption, mogą łączyć się z innymi usługami platformy Azure zabezpieczonymi w sieci wirtualnej. Mimo to nadal możesz korzystać z bezserwerowych rozliczeń i skalowania, a także korzyści ze skalowania i przepływności planu Flex Consumption. Aby uzyskać więcej informacji, zobacz Włączanie integracji z siecią wirtualną.
Pamięć wystąpienia
Podczas tworzenia aplikacji funkcji w planie Flex Consumption możesz wybrać rozmiar pamięci wystąpień, na których działa aplikacja. Zobacz Rozliczenia , aby dowiedzieć się, jak rozmiary pamięci wystąpień wpływają na koszty aplikacji funkcji.
Obecnie flex Consumption oferuje opcje rozmiaru pamięci wystąpienia zarówno 2048 MB, jak i 4096 MB.
Podczas podejmowania decyzji o rozmiarze pamięci wystąpienia do użycia z aplikacjami należy wziąć pod uwagę następujące kwestie:
- Rozmiar pamięci wystąpienia o rozmiarze 2048 MB jest domyślny i powinien być używany w większości scenariuszy. Użyj rozmiaru pamięci wystąpienia 4096 MB w scenariuszach, w których aplikacja wymaga większej współbieżności lub większej mocy obliczeniowej. Aby uzyskać więcej informacji, zobacz Konfigurowanie pamięci wystąpienia.
- Rozmiar pamięci wystąpienia można zmienić w dowolnym momencie. Aby uzyskać więcej informacji, zobacz Konfigurowanie pamięci wystąpienia.
- Zasoby wystąpień są współużytkowane między kodem funkcji a hostem usługi Functions.
- Większy rozmiar pamięci wystąpienia, tym więcej wystąpień może obsłużyć w zakresie współbieżnych wykonań lub obciążeń procesora CPU lub pamięci. Konkretne decyzje dotyczące skalowania są specyficzne dla obciążenia.
- Domyślna współbieżność wyzwalaczy HTTP zależy od rozmiaru pamięci wystąpienia. Aby uzyskać więcej informacji, zobacz Współbieżność wyzwalacza HTTP.
- Dostępne procesory CPU i przepustowość sieci są proporcjonalne do określonego rozmiaru wystąpienia.
Skalowanie poszczególnych funkcji
Współbieżność to kluczowy czynnik określający sposób skalowania aplikacji funkcji Flex Consumption. Aby zwiększyć wydajność aplikacji o różnych typach wyzwalaczy, plan Flex Consumption zapewnia bardziej deterministyczny sposób skalowania aplikacji na podstawie poszczególnych funkcji.
To zachowanie skalowania poszczególnych funkcji jest częścią platformy hostingu, więc nie trzeba konfigurować aplikacji ani zmieniać kodu. Aby uzyskać więcej informacji, zobacz Skalowanie poszczególnych funkcji w artykule Skalowanie oparte na zdarzeniach.
W przypadku skalowania poszczególnych funkcji decyzje są podejmowane dla niektórych wyzwalaczy funkcji na podstawie agregacji grup. W tej tabeli przedstawiono zdefiniowany zestaw grup skalowania funkcji:
Skalowanie grup | Wyzwalacze w grupie | Wartość ustawień |
---|---|---|
Wyzwalacze HTTP | Wyzwalacz HTTP Wyzwalacz signalR |
http |
Wyzwalacze usługi Blob Storage (Oparte na usłudze Event Grid) |
Wyzwalacz usługi Blob Storage | blob |
Trwałe funkcje | Wyzwalacz orkiestracji Wyzwalacz działania Wyzwalacz jednostki |
durable |
Wszystkie inne funkcje w aplikacji są skalowane indywidualnie we własnym zestawie wystąpień, do których odwołuje się konwencja function:<NAMED_FUNCTION>
.
Zawsze gotowe wystąpienia
Funkcja Flex Consumption zawiera funkcję zawsze gotową, która umożliwia wybieranie wystąpień, które są zawsze uruchomione i przypisane do każdej z grup skalowania funkcji lub funkcji dla poszczególnych funkcji. Jest to świetna opcja w scenariuszach, w których wymagana jest minimalna liczba wystąpień zawsze gotowych do obsługi żądań, na przykład w celu zmniejszenia opóźnienia zimnego startu aplikacji. Wartość domyślna to 0 (zero).
Jeśli na przykład ustawisz ustawienie zawsze gotowe do 2 dla grupy funkcji HTTP, platforma będzie zawsze działać i przypisać do aplikacji dla funkcji HTTP w aplikacji. Te wystąpienia przetwarzają wykonania funkcji, ale w zależności od ustawień współbieżności platforma jest skalowana poza te dwa wystąpienia z wystąpieniami na żądanie.
Aby dowiedzieć się, jak skonfigurować zawsze gotowe wystąpienia, zobacz Set always ready instance counts (Ustawianie zawsze gotowych wystąpień).
Współbieżność
Współbieżność odnosi się do liczby równoległych wykonań funkcji w wystąpieniu aplikacji. Można ustawić maksymalną liczbę współbieżnych wykonań, które każde wystąpienie powinno obsługiwać w danym momencie. Aby uzyskać więcej informacji, zobacz Współbieżność wyzwalacza HTTP.
Współbieżność ma bezpośredni wpływ na sposób skalowania aplikacji, ponieważ na niższych poziomach współbieżności potrzeba więcej wystąpień do obsługi zapotrzebowania opartego na zdarzeniach dla funkcji. Chociaż możesz kontrolować i dostosowywać współbieżność, udostępniamy wartości domyślne, które działają w większości przypadków. Aby dowiedzieć się, jak ustawić limity współbieżności dla funkcji wyzwalacza HTTP, zobacz Ustawianie limitów współbieżności HTTP.
Wdrożenie
Wdrożenia w planie Flex Consumption są zgodne z jedną ścieżką. Gdy kod projektu zostanie skompilowany i spakowany w pakiecie aplikacji, zostanie wdrożony w kontenerze magazynu obiektów blob. Podczas uruchamiania aplikacja pobiera pakiet i uruchamia kod funkcji z tego pakietu. Domyślnie to samo konto magazynu używane do przechowywania metadanych hosta wewnętrznego (AzureWebJobsStorage) jest również używane jako kontener wdrażania. Można jednak użyć alternatywnego konta magazynu lub wybrać preferowaną metodę uwierzytelniania, konfigurując ustawienia wdrożenia aplikacji. W usprawnieniu ścieżki wdrażania nie ma już potrzeby, aby ustawienia aplikacji miały wpływ na zachowanie wdrożenia.
Rozliczenia
Istnieją dwa tryby, w których koszty są określane podczas uruchamiania aplikacji w planie Flex Consumption. Każdy tryb jest określany dla poszczególnych wystąpień.
Tryb rozliczeniowy | opis |
---|---|
Na żądanie | W przypadku uruchamiania w trybie na żądanie opłaty są naliczane tylko za czas wykonywania kodu funkcji w dostępnych wystąpieniach. W trybie na żądanie nie jest wymagana minimalna liczba wystąpień. Opłaty są naliczane za: • Łączna ilość pamięci aprowizowanej, podczas gdy każde wystąpienie na żądanie aktywnie wykonuje funkcje (w GB-sekund), pomniejszone o bezpłatną dotację GB na miesiąc. • Całkowita liczba wykonań, pomniejszona o bezpłatną dotację (liczbę) wykonań miesięcznie. |
Zawsze gotowe | Można skonfigurować co najmniej jedno wystąpienie przypisane do określonych typów wyzwalaczy (HTTP/Durable/Blob) i poszczególnych funkcji, które są zawsze dostępne do obsługi żądań. Po włączeniu wszystkich zawsze gotowych wystąpień są naliczane opłaty za: • Łączna ilość pamięci aprowizowanej we wszystkich zawsze gotowych wystąpieniach, znana jako punkt odniesienia (w GB-sekund). • Całkowita ilość pamięci aprowizowanej w czasie, gdy każde zawsze gotowe wystąpienie aktywnie wykonuje funkcje (w GB-sekund). • Całkowita liczba wykonań. W przypadku zawsze gotowych rozliczeń nie ma bezpłatnych dotacji. |
Aby uzyskać najbardziej aktualne informacje na temat cen wykonania, zawsze gotowych kosztów planu bazowego i bezpłatnych dotacji dla wykonań na żądanie, zobacz stronę cennika usługi Azure Functions.
Minimalny rozliczany okres wykonywania dla obu trybów wykonywania wynosi 1000 ms. W przeszłości okres aktywności rozliczanej jest zaokrąglany do najbliższej 100 ms. Szczegółowe informacje na temat mierników rozliczeniowych planu Flex Consumption można znaleźć w dokumentacji monitorowania.
Aby uzyskać szczegółowe informacje na temat sposobu obliczania kosztów podczas uruchamiania w planie Flex Consumption, w tym przykłady, zobacz Koszty oparte na użyciu.
Obsługiwane wersje stosu językowego
W tej tabeli przedstawiono wersje stosu językowego, które są obecnie obsługiwane w przypadku aplikacji Flex Consumption:
Stos języka | Wymagana wersja |
---|---|
C# (tryb izolowanego procesu)1 | .NET 82 |
Java | Java 11, Java 17 |
Node.js | Węzeł 20 |
PowerShell | PowerShell 7.4 |
Python | Python 3.10, Python 3.11 |
Tryb przetwarzania w języku C# nie jest obsługiwany. Zamiast tego należy przeprowadzić migrację projektu kodu platformy .NET do uruchomienia w modelu izolowanego procesu roboczego.
2Wymaga wersji 1.20.0
lub nowszej pakietu Microsoft.Azure.Functions.Worker i wersji 1.16.2
lub nowszej zestawu Microsoft.Azure.Functions.Worker.Sdk.
Regionalne limity przydziału pamięci subskrypcji
Obecnie każdy region w danej subskrypcji ma limit 512,000 MB
pamięci dla wszystkich wystąpień aplikacji uruchomionych w planach Flex Consumption. Oznacza to, że w danej subskrypcji i regionie można mieć dowolną kombinację rozmiarów i liczników pamięci wystąpienia, o ile pozostają one w limicie przydziału. Na przykład każde z poniższych przykładów oznaczałoby osiągnięcie limitu przydziału, a aplikacje przestaną skalować:
- Masz jedną aplikację o rozmiarze 2048 MB skalowaną do 100 MB, a druga aplikacja skalowana do 150 wystąpień
- Masz jedną aplikację o rozmiarze 2048 MB, która została skalowana w poziomie do 250 wystąpień
- Masz jedną aplikację o rozmiarze 4096 MB, która została skalowana w poziomie do 125 wystąpień
- Masz jedną aplikację o rozmiarze 4096 MB skalowaną do 100 i 2048 MB aplikacji skalowaną do 50 wystąpień
Ten limit przydziału można zwiększyć, aby umożliwić dalsze skalowanie aplikacji Flex Consumption w zależności od wymagań. Jeśli aplikacje wymagają większego limitu przydziału, utwórz bilet pomocy technicznej.
Przestarzałe właściwości i ustawienia
W rozwiązaniu Flex Consumption wiele standardowych ustawień aplikacji i właściwości konfiguracji lokacji używanych w Bicep, szablonach usługi ARM i ogólnej płaszczyźnie sterowania jest przestarzałych lub przeniesionych i nie powinno być używanych podczas automatyzowania tworzenia zasobów aplikacji funkcji. Aby uzyskać więcej informacji, zobacz Flex Consumption plan deprecations (Wycofywanie planu Flex Consumption).
Kwestie wymagające rozważenia
Podczas korzystania z planu Flex Consumption należy pamiętać o innych kwestiach:
- Host: istnieje 30-sekundowy limit czasu dla inicjowania aplikacji. Gdy uruchamianie aplikacji funkcji trwa dłużej niż 30 sekund, mogą zostać wyświetlone zarejestrowane wpisy związane z protokołem
System.TimeoutException
gRPC. Obecnie nie można skonfigurować tego limitu czasu. Aby uzyskać więcej informacji, zobacz ten element roboczy hosta. - Durable Functions: usługa Azure Storage jest obecnie jedynym obsługiwanym dostawcą magazynu dla rozszerzenia Durable Functions, który jest hostowany w planie Flex Consumption. Zobacz zalecenia dotyczące hostowania rozszerzenia Durable Functions w planie Flex Consumption.
- Integracja sieci wirtualnej Upewnij się, że
Microsoft.App
dostawca zasobów platformy Azure jest włączony dla Twojej subskrypcji, postępując zgodnie z tymi instrukcjami. Delegowanie podsieci wymagane przez aplikacje Flex Consumption toMicrosoft.App/environments
. - Wyzwalacze: wszystkie wyzwalacze są w pełni obsługiwane z wyjątkiem wyzwalaczy platformy Kafka i usługi Azure SQL. Wyzwalacz usługi Blob Storage obsługuje tylko źródło usługi Event Grid. Aplikacje funkcji innych niż C# muszą używać wersji
[4.0.0, 5.0.0)
pakietu rozszerzenia lub nowszej wersji. - Regiony: Nie wszystkie regiony są obecnie obsługiwane. Aby dowiedzieć się więcej, zobacz Wyświetlanie aktualnie obsługiwanych regionów.
- Wdrożenia: miejsca wdrożenia nie są obecnie obsługiwane.
- Skala: najniższa maksymalna skala wynosi obecnie
40
. Najwyższa obecnie obsługiwana wartość to1000
. - Zależności zarządzane: zależności zarządzane w programie PowerShell nie są obsługiwane przez użycie flex. Zamiast tego należy zdefiniować własne moduły niestandardowe.
- Ustawienia diagnostyczne: ustawienia diagnostyczne nie są obecnie obsługiwane.
- Certyfikaty: ładowanie certyfikatów za pomocą ustawienia aplikacji WEBSITE_LOAD_CERTIFICATES nie jest obecnie obsługiwane.
- Odwołania do usługi Key Vault: odwołania do usługi Key Vault w ustawieniach aplikacji nie działają, gdy usługa Key Vault ma ograniczony dostęp do sieci, nawet jeśli aplikacja funkcji ma integrację z siecią wirtualną. Bieżące obejście polega na bezpośrednim odwołaniu się do usługi Key Vault w kodzie i odczytaniu wymaganych wpisów tajnych.
Powiązane artykuły
Opcjehostingu usługi Azure Functions Tworzenie aplikacji funkcji i zarządzanie nimi w planie Flex Consumption