Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Функциях Azure поддержка языкового стека ограничена определенными версиями. По мере того как новые версии становятся доступными, может потребоваться обновить приложения-функции, чтобы воспользоваться преимуществами новых функций. Поддержка функций также заканчивается для старых версий и обычно совпадает со сроками окончания поддержки, установленными сообществом. Дополнительные сведения см. в политике поддержки среды выполнения языка. Поддерживаемые версии различных языков см. в разделе "Языки по версии среды выполнения".
Чтобы убедиться, что приложения-функции продолжают получать поддержку, следуйте инструкциям в этой статье, чтобы обновить их до последних доступных версий. Способ обновления приложения-функции зависит от нескольких факторов:
- Язык, используемый для разработки приложений-функций. Выберите язык программирования в верхней части этой статьи.
- Операционная система, в которой работает приложение-функция в Azure: Windows или Linux.
- План размещения.
Примечание.
В этой статье показано, как обновить версию приложения-функции .NET, использующую изолированную рабочую модель. Если приложение-функция работает на более старой версии .NET и использует модель в процессе, рассмотрите следующие варианты:
Подготовка приложения-функции
Перед обновлением конфигурации стека для приложения-функции в Azure выполните задачи в следующих разделах.
Проверка зависимостей
Перед обновлением языковых версий просмотрите следующие потенциальные зависимости:
-
Пакеты расширений. Убедитесь, что файл
host.jsonссылается на совместимую версию пакета расширений. Для большинства сценариев рекомендуется использовать пакеты версии 4.x.
Расширения привязки: обновите все явные ссылки на расширения привязки к версиям, совместимым с новой версией языка.
Зависимости пакетов: просмотрите и обновите все зависимости пакета до версий, поддерживающих целевую версию языка.
Локальные инструменты. Убедитесь, что ваши локальные средства разработки, такие как Core Tools для Azure Functions, SDK и интегрированные среды разработки (IDE), поддерживают новую версию языка.
Проверка локального приложения-функции
Проверьте и проверьте код приложения-функции локально в новой целевой версии.
Чтобы обновить проект на локальном компьютере, выполните следующие действия.
Убедитесь, что установлена целевая версия пакета SDK для .NET.
Если вы используете предварительную версию, ознакомьтесь с рекомендациями по функциям для предварительной версии .NET, чтобы убедиться, что эта версия поддерживается. Для использования предварительных версий .NET могут потребоваться дополнительные действия.
Обновите ссылки на последние версии Microsoft.Azure.Functions.Worker и Microsoft.Azure.Functions.Worker.Sdk.
Обновите целевую платформу проекта до новой версии. Для проектов C# необходимо обновить
<TargetFramework>элемент в CSPROJ-файле . Дополнительные сведения о вашей версии см. в разделе "Целевые платформы".Изменение целевой платформы проекта также может потребовать изменений в частях цепочки инструментов вне кода проекта. Например, в Visual Studio Code может потребоваться обновить
azureFunctions.deploySubpathпараметр расширения в параметрах пользователя или vscode/settings.json файла проекта. Проверьте наличие зависимостей от версии платформы, существующей вне кода проекта, в рамках шагов сборки или конвейера непрерывной интеграции и непрерывной доставки (CI/CD).Внесите все обновления в код проекта, необходимый новой версии .NET. Проверьте заметки о выпуске версии для получения определенных сведений. Помощник по обновлению .NET также позволяет обновить код в ответ на изменения в основных версиях.
После внесения этих изменений перестройте проект и протестируйте его, чтобы убедиться, что приложение-функция работает должным образом.
Переход к последней среде выполнения функций
Убедитесь, что приложение-функция работает в последней версии среды выполнения Функций (версия 4.x). Вы можете определить версию среды выполнения в портал Azure или с помощью Azure CLI.
Чтобы определить версию среды выполнения функций, выполните следующие действия.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>".
Перейдите на вкладку "Параметры среды выполнения функции " и проверьте значение версии среды выполнения . Приложение-функция должно работать в среде выполнения функций версии 4.x (
~4).
Если необходимо обновить приложение-функцию до версии 4.x, см. статью "Миграция приложений из функций Azure версии 1.x на версию 4.x " или "Миграция приложений из функций Azure версии 3.x" на версию 4.x. Следуйте инструкциям в этих статьях, а не просто измените параметр FUNCTIONS_EXTENSION_VERSION.
Публикация обновлений приложения-функции
Если вы обновили приложение-функцию, чтобы правильно работать в новой версии, опубликуйте обновления приложения-функции перед обновлением конфигурации стека для приложения-функции.
Совет
Чтобы упростить процесс обновления, свести к минимуму время простоя ваших функциональных приложений и предоставить потенциальную версию для отката, опубликуйте обновленное функциональное приложение в промежуточном слоте. Дополнительные сведения см. в разделе Функции Azure слотов развертывания.
При публикации обновленного приложения-функции в промежуточном слоте обязательно следуйте инструкциям по обновлению для конкретного слота в остальной части этой статьи. Позже вы переключите обновленный промежуточный слот в рабочую среду.
Рассмотрите возможность использования слотов
Перед обновлением языковой версии приложения-функции создайте слот развертывания для тестирования и развертывания. Этот подход сводит к минимуму время простоя и обеспечивает простой вариант отката при возникновении проблем. В примерах в этой статье используется промежуточный слот с именем staging.
План Flex Consumption: слоты в настоящее время не поддерживаются. Сначала вы должны проверить обновленный код в нерабочем экземпляре приложения-функции. При развертывании в работающее приложение, можно использовать стратегию последовательного обновления. Дополнительные сведения см. в стратегиях обновления сайта в Flex Consumption.
Это важно
Стратегия последовательного обновления в настоящее время находится в предварительной версии и не рекомендуется для рабочих приложений. Ознакомьтесь с текущими ограничениями и рекомендациями перед включением этой стратегии в любом рабочем приложении.
Обновление конфигурации стека
Способ обновления конфигурации стека зависит от того, работает ли ваше приложение-функция в Windows или Linux в Azure.
При использовании промежуточного слота обязательно направляйте обновления в нужный слот.
Чтобы обновить версию Java, выполните следующие действия.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.
На вкладке "Общие параметры" обновите версию Java до требуемой версии.
Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".
Чтобы обновить версию .NET, выполните следующие действия.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.
На вкладке "Общие параметры" обновите версию .NET до требуемой версии.
Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".
Чтобы обновить версию Node.js, выполните следующие действия.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.
На вкладке "Общие параметры" обновите версиюNode.js до требуемой версии.
Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить". Это изменение обновляет
WEBSITE_NODE_DEFAULT_VERSIONпараметр приложения.
Чтобы обновить версию PowerShell, выполните следующие действия.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>". Если у вас есть тестовый слот, выберите нужный слот.
На вкладке "Общие параметры" обновите версию PowerShell Core до требуемой версии.
Нажмите кнопку "Сохранить". Когда вы получите уведомление о перезапуске, нажмите кнопку "Продолжить".
Портал не поддерживает приложения Python в Windows. Перейдите на вкладку Linux .
Приложение-функция перезапускается после обновления версии.
Примечание.
Во время перезапуска приложение-функция недоступна в течение короткого периода, как правило, 30–60 секунд. При обновлении продуктового функционального приложения напрямую (без использования промежуточного слота) запланируйте время неработоспособности на период технического обслуживания. Перезапуск завершает все запросы в процессе выполнения, а новые запросы не будут выполняться, пока приложение не перезапустится успешно.
Проверьте обновление
После перезапуска приложения-функции убедитесь, что обновление языковой версии выполнено успешно.
На портале Azure найдите и выберите приложение-функцию. В боковом меню выберите "Конфигурация параметров>".
На вкладке "Общие параметры" убедитесь, что выбранная языковая версия отображает выбранную версию.
Выберите "Обзор" в боковом меню и убедитесь, что состояние отображается как запущенное.
После проверки версии убедитесь, что функции работают должным образом.
Переключение слотов
Если вы используете тестовый слот для развертывания проекта кода и обновления параметров, замените тестовый слот на рабочую среду. Дополнительные сведения см. в разделе "Переключение слотов".
Устранение неполадок
При возникновении проблем после обновления языковой версии используйте следующее руководство, чтобы устранить распространенные проблемы:
Функциональное приложение не запускается
Симптомы: Состояние функционального приложения отображается как Остановленное или непрерывно перезапускается.
Решения:
Проверьте журналы приложений на портале Azure:
- Перейдите к вашему функциональному приложению и выберите Мониторинг>поток журналов.
- Поиск сообщений об ошибках, связанных с несоответствиями версий среды выполнения или языка.
Убедитесь, что все зависимости совместимы с новой языковой версией:
- Для .NET убедитесь, что пакеты NuGet поддерживают целевую платформу.
- Для Python убедитесь, что версии
requirements.txtпакетов совместимы. - Для Node.jsубедитесь, что
package.jsonзависимости поддерживают новую версию Node.
Проверьте версию пакета расширений в
host.jsonфайле. Старые пакеты могут не поддерживать более новые языковые версии.
Функции завершаются с ошибками времени выполнения
Симптомы: Отдельные функции завершаются сбоем при вызове с ошибками в журналах.
Решения:
Просмотрите критические изменения для версии языка:
- См. критические изменения в .NET для целевой версии.
- Ознакомьтесь с заметками о выпуске Java, чтобы получить руководство по миграции.
- Проверьте заметки о выпуске Node.js на предмет изменений, нарушающих совместимость.
- Смотрите что нового в Python относительно изменений в конкретной версии.
- Изучите заметки о релизе PowerShell чтобы увидеть изменения.
Обновите расширения привязки до версий, совместимых с новой версией языка.
Тестирование функций локально с помощью новой языковой версии перед повторной развертыванием.
Конфликты версий расширения
Симптомы: Ошибки, которые ссылаются на несовместимость версий "расширения" или "привязки".
Решения:
Обновите версию пакета расширений до
host.jsonверсии 4.x или более поздней.{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.*, 5.0.0)" } }Для проектов .NET, использующих явные ссылки на расширения, обновите все
Microsoft.Azure.WebJobs.Extensions.*пакеты до последних версий.
Откат обновления
Если вам нужно вернуться к предыдущей версии языка:
Если вы использовали промежуточный слот:
- Переключите промежуточный слот обратно в продакшен.
- Для будущих попыток верните слот развертывания к предыдущей версии.
Если вы обновили производственную среду напрямую:
- Выполните те же действия по обновлению в этой статье, но укажите предыдущую языковую версию.
- Повторно разверните предыдущую версию кода.
Отслеживайте функцию приложения, чтобы убедиться, что оно возвращается к нормальной работе.
Совет
Чтобы избежать проблем, всегда тестируйте обновления языковых версий на стадии тестирования, прежде чем применять их к производственной среде. Создайте резервную копию конфигурации приложения-функции перед внесением изменений.