Обновить версии языковых стеков в Функциях Azure

В Функциях Azure поддержка языкового стека ограничена определенными версиями. По мере того как новые версии становятся доступными, может потребоваться обновить приложения-функции, чтобы воспользоваться преимуществами новых функций. Поддержка функций также заканчивается для старых версий и обычно совпадает со сроками окончания поддержки, установленными сообществом. Дополнительные сведения см. в политике поддержки среды выполнения языка. Поддерживаемые версии различных языков см. в разделе "Языки по версии среды выполнения".

Чтобы убедиться, что приложения-функции продолжают получать поддержку, следуйте инструкциям в этой статье, чтобы обновить их до последних доступных версий. Способ обновления приложения-функции зависит от нескольких факторов:

  • Язык, используемый для разработки приложений-функций. Выберите язык программирования в верхней части этой статьи.
  • Операционная система, в которой работает приложение-функция в Azure: Windows или Linux.
  • План хостинга.

Примечание.

В этой статье показано, как обновить версию приложения-функции .NET, использующую изолированную рабочую модель. Если ваше приложение использует модель in-process, вы должны перейти с модели in-process на изолированную рабочую модель до 10 ноября 2026 года.

Подготовьте приложение-функцию

Перед обновлением конфигурации стека для приложения-функции в Azure выполните задачи в следующих разделах.

Проверка зависимостей

Перед обновлением языковых версий просмотрите следующие потенциальные зависимости:

  • Расширения привязки: обновите все явные ссылки на расширения привязки к версиям, совместимым с новой версией языка.

  • Зависимости пакетов: просмотрите и обновите все зависимости пакета до версий, поддерживающих целевую версию языка.

  • Локальные инструменты. Убедитесь, что ваши локальные средства разработки, такие как Core Tools для Функции Azure, SDK и интегрированные среды разработки (IDE), поддерживают новую версию языка.

Проверьте приложение-функцию локально

Протестируйте и проверьте код приложения функций локально для новой целевой версии.

Чтобы обновить проект на локальном компьютере, выполните следующие действия.

  1. Убедитесь, что установлена целевая версия пакета SDK для .NET.

    Если вы используете предварительную версию, ознакомьтесь с рекомендациями по функциям для предварительной версии .NET, чтобы убедиться, что эта версия поддерживается. Для использования предварительных версий .NET могут потребоваться дополнительные действия.

  2. Обновите SDK проекта до последней версии Azure.Functions.Sdk и обновите свою явную ссылку на пакет Microsoft.Azure.Functions.Worker до последней версии.

  3. Обновите целевую платформу проекта до новой версии. Для проектов C# необходимо обновить <TargetFramework> элемент в CSPROJ-файле . Дополнительные сведения о вашей версии см. в разделе "Целевые платформы".

    Изменение целевой платформы проекта также может потребовать изменений в частях цепочки инструментов вне кода проекта. Например, в Visual Studio Code может потребоваться обновить параметр расширения azureFunctions.deploySubpath в пользовательских настройках или в файле .vscode/settings.json вашего проекта. Проверьте наличие зависимостей от версии платформы, существующей вне кода проекта, в рамках шагов сборки или конвейера непрерывной интеграции и непрерывной доставки (CI/CD).

  4. Внесите все обновления в код проекта, необходимый новой версии .NET. См. примечания к выпуску этой версии для получения подробной информации. Помощник по обновлению .NET также позволяет обновить код в ответ на изменения в основных версиях.

После внесения этих изменений перестройте проект и протестируйте его, чтобы убедиться, что приложение-функция работает должным образом.

Переход к последней среде выполнения функций

Убедитесь, что приложение-функция работает в последней версии среды выполнения Функций (версия 4.x). Вы можете определить версию среды выполнения либо на портале Azure, либо с помощью Azure CLI.

Чтобы определить версию среды выполнения функций, выполните следующие действия.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>".

  2. Перейдите на вкладку "Параметры среды выполнения функции " и проверьте значение версии среды выполнения . Приложение-функция должно работать в среде выполнения функций версии 4.x (~4).

Если необходимо обновить приложение-функцию до версии 4.x, см. статью "Миграция приложений из функций Azure версии 1.x на версию 4.x " или "Миграция приложений из функций Azure версии 3.x" на версию 4.x. Следуйте инструкциям в этих статьях, а не просто измените параметр FUNCTIONS_EXTENSION_VERSION.

Публикация обновлений приложения-функции

Если вы обновили приложение-функцию, чтобы правильно работать в новой версии, опубликуйте обновления приложения-функции перед обновлением конфигурации стека для приложения-функции.

Совет

Чтобы упростить процесс обновления, свести к минимуму время простоя ваших функциональных приложений и предоставить потенциальную версию для отката, опубликуйте обновленное функциональное приложение в промежуточном слоте. Дополнительные сведения см. в разделе слоты развертывания Функции Azure.

При публикации обновленного приложения-функции в промежуточном слоте обязательно следуйте инструкциям по обновлению для конкретного слота в остальной части этой статьи. Позже вы переключите обновленный промежуточный слот в рабочую среду.

Рассмотрите возможность использования слотов

Перед обновлением языковой версии приложения-функции создайте слот развертывания для тестирования и развертывания. Этот подход сводит к минимуму время простоя и обеспечивает простой вариант отката при возникновении проблем. В примерах в этой статье используется промежуточный слот с именем staging.

