Приложение Azure Functions не обнаруживает привязки HTTP, предоставляемые образом Docker - PullRequest
0 голосов
/ 12 сентября 2018

Я занимаюсь разработкой приложения-функции Azure в VS 2017 для C # / csproj, нацеленного на среду выполнения функций Azure 2.x и создающего контейнер Docker (Linux) для развертывания.Я знаю, что я нахожусь на бета территории, но я не нашел ничего, что указывало бы на проблему, с которой я столкнулся, это известное ограничение системы

Пошаговое руководство по MS для справки: https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image

Источник построен на VSTS и использует CLI Azure для создания и отправки образа докера в одну команду:

az acr build --registry <myacrname> --image <myimagename>:$(Build.BuildNumber) --image <myimagename>:latest $(Build.Repository.LocalPath)/<mybuildoutputfolder>

Это работает.В реестре контейнеров Azure перечислены мой новый репозиторий и обновленные теги версий, как и ожидалось.

Далее я хочу создать новое приложение-функцию Azure, которое будет работать поверх службы приложений Azure (Linux) и будет принимать мой док-контейнер,

az functionapp create --name <myazfuncapp> --storage-account <azfuncappstoracct> --resource-group <myazfuncapprezgrp> --plan <mylinuxappsvcplan> --deployment-container-image-name <myacrname>.azurecr.io/<myimagename>:1.0.0.0-alpha

Это работает.Я получаю приложение-функцию, и пока мои методы функций имеют анонимные HTTP-привязки, я могу даже вызвать «GET myazfunctionapp.azurewebsitesnet / api / myfunc01» и получить ответ 200. К сожалению, согласно порталу Azure, в моем приложении функций нет методов.Почему это так?

enter image description here

Это также означает, что для привязок, которые ожидают AuthorizationLevel.Function, я не могу получить / установитьключи авторизации.Приложение функций также не отображается нигде в Azure (например, «Приложения логики», «Управление API» и т. Д.)

Если бы я смог обойти эту точку, моим следующим шагом будет настройка непрерывного развертывания.конвейер в VSTS, чтобы сделать такой вызов в интерфейсе командной строки Azure:

az webapp config container set --name <myfuncapp> --resource-group <myfuncapprezgrp> --docker-registry-server-url <myacrname>.azurecr.io --docker-registry-server-password <myacrpass> --docker-registry-server-user <myacruser> --docker-custom-image-name <myacrname>.azurecr.io/myimagename:1.0.0.7-beta

Так что я просто параметризую номер версии сборки из моего связанного артефакта в VSTS, и мы сможем выпустить желаемыйверсия для целевой среды с относительной легкостью.Однако я не убежден, что обновление «--docker-custom-image-name» или иное изменение переменной среды «DOCKER_CUSTOM_IMAGE_NAME» и перезапуск даже действительно работают - кажется, что после «az functionapp create ...» образ контейнераполучает вид блокировки.

Ответ по умолчанию, который распространялся для других проблем с функциями Azure, заключается в проверке того, что для переменной среды "FUNCTIONS_EXTENSION_VERSION" установлено значение "бета".Мое функциональное приложение действительно установлено на бета-версию.Вот мои настройки приложения: enter image description here

Вот мои настройки приложения функций:

enter image description here

Я не понимаю, странная ошибка HTTP 500, Azure появляется там, когда я перехожу к этим настройкам.Судя по тому, что я могу сказать, любое приложение-функция Azure, кажется, выбрасывает это при загрузке этого экрана, независимо от версии среды выполнения или платформы ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...