Omówienie wersji środowiska uruchomieniowego Azure Functions
Azure Functions obecnie obsługuje kilka wersji hosta środowiska uruchomieniowego. Poniższa tabela zawiera szczegółowe informacje o dostępnych wersjach, ich poziomie pomocy technicznej oraz o tym, kiedy powinny być używane:
Wersja | Poziom pomocy technicznej | Opis |
---|---|---|
4.x | Ogólna dostępność | Zalecana wersja środowiska uruchomieniowego dla funkcji we wszystkich językach. Zapoznaj się z tematem Obsługiwane wersje językowe. |
3.x | Ogólna dostępność* | 13 grudnia 2022 r. osiągnął koniec życia (EOL). Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do wersji 4.x w celu uzyskania pełnej pomocy technicznej. |
2.x | Ogólna dostępność* | 13 grudnia 2022 r. osiągnął koniec życia (EOL). Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do wersji 4.x w celu uzyskania pełnej pomocy technicznej. |
1.x | Ogólna dostępność | Obsługiwane tylko w przypadku aplikacji języka C#, które muszą używać .NET Framework. Ta wersja jest w trybie konserwacji z ulepszeniami dostępnymi tylko w nowszych wersjach. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do wersji 4.x, która obsługuje .NET Framework 4.8. |
*Aby uzyskać szczegółową instrukcję pomocy technicznej dotyczącą wersji end-of-life, zobacz ten artykuł dotyczący migracji.
W tym artykule opisano niektóre różnice między tymi wersjami, sposób tworzenia poszczególnych wersji oraz sposób zmiany wersji, w której działają funkcje.
Poziomy obsługi
Istnieją dwa poziomy obsługi:
- Ogólnie dostępne (GA) — w pełni obsługiwane i zatwierdzone do użytku produkcyjnego.
- Wersja zapoznawcza — nie jest jeszcze obsługiwana, ale oczekuje się, że w przyszłości osiągnie stan ogólnie dostępnej wersji.
Języki
Wszystkie funkcje w aplikacji funkcji muszą mieć ten sam język. Podczas tworzenia aplikacji wybrano język funkcji. Język aplikacji funkcji jest utrzymywany w ustawieniu FUNCTIONS_WORKER_RUNTIME i nie powinien być zmieniany, gdy istnieją funkcje.
Poniższa tabela wskazuje, które języki programowania są obecnie obsługiwane w każdej wersji środowiska uruchomieniowego.
Język | 1.x | 2.x1 | 3.x1 | 4.x |
---|---|---|---|---|
C# | Ogólna dostępność (.NET Framework 4.8) | Ogólna dostępność (.NET Core 2.1) | Ogólna dostępność (.NET Core 3.1) |
Ogólna dostępność (.NET 6.0) Ogólna dostępność (.NET 7.0) Ogólna dostępność (.NET Framework 4.8) |
JavaScript | Ogólna dostępność (Node.js 6) | Ogólna dostępność (Node.js 10 & 8) | Ogólna dostępność (Node.js 14, 12, & 10) | Ogólna dostępność (Node.js 18, 16, & 14) |
F# | Ogólna dostępność (.NET Framework 4.8) | Ogólna dostępność (.NET Core2.1 1) | Ogólna dostępność (.NET Core 3.1) | Ogólna dostępność (.NET 6.0) Ogólna dostępność (.NET 7.0) |
Java | Nie dotyczy | Ogólna dostępność (Java 8) | Ogólna dostępność (Java 11 & 8) | Ogólna dostępność (Java 11 & 8) Ogólna dostępność (Java 17) |
PowerShell | Nie dotyczy | NIE DOTYCZY | NIE DOTYCZY | Ogólna dostępność (PowerShell 7.2) |
Python | Nie dotyczy | Ogólna dostępność (Python 3.7) | Ogólna dostępność (Python 3.9, 3.8, 3.7) | Ogólna dostępność (Python 3.10, 3.9, 3.8, 3.7) |
TypeScript2 | Nie dotyczy | Ogólna dostępność | Ogólna dostępność | Ogólna dostępność |
1 Osiągnięto koniec życia (EOL) 13 grudnia 2022 r. Zdecydowanie zalecamy migrowanie aplikacji do wersji 4.x w celu uzyskania pełnej pomocy technicznej.
2 Obsługiwane przez transpilowanie do języka JavaScript.
Aby uzyskać więcej informacji na temat obsługiwanych wersji językowych, zobacz artykuł przewodnik dla deweloperów specyficzny dla języka.
Aby uzyskać informacje o planowanych zmianach w obsłudze języka, zobacz Harmonogram działania platformy Azure.
Uruchamianie w określonej wersji
Wersja środowiska uruchomieniowego usługi Functions używana przez opublikowane aplikacje na platformie Azure jest określana przez FUNCTIONS_EXTENSION_VERSION
ustawienie aplikacji. W niektórych przypadkach i w niektórych językach mogą być stosowane inne ustawienia.
Domyślnie aplikacje funkcji utworzone w Azure Portal interfejsu wiersza polecenia platformy Azure lub narzędzia programu Visual Studio są ustawione na wersję 4.x. W razie potrzeby możesz zmodyfikować tę wersję. Możesz obniżyć wersję środowiska uruchomieniowego tylko do wersji 1.x po utworzeniu aplikacji funkcji, ale przed dodaniem dowolnych funkcji. Przejście do nowszej wersji jest dozwolone nawet w przypadku aplikacji, które mają istniejące funkcje.
Migrowanie istniejących aplikacji funkcji
Jeśli aplikacja ma istniejące funkcje, należy podjąć środki ostrożności przed przejściem do nowszej wersji środowiska uruchomieniowego. W poniższych artykułach szczegółowo opisano zmiany powodujące niezgodność między wersjami, w tym zmiany powodujące niezgodność specyficzne dla języka. Udostępniają one również instrukcje krok po kroku dotyczące pomyślnej migracji istniejącej aplikacji funkcji.
- Migrowanie ze środowiska uruchomieniowego w wersji 3.x do wersji 4.x
- Migrowanie ze środowiska uruchomieniowego w wersji 1.x do wersji 4.x
Zmiana wersji aplikacji na platformie Azure
Używane są następujące główne wartości wersji środowiska uruchomieniowego:
Wartość | Cel środowiska uruchomieniowego |
---|---|
~4 |
4.x |
~1 |
1.x |
Ważne
Nie zmieniaj arbitralnie tego ustawienia aplikacji, ponieważ może być wymagane inne ustawienie aplikacji i zmiany kodu funkcji. Zamiast tego należy zmienić to ustawienie na karcie Ustawienia środowiska uruchomieniowego funkcjiw konfiguracji aplikacji funkcji w Azure Portal, gdy wszystko będzie gotowe do uaktualnienia wersji głównej. W przypadku istniejących aplikacji funkcji postępuj zgodnie z instrukcjami migracji.
Przypinanie do określonej wersji pomocniczej
Aby rozwiązać problemy, które aplikacja funkcji mogła napotkać podczas uruchamiania w najnowszej wersji głównej, musisz tymczasowo przypiąć aplikację do określonej wersji pomocniczej. Przypinanie zapewnia czas na poprawne uruchomienie aplikacji w najnowszej wersji głównej. Sposób przypinania do wersji pomocniczej różni się między systemami Windows i Linux. Aby dowiedzieć się więcej, zobacz Jak określać docelowe wersje środowiska uruchomieniowego Azure Functions.
Starsze wersje pomocnicze są okresowo usuwane z usługi Functions. Najnowsze informacje o Azure Functions wydaniach, w tym o usunięciu określonych starszych wersji pomocniczych, monitoruj Azure App Service ogłoszenia.
Minimalne wersje rozszerzeń
Technicznie nie istnieje korelacja między wersjami rozszerzenia powiązania i wersją środowiska uruchomieniowego usługi Functions. Jednak począwszy od wersji 4.x środowisko uruchomieniowe usługi Functions wymusza minimalną wersję dla wszystkich rozszerzeń wyzwalacza i powiązań.
Jeśli zostanie wyświetlone ostrzeżenie o pakiecie, który nie spełnia minimalnej wymaganej wersji, należy zaktualizować pakiet NuGet do minimalnej wersji, jak zwykle. Minimalne wymagania dotyczące wersji rozszerzeń używanych w funkcji w wersji 4.x można znaleźć w połączonym pliku konfiguracji.
W przypadku skryptu języka C# zaktualizuj odwołanie do pakietu rozszerzeń w pliku host.json w następujący sposób:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
}
}
Technicznie nie istnieje korelacja między wersjami pakietu rozszerzeń a wersją środowiska uruchomieniowego usługi Functions. Jednak począwszy od wersji 4.x środowisko uruchomieniowe usługi Functions wymusza minimalną wersję pakietów rozszerzeń.
Jeśli zostanie wyświetlone ostrzeżenie o wersji pakietu rozszerzeń, które nie spełnia minimalnej wymaganej wersji, zaktualizuj istniejące odwołanie do pakietu rozszerzeń w pliku host.json w następujący sposób:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
}
}
Aby dowiedzieć się więcej o pakietach rozszerzeń, zobacz Pakiety rozszerzeń.
Wersje aplikacji opracowane lokalnie
Możesz wprowadzić następujące aktualizacje w aplikacjach funkcji, aby lokalnie zmienić wersje docelowe.
Wersje środowiska uruchomieniowego programu Visual Studio
W programie Visual Studio podczas tworzenia projektu wybierasz wersję środowiska uruchomieniowego. Azure Functions tools for Visual Studio obsługuje trzy główne wersje środowiska uruchomieniowego. Poprawna wersja jest używana podczas debugowania i publikowania na podstawie ustawień projektu. Ustawienia wersji są zdefiniowane w .csproj
pliku w następujących właściwościach:
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
Jeśli używasz funkcji procesu roboczego izolowanego procesu roboczego platformy .NET, możesz również wybrać net6.0
platformę , net7.0
lub net48
jako platformę docelową. Obsługa systemu net7.0
i net48
jest obecnie dostępna w wersji zapoznawczej.
Uwaga
Azure Functions 4.x wymaga, aby Microsoft.NET.Sdk.Functions
rozszerzenie było co najmniej 4.0.0
.
Vs Code i Azure Functions Core Tools
Azure Functions Core Tools służy do programowania w wierszu polecenia, a także przez rozszerzenie Azure Functions dla Visual Studio Code. Aby uzyskać więcej informacji, zobacz Instalowanie narzędzi Azure Functions Core Tools.
W przypadku Visual Studio Code programowania może być również konieczne zaktualizowanie ustawienia użytkownika, azureFunctions.projectRuntime
aby był zgodny z zainstalowaną wersją narzędzi. To ustawienie aktualizuje również szablony i języki używane podczas tworzenia aplikacji funkcji.
Powiązania
Począwszy od wersji 2.x, środowisko uruchomieniowe korzysta z nowego modelu rozszerzalności powiązań , który oferuje następujące korzyści:
Obsługa rozszerzeń powiązań innych firm.
Oddzielenie środowiska uruchomieniowego i powiązań. Ta zmiana umożliwia niezależne przechowywanie wersji i wydawanie rozszerzeń powiązań. Możesz na przykład zdecydować się na uaktualnienie do wersji rozszerzenia, która opiera się na nowszej wersji bazowego zestawu SDK.
Lżejsze środowisko wykonawcze, w którym tylko powiązania używane są znane i ładowane przez środowisko uruchomieniowe.
Z wyjątkiem wyzwalaczy HTTP i czasomierza wszystkie powiązania muszą zostać jawnie dodane do projektu aplikacji funkcji lub zarejestrowane w portalu. Aby uzyskać więcej informacji, zobacz Rejestrowanie rozszerzeń powiązań.
W poniższej tabeli przedstawiono powiązania obsługiwane w każdej wersji środowiska uruchomieniowego.
W tej tabeli przedstawiono powiązania obsługiwane w głównych wersjach środowiska uruchomieniowego Azure Functions:
Typ | 1.x | 2.x i nowsze1 | Wyzwalacz | Dane wejściowe | Dane wyjściowe |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr3 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
Elementy webhook PROTOKOŁU HTTP & | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka2 | ✔ | ✔ | ✔ | ||
Aplikacje mobilne | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
RabbitMQ2 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Table Storage | ✔ | ✔ | ✔ | ✔ | |
Czasomierz | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 Począwszy od środowiska uruchomieniowego w wersji 2.x, wszystkie powiązania z wyjątkiem protokołu HTTP i czasomierza muszą być zarejestrowane. Zobacz Rejestrowanie rozszerzeń powiązań.
2 Wyzwalacze nie są obsługiwane w planie Zużycie. Wymaga wyzwalaczy opartych na środowisku uruchomieniowym.
3 Obsługiwane tylko w przypadku platformy Kubernetes, IoT Edge i innych trybów hostowanych samodzielnie.
Limit czasu aplikacji funkcji
Limit czasu dla funkcji w aplikacji funkcji jest definiowany przez functionTimeout
właściwość w pliku projektu host.json . Ta właściwość ma zastosowanie specjalnie do wykonań funkcji. Po rozpoczęciu wykonywania funkcji wyzwalacz musi zwrócić/odpowiedzieć w czasie trwania limitu czasu. Aby uzyskać więcej informacji, zobacz Zwiększanie wydajności i niezawodności Azure Functions.
W poniższej tabeli przedstawiono wartości domyślne i maksymalne (w minutach) dla określonych planów:
Planowanie | Domyślny | Maksimum1 |
---|---|---|
Plan zużycia | 5 | 10 |
Plan Premium | 302 | Nieograniczona liczba |
Dedykowany plan | 302 | Nieograniczona liczba |
1 Niezależnie od ustawienia limitu czasu aplikacji funkcji, 230 sekund to maksymalny czas, przez który funkcja wyzwalana przez protokół HTTP może odpowiedzieć na żądanie. Wynika to z domyślnego limitu czasu bezczynności Azure Load Balancer. W przypadku dłuższych czasów przetwarzania rozważ użycie wzorca asynchronicznego Durable Functions lub odroczenie rzeczywistej pracy i zwrócenie natychmiastowej odpowiedzi.
2 Domyślny limit czasu dla wersji 1.x środowiska uruchomieniowego usługi Functions jest nieograniczony.
Następne kroki
Więcej informacji można znaleźć w następujących zasobach: