首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署Python函数时中央目录损坏

部署Python函数时中央目录损坏
EN

Stack Overflow用户
提问于 2020-02-19 08:34:49
回答 4查看 2.9K关注 0票数 7

我以前能够使用我的项目目录中的命令func azure functionapp publish <FunctionAppName>部署一个用Python编写的Azure函数,然后远程构建它。直到昨天的午餐时间。

我现在收到以下消息。

代码语言:javascript
复制
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!

我尝试了以下方法,看看我是否能够解决这个问题而没有任何成功:

anything.

  • Deploying

  • 关闭我的机器。部署一个较旧版本的代码,以防我在visual code.

  • Reinstalling Azure functions中的命令提示符中更改了不同网络上不同机器的核心tools.

  • Deploying (我读到上传压缩文件有时会出现防火墙问题,但我的IT经理向我保证,我们没有任何限制,这些设置也没有被更改)。在此过程中,我必须从头开始安装Azure函数核心工具,因为它从未安装在该机器before.

  • Creating上--一个全新的干净功能应用程序--并将there.

  • Creating部署到一个干净的目录中,并将其部署到新的functionapp.

中。

我在每一种情况下都会得到同样的信息。

我被困在这里了。是否有人有更多关于错误信息可能意味着什么是出错或任何想法的信息?

其他调查-

  • 我尝试过将其部署为不同的Azure用户(相同的错误)。
  • 我已经检查过使用端口9091的进程(没有找到)。

我还尝试使用func azure functionapp publish IncidentProcessing4 --build local在本地构建

我收到了一些不同的错误信息

代码语言:javascript
复制
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.

我注意到,在我的\user\name\appdata\local\temp目录中,构建创建了2个文件,名为temp374D.tmp和tmp374E.tmp。其中第一个大小为0KB,第二个大小为8KB。

我怀疑是某种原因导致创建了第一个文件,而服务器上的某些东西正在试图解压缩,但未能解压缩。

更多其他信息-- Visual代码中的“”--部署,但是当Azure函数运行时,我会得到未加载的函数引用的模块的错误。如果可以使用函数应用程序在requirements.txt中部署模块,这将是一项工作。

EN

回答 4

Stack Overflow用户

发布于 2020-02-20 14:30:40

我想我已经修复了它,恢复到早期版本的Azure函数核心工具。它正在部署2.7.1575。

我将进行实验,看看是否还能找到答案,但我现在已经部署了我的功能。

票数 2
EN

Stack Overflow用户

发布于 2020-02-19 23:27:57

考虑到您尝试诊断问题所做的全部工作,这可能不适用,但我将把它抛在脑后。如果我的函数运行在终端窗口中(通过func host start),甚至通过VSCode函数扩展,我就会遇到这种情况。

看上去应该是显而易见的,看看是否有任何东西正在运行,但我已经看到VSCode将函数主机进程留在运行状态。要进行检查,可以检查netstat (netstat -a -n | grep 9091)或lsof (lsof -nP -iTCP:9091 | grep LISTEN)。后者给出了打开端口的pid。

票数 1
EN

Stack Overflow用户

发布于 2020-04-23 06:26:07

看起来在Azure Functions工具中引入了一个bug,如果您的函数目录full path中包含一个空格字符(如- /home/my functions project/ ),它将创建一个0字节的zip包。

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

这将在下一个版本中得到解决。同时,任何经历这种情况的人如果将他们的函数项目切换到没有空格字符的路径上,就可以缓解这个问题。

真对不起!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60296003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档