Устранение ошибки "Среда выполнения Функций Azure недоступна"

Приведенные в этой статье сведения помогут устранить проблемы при отображении на портале Azure следующей строки ошибки:

"Ошибка. Среда выполнения Функций Azure недоступна. Щелкните, чтобы получить сведения о конфигурации хранилища".

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

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

Учетная запись хранения удалена

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

Начните с поиска имени учетной записи хранения в параметрах приложения. AzureWebJobsStorage или WEBSITE_CONTENTAZUREFILECONNECTIONSTRING содержит имя вашей учетной записи хранения как часть строки подключения. Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.

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

Параметры приложения учетной записи хранения удалены

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

Необходимые параметры приложения

Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.

Руководство

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

Недопустимые данные для входа в учетную запись хранения

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

Учетная запись хранения недоступна

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

Исчерпана квота на дневное выполнение

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

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

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

Чтобы устранить эту проблему, удалите или увеличьте дневную квоту, а затем перезапустите приложение. В противном случае выполнение приложения блокируется до следующего дня.

Приложение находится за брандмауэром

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

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

Для проверки конфигурации ASE выполните следующие действия.

  1. Перейдите в группу безопасности сети (NSG) подсети, в которой находится ASE.
  2. Проверьте правила входящего трафика, чтобы разрешить трафик, поступающий с общедоступного IP-адреса компьютера, на котором выполняется доступ к приложению.

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

Дополнительные сведения о конфигурации правил для входящих подключений см. в разделе "Группы безопасности сети" статьи Рекомендации по работе с сетями в среде службы приложений.

Ошибки контейнера в Linux

Для приложений-функций, работающих в контейнере Linux, ошибка Azure Functions runtime is unreachable может возникать в результате проблем с контейнером. Чтобы просмотреть журналы контейнеров на предмет ошибок, используйте следующую процедуру:

  1. Перейдите к конечной точке Kudu для приложения-функции, расположенной по адресу https://<FUNCTION_APP>.scm.azurewebsites.net, где <FUNCTION_APP> — имя приложения.

  2. Скачайте ZIP-файл журналов Docker и просмотрите его содержимое на локальном компьютере.

  3. Проверьте, есть ли в журналах ошибки, указывающие на то, что контейнер не может успешно запуститься.

Образ контейнера недоступен

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

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

Если образ контейнера не найден, в журналах Docker отображается manifest unknown ошибка. В этом случае можно использовать команды Azure CLI, описанные в статье Выбор целевых версий среды выполнения Функций Azure, чтобы изменить образ контейнера, связанный со ссылкой. Если вы развернули настраиваемый образ контейнера, необходимо исправить образ и повторно развернуть обновленную версию в реестре, на который указывает ссылка.

Контейнер приложений имеет конфликтующие порты

Приложение-функция может не откликаться из-за конфликта назначения портов при запуске. Это может происходить в следующих случаях:

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

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

Конфликт идентификаторов узлов

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

Параметры приложения только для чтения

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

переопределения проверки подлинности ASP.NET

Применяется только к приложениям C#, работающим в процессе с узлом Функций.

Настройка проверки подлинности ASP.NET в классе запуска Функций может переопределить службы, необходимые для взаимодействия портал Azure с узлом. Это включает в себя, но не ограничивается вызовами AddAuthentication(). Если службы проверки подлинности узла переопределяются, а портал не может взаимодействовать с узлом, он считает приложение недоступным. Эта проблема может привести к ошибкам, таким как: No authentication handler is registered for the scheme 'ArmToken'.

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

Узнайте о мониторинге приложения-функции: