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.
Ważne
Plan Flex Consumption jest obecnie dostępny w wersji zapoznawczej. Aby uzyskać listę bieżących ograniczeń dotyczących korzystania z tego planu hostingu, zobacz Zagadnienia. Aby uzyskać bieżące informacje o rozliczeniach w okresie obowiązywania wersji zapoznawczej, zobacz Rozliczenia.
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. |
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.
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.
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 w wersji zapoznawczej 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 w bieżącej wersji zapoznawczej należy pamiętać o innych kwestiach:
- Host: istnieje limit czasu 30 sekund dla inicjowania aplikacji. Jeśli uruchomienie aplikacji funkcji trwa dłużej niż 30 sekund, zobaczysz wpisy związane z biblioteką gRPC System.TimeoutException. Ten limit czasu będzie możliwy do skonfigurowania, a w ramach tego elementu roboczego hosta zostanie zaimplementowany bardziej wyraźny wyjątek.
- Durable Functions: ze względu na charakter skalowania poszczególnych funkcji Flex Consumption, aby zapewnić najlepszą wydajność rozszerzenia Durable Functions, zalecamy ustawienie liczby wystąpień Always Ready dla
durable
grupy na1
wartość . Ponadto u dostawcy usługi Azure Storage rozważ zmniejszenie interwału sondowania kolejki do 10 sekund lub mniej. Tylko usługa Azure Storage jest obsługiwana jako dostawcy magazynu zaplecza dla funkcji trwałych hostowanych z użyciem flex Consumption. - Integracja z siecią wirtualną 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 w wersji zapoznawczej to
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.
- Instalowanie udziału plików usługi Azure Files: Instalowanie udziału plików usługi Azure Files nie działa, gdy aplikacja funkcji ma integrację z siecią wirtualną.
Powiązane artykuły
Opcjehostingu usługi Azure Functions Tworzenie aplikacji funkcji i zarządzanie nimi w planie Flex Consumption