Как создать / развернуть приложение-функцию Python Azure с помощью внутреннего pypi

Я использую команду func azure functionapp publish, чтобы опубликовать приложение-функцию Python в Azure. Насколько я могу судить, команда только упаковывает исходный код и передает его в Azure, а затем на удаленном компьютере в Azure приложение-функция создается и развертывается. Фаза сборки включает сбор зависимостей от pypi. Есть ли способ переопределить, где он ищет эти зависимости? Я хотел бы указать его на мой текущий сервер pypi или, альтернативно, предоставить колеса локально в моем исходном дереве и использовать их. У меня есть несколько вопросов / проблем:

  1. Мои предположения верны?
  2. Если да, возможно ли это и как?

Я попробовал несколько вещей, прочитал несколько документов, посмотрел различные --help параметры в инструменте CLI, я создал pip.conf файл, который, как я убедился, работает для локального использования пипса, затем специально сломал его и попытался посмотреть, не завершится ли публикация (этого не произошло, поэтому я полагаю, что он игнорирует pip.conf или сборку (и сбор зависимостей происходит на удаленном конце). Я в недоумении, и любые советы, указатели, или ответы приветствуются!


person Bryant    schedule 24.08.2020    source источник


Ответы (1)


Вы можете добавить дополнительный источник pip, чтобы указать на ваш собственный сервер pypi. Отметьте https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-python#remote-build-with-extra-index-url

Удаленная сборка с дополнительным URL-адресом индекса: если ваши пакеты доступны из доступного настраиваемого индекса пакетов, используйте удаленную сборку. Перед публикацией убедитесь, что создать настройку приложения с именем PIP_EXTRA_INDEX_URL. Значением этого параметра является URL-адрес вашего индекса пользовательского пакета. Использование этого параметра указывает удаленной сборке выполнить установку pip с помощью параметра --extra-index-url. Чтобы узнать больше, см. документацию по установке пакета Python.

Вы также можете использовать базовые учетные данные для аутентификации с дополнительными URL-адресами индекса пакетов. Чтобы узнать больше, см. учетные данные базовой аутентификации в документации Python. .

Что касается ссылки на локальные пакеты, это тоже возможно. Проверьте https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-python#install-local-packages.

Я надеюсь, что теперь на оба ваших вопроса есть ответы.

person krishg    schedule 25.08.2020
comment
Спасибо, я думаю, это очень помогает. Другой вопрос - применяется ли это при использовании приложений-функций Python, развернутых в контейнерах докеров? - person Bryant; 25.08.2020
comment
(Извините, предыдущий комментарий о контейнере удален как неправильный). Когда вы создаете контейнер, он самодостаточен, и вы создаете его самостоятельно. Итак, во время самой сборки у вас есть возможность ссылаться на свой частный источник pypi во время установки pip. Параметр приложения PIP_EXTRA_INDEX_URL не применим для контейнеров. - person krishg; 25.08.2020