Jak ustawić docelowe wersje środowiska uruchomieniowego usługi Azure Functions

Aplikacja funkcji jest uruchamiana w określonej wersji środowiska uruchomieniowego usługi Azure Functions. Domyślnie aplikacje funkcji są tworzone w najnowszej wersji 4.x środowiska uruchomieniowego usługi Functions. Aplikacje funkcji są obsługiwane tylko wtedy, gdy są uruchamiane w obsługiwanej wersji głównej. W tym artykule wyjaśniono, jak skonfigurować aplikację funkcji na platformie Azure, aby była docelowa lub przypięta do określonej wersji środowiska wykonywalnego Functions, jeśli jest to konieczne.

Rozważania

Należy pamiętać o tych kwestiach podczas określania wersji określonego środowiska uruchomieniowego:

  • Plan Flex Consumption działa tylko w wersji 4.x środowiska uruchomieniowego. Ponieważ plan Flex Consumption nie obsługuje FUNCTIONS_EXTENSION_VERSION ustawienia aplikacji, twoja aplikacja nie może ustawić docelowej wersji środowiska uruchomieniowego, kiedy działa w tym planie.
  • Sposób określania celu określonej wersji zależy od tego, czy korzystasz z systemu Windows, czy Linux.
  • Ten artykuł jest specyficzny dla systemu Windows lub Linux. Wybierz system operacyjny w górnej części artykułu.
  • Jeśli to możliwe, zawsze uruchamiaj aplikację w najnowszej obsługiwanej wersji środowiska uruchomieniowego. Przypnij aplikację do określonej wersji tylko wtedy, gdy zostaniesz poinstruowany, aby to zrobić z powodu problemu z najnowszą wersją. Zawsze przenoś się do najnowszej wersji środowiska uruchomieniowego, gdy tylko funkcje będą mogły działać poprawnie.
  • Podczas programowania lokalnego zainstalowana wersja narzędzi Azure Functions Core Tools musi być zgodna z główną wersją środowiska uruchomieniowego używaną przez aplikację funkcji na platformie Azure. Aby uzyskać więcej informacji, zobacz Wersje narzędzi Core Tools.

Aktualizowanie wersji środowiska uruchomieniowego

Jeśli to możliwe, zawsze uruchamiaj aplikacje funkcji w najnowszej obsługiwanej wersji środowiska uruchomieniowego usługi Azure Functions. Jeśli aplikacja funkcji jest obecnie uruchomiona w starszej wersji środowiska uruchomieniowego, przeprowadź migrację aplikacji do wersji 4.x.

Jeśli aplikacja ma istniejące funkcje, należy podjąć środki ostrożności przed przejściem do nowszej wersji głównej środowiska uruchomieniowego. Poniższe artykuły szczegółowo opisują zmiany wprowadzające istotne niezgodności między głównymi wersjami, w tym zmiany wprowadzające istotne niezgodności specyficzne dla danego języka. Zawierają one również instrukcje krok po kroku dotyczące pomyślnej migracji istniejącej aplikacji funkcji.

Aby określić bieżącą wersję środowiska uruchomieniowego, zobacz Wyświetlanie bieżącej wersji środowiska uruchomieniowego.

Wyświetlanie bieżącej wersji środowiska uruchomieniowego

Bieżącą wersję środowiska uruchomieniowego aplikacji funkcji można wyświetlić na jeden z następujących sposobów:

Aby wyświetlić i zaktualizować wersję środowiska uruchomieniowego aktualnie używaną przez aplikację funkcji, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do swojej aplikacji funkcji.

  2. Rozwiń element Ustawienia, a następnie wybierz Konfiguracja.

  3. Na karcie Ustawienia środowiska uruchomieniowego funkcji zanotuj wersję środowiska uruchomieniowego. W tym przykładzie wersja jest ustawiona na ~4.

    Zrzut ekranu przedstawiający sposób wyświetlania wersji środowiska uruchomieniowego.

Przypinanie do określonej wersji

Usługa Azure Functions umożliwia użycie ustawienia aplikacji FUNCTIONS_EXTENSION_VERSION, aby wskazać wersję środowiska uruchomieniowego używaną przez daną aplikację funkcji. Jeśli określisz tylko wersję główną (~4), aplikacja funkcji automatycznie aktualizuje nowe wersje pomocnicze środowiska uruchomieniowego w miarę ich dostępności. Aktualizacje wersji pomocniczej są automatyczne, ponieważ nowe wersje pomocnicze nie mogą wprowadzać zmian, które przerywają funkcje.

