Выбор целевых версий среды выполнения Функций Azure

Приложение-функция работает в определенной версии среды выполнения для решения "Функции Azure". По умолчанию приложения-функции создаются в последней версии 4.x среды выполнения Функций. Приложения-функции поддерживаются только при выполнении в поддерживаемой основной версии. В этой статье объясняется, как настроить приложение-функцию в Azure для целевого объекта или закрепить определенную версию при необходимости.

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

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

Внимание

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

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

Обновление версии среды выполнения

По возможности всегда следует запускать приложения-функции в последней поддерживаемой версии среды выполнения Функции Azure. Если приложение-функция работает в настоящее время в старой версии среды выполнения, необходимо перенести приложение в версию 4.x.

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

Сведения об определении текущей версии среды выполнения см. в разделе "Просмотр текущей версии среды выполнения".

Просмотр текущей версии среды выполнения

Текущую версию приложения-функции можно просмотреть одним из следующих способов:

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

  1. На портале Azure перейдите к приложению-функции.

  2. В разделе Параметры выберите пункт Конфигурация. На вкладке Параметры среды выполнения функции найдите версию среды выполнения. Запишите конкретную версию среды выполнения. В приведенном ниже примере задана версия ~4.

    Screenshot showing how to view the runtime version.

Закрепление в определенной версии

Функции Azure позволяет использовать FUNCTIONS_EXTENSION_VERSION параметр приложения для целевой версии среды выполнения, используемой заданным приложением-функцией. При указании только основной версии (~4) приложение-функция автоматически обновляется до новых дополнительных версий среды выполнения, когда они становятся доступными. Обновления дополнительных версий выполняются автоматически, так как новые дополнительные версии не должны вводить критические изменения.

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

Закрепление в определенной версии среды выполнения приводит к перезапуску приложения-функции.

При указании определенной дополнительной версии (например 4.0.12345, ) приложение-функция FUNCTIONS_EXTENSION_VERSIONзакрепляется на этой конкретной версии среды выполнения, пока вы явно не решите вернуться к автоматическим обновлениям. Необходимо закрепить только определенную дополнительную версию достаточно долго, чтобы устранить любые проблемы с приложением-функцией, которые не позволяют использовать основную версию. Старые промежуточные версии регулярно удаляются из рабочей среды. При закреплении к дополнительной версии, которая удаляется, приложение-функция вместо набора версий FUNCTIONS_EXTENSION_VERSIONзапускается в ближайшей существующей версии. Удаление вспомогательных версий объявляется в объявлениях Службы приложений.

Примечание.

При попытке опубликовать из Visual Studio в приложение, закрепленное на определенной дополнительной версии среды выполнения, диалоговое окно предложит обновить до последней версии или отменить публикацию. Чтобы избежать этого проверка, если необходимо использовать определенную дополнительную версию, добавьте <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> свойство в .csproj файл.

Используйте один из этих методов, чтобы временно закрепить приложение к определенной версии среды выполнения:

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

  1. На портале Azure перейдите к приложению-функции.

  2. В разделе Параметры выберите пункт Конфигурация. На вкладке Параметры среды выполнения функции найдите версию среды выполнения. Запишите конкретную версию среды выполнения. В приведенном ниже примере задана версия ~4.

    Screenshot showing how to view the runtime version.

  1. Чтобы закрепить приложение на определенной дополнительной версии, выберите параметры>приложения FUNCTIONS_EXTENSION_VERSION, измените значение на требуемую дополнительную версию и нажмите кнопку "ОК".

  2. Нажмите кнопку "Сохранить>", чтобы применить изменения и перезапустить приложение.

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

Чтобы закрепить приложение-функцию в определенной версии среды выполнения в Linux, задайте URL-адрес базового образа для конкретной версии в linuxFxVersion параметре сайта в формате DOCKER|<PINNED_VERSION_IMAGE_URI>.

Внимание

Закрепленные приложения-функции в Linux не получают регулярные обновления функций безопасности и размещения. Если не рекомендуется специалистом по поддержке, используйте FUNCTIONS_EXTENSION_VERSION параметр и стандартное linuxFxVersion значение для вашего языка и версии, например Python|3.9. Допустимые значения см. в справочной linuxFxVersion статье.

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

Ниже приведен пример значения, необходимого для закрепления linuxFxVersion приложения-функции Node.js 16 к определенной версии среды выполнения 4.14.0.3:

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

При необходимости специалист по поддержке может предоставить допустимый универсальный код ресурса (URI) базового образа для приложения.

Используйте следующие команды Azure CLI для просмотра и задания linuxFxVersion. В настоящее время нельзя задать linuxFxVersion на портале или с помощью Azure PowerShell.

  • Чтобы узнать текущее значение версии среды выполнения, выполните команду az functionapp config show.

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

    В этом коде следует заменить <function_app> именем приложения-функции. Также замените <my_resource_group> именем группы ресурсов для приложения-функции. Возвращается текущее значение параметра linuxFxVersion.

  • Чтобы изменить значение linuxFxVersion в приложении-функции, выполните команду az functionapp config set.

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

    Замените <FUNCTION_APP> на имя приложения-функции. Также замените <RESOURCE_GROUP> именем группы ресурсов для приложения-функции. Наконец, замените <LINUX_FX_VERSION> значением определенного изображения, предоставленного специалистом службы поддержки.

Эти команды можно выполнить из Azure Cloud Shell, выбрав Open Cloud Shell в предыдущих примерах кода. Вы также можете локально использовать Azure CLI для выполнения этой команды после выполнения az login входа.

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

Следующие шаги