Докер функций Azure не работает с триггером http - PullRequest
0 голосов
/ 21 ноября 2018

Недавно я создал образ докера с функцией Azure (Node), имеющей HttpTrigger.Это базовый HttpTrigger, который генерируется по умолчанию.Я разрабатываю это на MacBook Pro (MoJave), и у меня установлены следующие инструменты.

NodeJs - node / 10.13.0 .NET Core 2.1 для macOS Основные инструменты функции Azure (через brew)

Когда я запускаю функцию локально с помощью «func host start», все работает нормально, и я вижу сообщения о загрузке функции.Также я смог выполнить функцию Azure с конечной точкой триггера. Однако, когда я пытаюсь построить контейнер Docker и запустить его, я могу загрузить домашнюю страницу приложения, но не могу достичь конечной точки функции.В журнале я мог видеть только следующее:

Hosting environment: Production
Content root path: /
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.

Мой файл Docker, как показано ниже (генерируется основными инструментами Azure);

FROM mcr.microsoft.com/azure-functions/node:2.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot
COPY . /home/site/wwwroot

Когда я пытаюсь использовать 'microsoft /azure-functions-runtime: v2.0.0-beta1 'в качестве базового образа, тогда я вижу загрузку функции и могу также получить доступ к триггеру http.

Чего-то не хватает или мне нужно использовать другое изображение?

1 Ответ

0 голосов
/ 22 ноября 2018
  1. В Dockerfile добавьте ENV AzureFunctionsJobHost__Logging__Console__IsEnabled=true, чтобы включить ведение журнала, параметр опущен в базовом образе , поэтому мы должны сделать это вручную.

  2. Если вы получили 401 Unauthorized, найдите файл function.json, измените authLevel на anonymous, если это было function (значение по умолчанию в шаблоне).Мы не можем получить доступ к триггеру http в локальном контейнере с уровнем доступа, отличным от anonymous.Потому что у нас пока нет функциональных клавиш , которые доступны после того, как мы создадим приложение Function с использованием контейнера.

    Что касается того, почему мы можем получить доступ к триггеру http с function authlevel, когда мыиспользуйте func host start вне контейнера, авторизация отключена независимо от указанного уровня аутентификации при локальном запуске.

...