Aplikacje systemu Linux używają ustawienia lokacji linuxFxVersion wraz z FUNCTIONS_EXTENSION_VERSION, aby określić właściwy bazowy obraz systemu Linux, w którym będą uruchamiane funkcje. Podczas tworzenia nowej aplikacji funkcji w systemie Linux środowisko uruchomieniowe automatycznie wybiera odpowiedni obraz bazowy na podstawie wersji środowiska uruchomieniowego używanego stosu językowego.

Przypinanie do określonej wersji środowiska uruchomieniowego powoduje ponowne uruchomienie aplikacji funkcjonalnej.

Po określeniu określonej wersji mniejszej (takiej jak 4.0.12345) w FUNCTIONS_EXTENSION_VERSION programie przypisz aplikację funkcji do tej konkretnej wersji środowiska uruchomieniowego, dopóki nie zdecydujesz się ponownie na automatyczne aktualizacje wersji. Przypnij tylko określoną wersję podrzędną wystarczająco długo, aby rozwiązać wszelkie problemy z aplikacją funkcji, które uniemożliwiają celowanie w wersję główną. Starsze wersje podrzędne są regularnie usuwane ze środowiska produkcyjnego. Gdy aplikacja funkcji zostanie przypięta do wersji podrzędnej, która zostanie usunięta później, aplikacja funkcji będzie działać na najbliższej dostępnej wersji zamiast tej, jaka była ustawiona w programie FUNCTIONS_EXTENSION_VERSION. Ogłoszenia usługi App Service ogłaszają usunięcia wersji pomniejszych.

Uwaga

Podczas próby opublikowania z programu Visual Studio w aplikacji przypiętej do określonej pomocniczej wersji środowiska uruchomieniowego zostanie wyświetlone okno dialogowe z monitem o zaktualizowanie do najnowszej wersji lub anulowanie publikowania. Aby uniknąć tego sprawdzenia, jeśli musisz użyć określonej wersji podrzędnej, dodaj właściwość <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> do pliku .csproj.

Użyj jednej z tych metod, aby tymczasowo przypiąć aplikację do określonej wersji środowiska uruchomieniowego:

Aby wyświetlić i zaktualizować wersję środowiska uruchomieniowego aktualnie używaną przez aplikację funkcji, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do swojej aplikacji funkcji.

  2. Rozwiń element Ustawienia, a następnie wybierz Konfiguracja.

  3. Na karcie Ustawienia środowiska uruchomieniowego funkcji zanotuj wersję środowiska uruchomieniowego. W tym przykładzie wersja jest ustawiona na ~4.

    Zrzut ekranu przedstawiający sposób wyświetlania wersji środowiska uruchomieniowego.

  1. Aby przypisać aplikację do określonej wersji podrzędnej, w okienku po lewej stronie rozwiń pozycję Ustawienia, a następnie wybierz pozycję Zmienne środowiskowe.

  2. Na karcie Ustawienia aplikacji wybierz pozycję FUNCTIONS_EXTENSION_VERSION, zmień wartość na wymaganą wersję pomocniczą, a następnie wybierz pozycję Zastosuj.

  3. Wybierz pozycję Zastosuj, a następnie wybierz pozycję Potwierdź , aby zastosować zmiany i ponownie uruchomić aplikację.

Aplikacja funkcji zostanie ponownie uruchomiona po zmianie ustawienia aplikacji.

Aby przypiąć funkcję aplikacji do konkretnej wersji środowiska uruchomieniowego na Linuxie, ustaw adres URL obrazu bazowego specyficznego dla wersji w linuxFxVersion ustawieniu witryny w formacie DOCKER|<PINNED_VERSION_IMAGE_URI>.

Ważne

Przypięte aplikacje funkcji w systemie Linux nie otrzymują regularnych aktualizacji funkcji zabezpieczeń i hostów. Jeśli specjalista pomocy technicznej nie zaleci inaczej, użyj ustawienia FUNCTIONS_EXTENSION_VERSION i standardowej wartości linuxFxVersion dla swojego języka i wersji, na przykład Python|3.12. Aby poznać prawidłowe wartości, zobacz linuxFxVersionartykuł referencyjny.

Przypinanie do określonego środowiska uruchomieniowego nie jest obecnie obsługiwane w przypadku aplikacji funkcji systemu Linux uruchomionych w planie Zużycie.

Poniższy przykład pokazuje wartość linuxFxVersion wymaganą do przypięcia aplikacji funkcji Node.js 22 do określonej wersji środowiska uruchomieniowego 4.14.0.3:

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22

W razie potrzeby specjalista pomocy technicznej może podać prawidłowy identyfikator URI obrazu bazowego dla Twojej aplikacji.

Użyj następujących poleceń interfejsu wiersza polecenia platformy Azure, aby wyświetlić i ustawić element linuxFxVersion. Obecnie nie można ustawić linuxFxVersion w portalu ani przy użyciu programu Azure PowerShell:

  • Aby wyświetlić bieżącą wersję środowiska uruchomieniowego, użyj polecenia az functionapp config show :

    az functionapp config show --name <function_app> \
    --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
    

    W tym kodzie zastąp element <function_app> nazwą aplikacji funkcji. Ponadto zastąp <my_resource_group> nazwą grupy zasobów dla aplikacji funkcji. Zwracana jest bieżąca linuxFxVersion wartość.

  • Aby zaktualizować ustawienie linuxFxVersion w aplikacji funkcji, użyj polecenia az functionapp config set:

    az functionapp config set --name <FUNCTION_APP> \
    --resource-group <RESOURCE_GROUP> \
    --linux-fx-version <LINUX_FX_VERSION>
    

    Zastąp element <FUNCTION_APP> nazwą aplikacji funkcji. Ponadto zastąp <RESOURCE_GROUP> nazwą grupy zasobów dla aplikacji funkcji. Na koniec zastąp <LINUX_FX_VERSION> wartością konkretnego obrazu przekazaną przez specjalistę pomocy technicznej.

Te polecenia można uruchomić w usłudze Azure Cloud Shell , wybierając pozycję Otwórz usługę Cloud Shell w poprzednich przykładach kodu. Możesz również użyć lokalnie narzędzia Azure CLI, aby wykonać to polecenie po uruchomieniu polecenia az login, aby się zalogować.

Aplikacja funkcji zostanie uruchomiona ponownie po wprowadzeniu zmiany w konfiguracji witryny.

Zaktualizuj zarządzany obraz Linuksa

Ta sekcja dotyczy wyłącznie istniejących aplikacji Python 3.11 i Java 8, 11 lub 17 na planach Linux Elastic Premium lub Dedicated (App Service), które korzystają z zarządzanego obrazu Debian Bullseye. Jeśli Twoja aplikacja nie spełnia wszystkich tych warunków, nie musisz stosować tej procedury.

Nowszy obraz zarządzany zapewnia tymczasową ścieżkę, aby dotknięta aplikacja pozostała na obecnej wersji językowej, jednocześnie przechodząc na obsługiwaną dystrybucję Linuksa. Ta procedura nie dotyczy Flex Consumption ani niestandardowych aplikacji kontenerowych. W przypadku aplikacji w planie Linux Consumption przeprowadź migrację do planu Flex Consumption.

Ta aktualizacja wybiera dystrybucję Linuksa dla istniejącej wersji językowej za pomocą wartości trzyczęściowej linuxFxVersion . Nie przypina hosta Functions do konkretnego DOCKER|<IMAGE_URI> obrazu.

Wybierz wartość Bookworm lub Noble linuxFxVersion

Najpierw zdecyduj, czy możesz zaktualizować wersję językową, czy musisz zachować obecną wersję i wybrać nowszą dystrybucję Linuksa.

  1. Rozważ aktualizację aplikacji do nowszej obsługiwanej wersji językowej. Po aktualizacji języka aplikacja używa obecnego domyślnego obrazu zarządzanego dla tej wersji językowej.

  2. Jeśli aplikacja musi pozostać w obecnej wersji językowej, wybierz odpowiadającą nowszą wartość obrazu:

    Wersja językowa Wartość Debiana Bullseye Nowsze rozmieszczenie Nowsza wartość obrazu
    Python 3.11 Python\|3.11\|2.0 Debian Bookworm Python\|3.11\|3.0
    Java 8 Java\|8\|2.0 Ubuntu Noble Java\|8\|4.0
    Java 11 Java\|11\|2.0 Ubuntu Noble Java\|11\|4.0
    Java 17 Java\|17\|2.0 Ubuntu Noble Java\|17\|4.0

    Te trzyczęściowe wartości wyraźnie wybierają zarządzany obraz Linuksa dla tych obrazów z ery Bullseye. Nie są zwracane przez komendę az functionapp list-runtimes .

