Node.js 项目 zip 未能上传为 Azure WebJob

Node.js project zip failed to upload as Azure WebJob

请不要在未阅读的情况下关闭此问题。

我有一个常规的 Node.js 项目,其中有一个 index.js 和一堆 node_modules,其中一个是用于下载文件的 azure-storage。我已经压缩了它进入 .zip 并尝试将其作为 Azure WebJob 上传..但每次都失败。

它的作用是,在我的 Node.js 项目中有一个空目录。我写了一些代码,将 csv 文件从 azure 存储下载到本地目录,并将每一行转换为 INSERT 语句。

遇到了几个涉及相同问题的线程。我尝试过的是:

  1. npm dedupe - 这是在某处建议的,因为 node_module 目录树可以递归地超过 Windows 中允许的长度 - 对我不起作用
  2. 丢弃了 node_modules 中的所有内容(只是为了检查 #1 是否真的是我的问题)- 同样的错误
  3. 仅上传了 index.js 文件 - 有效:/

已经两天了,因为我没有看到有人在这里发布解决方案,我必须假设还没有人 运行 解决这个问题,或者可能很少有人在使用 Node.js + Azure WebJobs。

好消息是,我发现了问题,现在我已经启动了 Node.js WebJob,并且现在 运行ning 在 Azure 应用服务中。 (坏消息是我在下载的日志中找不到任何内容,不确定我是否遗漏了日志中的任何内容)。

所以,这就是我的做法,以防有一天有人遇到同样的问题...

首先,不要使用index.js。使用 run.js 作为 WebJob 的入口点,并在 package.json 文件中输入 { ... "main": "run.js", ... }

这很简单。

我出错的地方是,我正在将我的 Node.js 项目目录压缩到一个 .zip 文件中,这就是一切都崩溃的地方。每当我在我的应用程序服务中将此 .zip 作为 Azure WebJob 上传时.. Azure 尝试启动它一段时间然后以错误结束,说 "failed to add webjob".

解决方法:进入Node.js项目目录和里面的"select all"个文件+目录,然后压缩选区。不要压缩 Node.js 项目目录,而是压缩它的内容 :)

然后将压缩的 .zip 作为 Azure WebJob 上传到您的应用服务中,它会非常棒!

一些附加信息:这就是我的 Node.js 项目目录的大致样子。

  • _1_my_directory
  • node_modules
  • run.js
  • 支持实用程序-1.js
  • 支持实用程序-2.js
  • app.config
  • 一些-other.config