Central Directory Corrupt развертывание Python Azure функция - PullRequest
2 голосов
/ 19 февраля 2020

Ранее я мог развернуть функцию Azure, написанную на Python, используя команду func azure functionapp publish <FunctionAppName> из каталога моего проекта, создав ее удаленно. Это работало до вчерашнего обеда.

Теперь я получаю следующее сообщение.

Creating archive for current directory...
Performing remote build for functions project.
Deleting the old .python_packages directory
Uploading  [######################################################################################]
Remote build in progress, please wait...
Fetching changes.
Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/c5e66350-4b87-4e72-9900-b2a1ae4521a8.zip (0.00 MB) to /tmp/zipdeploy/extracted
Central Directory corrupt.
Remote build failed!

Я попробовал следующее, чтобы посмотреть, смогу ли я решить его без какого-либо успеха:

  • Выключение и включение компьютера.
  • Развертывание более старой версии кода на случай, если я что-то изменил.
  • Развертывание из командной строки в коде Visual Studio.
  • Переустановка Azure функций основных инструментов.
  • Развертывание с другого компьютера в другой сети (я читал, что иногда возникают проблемы с брандмауэром при загрузке zip-файлов, но мой ИТ-менеджер уверяет меня, что у нас нет ограничений) и эти настройки не были изменены). При этом мне пришлось установить основные инструменты Azure с нуля, так как они никогда не устанавливались на этом компьютере раньше.
  • Создание совершенно нового чистого приложения app и его развертывание.
  • Создание новое минимальное Python приложение в чистой директории и развертывание его в новой функцииapp.

Я получаю одно и то же сообщение в каждом случае.

Я застрял здесь. У кого-нибудь есть какая-либо дополнительная информация о том, что сообщение об ошибке может означать сбой или какие-либо идеи?

Другие исследования -

  • Я пытался развернуть как другой пользователь Azure (та же ошибка).
  • Я проверил все процессы, используя порт 9091 (ни один не был найден).

Я также попытался выполнить локальную сборку, используя func azure functionapp publish IncidentProcessing4 --build local

Я получил несколько разных сообщений об ошибках

Performing local build for functions project.
Directory .python_packages already in sync with requirements.txt. Skipping restoring dependencies...
Uploading package...
Uploading 0 B [###################################################################################]
Attempted to divide by zero.
Retry: 1 of 3
Uploading 0 B [###################################################################################]
Attempted to divide by zero.
Retry: 2 of 3
Uploading 0 B [###################################################################################]
Attempted to divide by zero.
Retry: 3 of 3
Uploading 0 B [###################################################################################]
Attempted to divide by zero.

Я заметил, что в моем каталоге \ users \ name \ appdata \ local \ temp были созданы 2 файла с именами temp374D.tmp и tmp374E. TMP. Первый из них был размером 0 КБ, а второй размером 8 КБ.

Я подозреваю, что что-то вызывает создание первого файла, а что-то на сервере пытается и не удается его распаковать.

Дополнительные сведения - «Развертывание в приложение функции» из кода Visual Studio развертывается, но когда запускается функция Azure, я получаю ошибки о модулях, на которые ссылается функция, которая не загружается. Если возможно развернуть модули в файле require.txt с помощью приложения-функции, которое будет работать в обход.

Ответы [ 3 ]

2 голосов
/ 20 февраля 2020

Я думаю, что я исправил это, вернувшись к более ранней версии Azure Функции Core Tools. Он развертывается с 2.7.1575.

Я поэкспериментирую, чтобы узнать, смогу ли я узнать что-нибудь еще, но моя функция развернута сейчас.

0 голосов
/ 23 апреля 2020

Похоже, что в Azure функционала Core Tools была обнаружена ошибка, заключающаяся в том, что если в полном пути к каталогу функции есть пробел, например, Eg- /home/my functions project/, он создаст zip-пакет с 0 байтами.

См. - https://github.com/Azure/azure-functions-core-tools/issues/1867

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

К сожалению об этом!

0 голосов
/ 20 февраля 2020

Это может не применяться, учитывая ваш исчерпывающий набор действий, которые вы предприняли, пытаясь диагностировать проблему, но я выкину ее там. Я столкнулся с этим, если моя функция работает, либо в окне терминала (через func host start), либо даже через расширение функций VSCode.

Казалось бы, должно быть очевидно, чтобы увидеть, работает ли что-нибудь, но я видел, как VSCode оставлял процессы хоста функции в рабочем состоянии. Чтобы проверить, вы можете проверить netstat (netstat -a -n | grep 9091) или lsof (lsof -nP -iTCP:9091 | grep LISTEN). Последний дает вам pid с открытым портом.

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