Przetestuj nowszy zarządzany obraz Linuksa

Przetestuj swoją aplikację i jej zależności od nowszego obrazu przed aktualizacją aplikacji produkcyjnej.

  1. Stwórz osobną aplikację testową lub slot wdrożenia.

  2. Wdroż ten sam kod i konfigurację, których używa twoja aplikacja produkcyjna, na aplikację testową lub slot.

  3. Ustaw wartość nowszego obrazu, wykonując kroki w Aktualizuj wartość obrazu. Podczas korzystania ze slotu dołącz --slot <SLOT_NAME> do każdego polecenia Azure CLI.

  4. Wywołaj każdą funkcję i sprawdź, czy aplikacja uruchamia się pomyślnie, wyzwalacze działają zgodnie z oczekiwaniami oraz czy natywne lub operacyjne zależności ładują się poprawnie.

Zaktualizuj wartość obrazu

Zmiana wartości obrazu uruchamia aplikację funkcyjną od nowa. Aktualizuj produkcję podczas okna utrzymania lub korzystaj z slotu wdrożenia.

  1. Zobacz aktualną linuxFxVersion wartość:

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    To polecenie zwraca wartość zapisaną w konfiguracji strony. Zwracana wartość może zawierać tylko język i jego wersję, na przykład Python|3.11, zamiast tej trzyczęściowej wartości identyfikującej dystrybucję Linuksa. Jeśli wartość nie zawiera wersji obrazu, postępuj zgodnie z instrukcjami w sekcji Verify the Linux distribution, aby potwierdzić, że aplikacja obecnie korzysta z Debian Bullseye.

  2. Ustaw linuxFxVersion na nowszą wartość obrazu:

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"
    

    Dla Python 3.11 na Debian Bookworm użyj Python|3.11|3.0. Dla Java na Ubuntu Noble użyj Java|8|4.0, Java|11|4.0, lub Java|17|4.0.

  3. Poczekaj, aż aplikacja się zrestartuje.

Sprawdź dystrybucję Linuksa

Sprawdź zarówno skonfigurowaną wartość, jak i dystrybucję Linuksa, która uruchamia Twoją aplikację.

  1. Potwierdź zaktualizowaną linuxFxVersion wartość:

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    Ponieważ wyraźnie ustawiono wartość składającą się z trzech części, to polecenie zwraca dokładnie tę wartość Bookworm lub Noble, którą wybrano.

  2. Otwórz stronę Kudu aplikacji pod adresem https://<APP_NAME>.scm.azurewebsites.net.

  3. Wybierz Środowisko i przejrzyj KUDU_ENV, lub otwórz sesję SSH i uruchom:

    cat /etc/os-release
    
  4. Potwierdź, że wynik identyfikuje Debian Bookworm dla Python 3.11 lub Ubuntu Noble dla Java 8, 11 lub 17.

  5. Wywołaj każdą funkcję i potwierdź, że wyzwalacze i zależności działają zgodnie z oczekiwaniami.

Cofnij zarządzaną aktualizację obrazu Linuksa

Jeśli zaktualizowany obraz powoduje problem z kompatybilnością, tymczasowo przywróć poprzednią linuxFxVersion wartość, dopóki nie naprawisz problemu.

Warning

Debian Bullseye nie jest już wspierany po zakończeniu swojego życia i nie otrzymuje aktualizacji bezpieczeństwa. Rollback używaj tylko jako tymczasowego środka łagodzenia i jak najszybciej wróć do wspieranego obrazu.

  1. Z tabeli w sekcji Wybierz wartość Bookworm lub Noble linuxFxVersionodszukaj wartość Debian Bullseye dla swojej wersji językowej.

  2. Ustaw linuxFxVersion na tę wartość Bullseye:

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"
    
  3. Poczekaj, aż aplikacja się zrestartuje, a potem powtórz sprawdzenie w sekcji Verify the Linux distribution.

Następne kroki