План Flex Consumption: слоты в настоящее время не поддерживаются. Сначала вы должны проверить обновленный код в нерабочем экземпляре приложения-функции. При развертывании в работающее приложение, можно использовать стратегию последовательного обновления. Дополнительные сведения см. в стратегиях обновления сайта в Flex Consumption.

Это важно

Стратегия последовательного обновления общедоступна в Восточной Азии, западной части США, северной части США и западной части США 2. Развертывание для всех остальных регионов выполняется в течение следующих недель. Ознакомьтесь с ограничениями и рекомендациями перед включением этой стратегии.

Обновление конфигурации стека

Способ обновления конфигурации стека зависит от того, работает ли ваше приложение-функция в Windows или Linux в Azure.

При использовании промежуточного слота обязательно направляйте обновления в нужный слот.

Чтобы обновить версию Java, выполните следующие действия.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.

  2. На вкладке "Общие параметры" обновите версию Java до требуемой версии.

  3. Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".

Чтобы обновить версию .NET, выполните следующие действия.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.

  2. На вкладке "Общие параметры" обновите версию .NET до требуемой версии.

  3. Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".

Чтобы обновить версию Node.js, выполните следующие действия.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.

  2. На вкладке "Общие параметры" обновите версиюNode.js до требуемой версии.

  3. Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить". Это изменение обновляет WEBSITE_NODE_DEFAULT_VERSION параметр приложения.

Чтобы обновить версию PowerShell, выполните следующие действия.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.

  2. На вкладке "Общие параметры" обновите версию PowerShell Core до требуемой версии.

  3. Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".

Портал не поддерживает приложения Python в Windows. Перейдите на вкладку Linux .

Приложение-функция перезапускается после обновления версии.

Примечание.

Во время перезапуска приложение-функция недоступна в течение короткого периода, как правило, 30–60 секунд. При обновлении продуктового функционального приложения напрямую (без использования промежуточного слота) запланируйте время неработоспособности на период технического обслуживания. Перезапуск завершает все запросы в процессе выполнения, а новые запросы не будут выполняться, пока приложение не перезапустится успешно.

Проверьте обновление

После перезапуска приложения-функции убедитесь, что обновление языковой версии выполнено успешно.

  1. На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>".

  2. На вкладке "Общие параметры" убедитесь, что выбранная языковая версия отображает выбранную версию.

  3. Выберите "Обзор" в боковом меню и убедитесь, что состояние отображается как запущенное.

После проверки версии убедитесь, что функции работают должным образом.

Поменять слоты

Если вы используете тестовый слот для развертывания проекта кода и обновления параметров, замените тестовый слот на рабочую среду. Дополнительные сведения см. в разделе Смена слотов.

Устранение неполадок

При возникновении проблем после обновления языковой версии используйте следующее руководство, чтобы устранить распространенные проблемы:

Функциональное приложение не запускается

Симптомы: Состояние функционального приложения отображается как Остановленное или непрерывно перезапускается.

Решения:

  1. Проверьте журналы приложений на портале Azure:

    • Перейдите к вашему функциональному приложению и выберите Мониторинг>поток журналов.
    • Поиск сообщений об ошибках, связанных с несоответствиями версий среды выполнения или языка.
  2. Убедитесь, что все зависимости совместимы с новой языковой версией:

    • Для .NET убедитесь, что пакеты NuGet поддерживают целевую платформу.
    • Для Python убедитесь, что версии requirements.txt пакетов совместимы.
    • Для Node.jsубедитесь, что package.json зависимости поддерживают новую версию Node.
  3. Проверьте версию пакета расширений в host.json файле. Старые пакеты могут не поддерживать более новые языковые версии.

Функции завершаются с ошибками времени выполнения

Симптомы: Отдельные функции завершаются сбоем при вызове с ошибками в журналах.

Решения:

  1. Просмотрите критические изменения для версии языка:

  2. Обновите расширения привязки до версий, совместимых с новой версией языка.

  3. Тестирование функций локально с помощью новой языковой версии перед повторной развертыванием.

Конфликты версий расширения

Симптомы: Ошибки, которые ссылаются на несовместимость версий "расширения" или "привязки".

Решения:

  1. Обновите версию пакета расширений до host.json версии 4.x или более поздней.

    {
      "version": "2.0",
      "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
      }
    }
    
  2. Для проектов .NET, использующих явные ссылки на расширения, обновите все Microsoft.Azure.WebJobs.Extensions.* пакеты до последних версий.

Откат обновления

Если вам нужно вернуться к предыдущей версии языка:

  1. Если вы использовали промежуточный слот:

    • Переключите промежуточный слот обратно в продакшен.
    • Для будущих попыток верните слот развертывания к предыдущей версии.
  2. Если вы обновили производственную среду напрямую:

    • Выполните те же действия по обновлению в этой статье, но укажите предыдущую языковую версию.
    • Повторно разверните предыдущую версию кода.
  3. Отслеживайте функцию приложения, чтобы убедиться, что оно возвращается к нормальной работе.

Совет

Чтобы избежать проблем, всегда тестируйте обновления языковых версий на стадии тестирования, прежде чем применять их к производственной среде. Создайте резервную копию конфигурации приложения-функции перед внесением изменений.