中央目录损坏部署 Python Azure 功能

Ric*_*nas 5 python deployment function azure

我以前能够使用命令部署用 Python 编写的 Azure 函数 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!
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以下方法,看看我是否可以解决它而没有任何成功:

  • 关闭和打开我的机器。
  • 部署旧版本的代码,以防我更改了任何内容。
  • 在 Visual Studio 代码中从命令提示符部署。
  • 重新安装 Azure 函数核心工具。
  • 从不同网络上的不同机器进行部署(我读到上传 zip 文件有时会出现防火墙问题,但我的 IT 经理向我保证我们没有任何限制,并且这些设置没有更改)。在这样做时,我必须从头开始安装 Azure 功能核心工具,因为它以前从未安装在该机器上。
  • 创建一个全新的干净的功能应用程序并在那里部署。
  • 在干净的目录中创建一个全新的最小 Python 应用程序并将其部署到新的函数应用程序。

我在每种情况下都收到相同的消息。

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

其他调查——

  • 我尝试以不同的 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.
Run Code Online (Sandbox Code Playgroud)

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

我怀疑是某些原因导致创建第一个文件,并且服务器上的某些内容正在尝试解压缩但未能成功。

更多附加信息 - Visual Studio 代码中的“部署到函数应用程序”已部署,但是当 Azure 函数运行时,我收到有关未被加载的函数引用的模块的错误。如果可以使用功能应用程序部署 requirements.txt 中的模块,这将是一个变通方法。

小智 3

考虑到您为诊断问题所做的一系列详尽的事情,这可能不适用,但我会把它扔在那里。func host start如果我的函数正在运行,无论是在终端窗口(通过)还是通过 VSCode 函数扩展,我都会遇到这种情况。

看起来应该很明显就能看出是否有任何东西正在运行,但我已经看到 VSCode 留下处于运行状态的函数主机进程。要进行检查,您可以检查 netstat ( netstat -a -n | grep 9091) 或 lsof ( lsof -nP -iTCP:9091 | grep LISTEN)。后者为您提供打开端口的 pid。