Версия функции Azure, влияющая на запрос GET - PullRequest
0 голосов
/ 31 августа 2018

Когда я пытаюсь установить функции Azure на стабильные версии 1.0.14 или 1.0.13 локально и на портале, я получаю ошибку 500 при попытке получить конечную точку. Через некоторую отладку мне удалось исправить это, изменив версию на бета-версию. Нет ошибок

Кто-нибудь еще видел эту проблему? Есть ли способ обойти это без фактического воссоздания функции с использованием нужной версии?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Очень полезная информация, спасибо, Джерри! Мне удалось решить мою проблему, воссоздав функцию Azure без использования .NET Standard. Azure сообщает, что изменение определенных настроек может привести к неправильной работе функции. После воссоздания с надлежащим временем выполнения, установленным как на портале, так и в проекте, все заработало.

0 голосов
/ 31 августа 2018

Возможно, вы ошиблись Версия Azuer Function SDK для Версия Azure Function Runtime * .

попробуйте установить для функций Azure стабильные версии 1.0.14 или 1.0.13 локально и на портале

1.0.14 or 1.0.13 вы упомянули версию SDK (последняя 1.0.19 прямо сейчас), которая используется для создания нашего функционального проекта. Конечно, мы не можем установить версию SDK на портале, поскольку сборка выполняется до того, как мы опубликуем предварительно скомпилированный код в Azure. Если мы разрабатываем в браузере, процесс сборки и версия SDK (последняя) находятся под контролем Azure.

Мне удалось исправить это, изменив версию на бета-версию. Нет ошибок.

Возможно, вы создали функцию v2 локально, поэтому функция зависит от времени выполнения бета-версии. И вы указываете неправильную версию 1.x, например 1.0.14, поэтому используется 1.0.11959. Мы видим, что ошибка 500 вызвана несовпадением времени выполнения, и вы исправили ее. Если вы планируете работать с функцией v2 (стандарт .net), пока что никаких неисправностей.

И еще немного информации о версии времени выполнения функции.

Функция Runtime версия

Существует две основные версии: 1.x для .Net Framework и 2.x для .Net Standard.

Синтаксис

  1. Основная версия: ~1 для 1.x, ~2 для 2.x. В этом формате приложение-функция в Azure автоматически обновляется до новых дополнительных версий среды выполнения, когда они становятся доступными.
  2. Малая версия 1.x: 1.0.11959; 2.х: 2.0.11961-alpha, 2.0.12050-alpha. (Все версии доступны прямо сейчас). Функция приложения в Azure сохраняется в этой версии, пока мы не изменим ее явно.

Где найти

  1. Версия времени выполнения в настройках приложения-функции.
  2. FUNCTIONS_EXTENSION_VERSION в настройках приложения.

Конфигурация

Два сценария, нам нужно изменить время выполнения.

  1. Основная смена версии. От ~ 1 до ~ 2 или наоборот.

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

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

    • В пустом приложении функции (удалить существующие функции или создать новое приложение) измените время выполнения в настройках приложения функции.

    • Мы можем напрямую установить FUNCTIONS_EXTENSION_VERSION в настройках приложения, если опубликованный проект зависит от другого времени выполнения.

  2. Незначительная версия прикреплена, чтобы избежать критических изменений (вероятно, последний раз использовать как 2.x планируется этой осенью).

    См. критические изменения в 2.0.12050-alpha(beta), мы можем прикрепить FUNCTIONS_EXTENSION_VERSION к 2.0.11961-alpha и выполнить шаги, чтобы работать с изменениями и перейти к бета-версии.

    Найдите больше критических изменений , чтобы исправить, если наша среда выполнения 2.x прикреплена к какой-то более старой версии, которая была удалена в Azure.

Неправильный обработчик версии

Если мы укажем неправильную версию 1.x, например 1.0.14, Azure будет использовать последнюю минорную версию. То же самое с 2.x.

Для местного разработчика

Вообще говоря, локальный dev не требует настройки времени выполнения, потому что сначала мы выбираем Cli (используя такие инструменты, как npm или VS в фоновом режиме), по крайней мере, мы понимаем основную версию.

Некоторые локальные места для поиска версии времени выполнения функции.

  1. VS, проект новой функции v1 или v2.
  2. VS / VSCode c # function, в functionappname.csproj, см. <AzureFunctionsVersion>v2</AzureFunctionsVersion>.
  3. VSCode, functionapp / .vscode / setting.json, см. "azureFunctions.projectRuntime": "~2"
  4. Функция основных инструментов (Cli), запуск func, мы можем увидеть Function Runtime Version:2.0.12050.0
  5. Запустите приложение функции в VS / VSCode / Cli, кроме 4, мы также можем увидеть вывод Cli * Starting Host (HostId=xx, InstanceId=xx, Version=2.0.12050.0, ..)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...