Node.js 项目 zip 无法作为 Azure Web Job 上传



请不要在没有阅读的情况下关闭这个问题。

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

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

遇到了几个涉及同一概率的线程。 我尝试的是:

  1. npm 重复数据删除 - 这是在某处建议的node_module因为目录树可以递归超过 Windows 中允许的长度 - 对我不起作用
  2. node_modules里面的所有东西都扔掉了(只是为了检查#1是否真的是我的问题) - 同样的错误
  3. 仅上传索引.js文件 - 工作:/

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

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

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

首先,不要使用索引.js。使用 run.js 作为 Web 作业的入口点,并在 package.json 文件中,将条目 { ..."main": "run.js", ... }

这很简单。

我出错的地方是,我正在将我的 Node.js 项目目录压缩到一个 .zip 文件中,这就是所有地狱崩溃的地方。每当我将此.zip作为 Azure Web 作业上传到我的应用服务中时。Azure 尝试启动它一段时间,然后以错误结束,指出"无法添加 Web 作业"。

解决方案:进入 Node.js 项目目录并"选择所有"文件+其中的目录,然后压缩选择。与其压缩 Node.js 项目目录,不如将其内容压缩:)

然后将压缩的.zip作为 Azure Web 作业上传到应用服务中,它将像一个魅力一样工作!

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

  • _1_my_directory
  • node_modules
  • 跑.js
  • 支持util-1.js
  • 支持util-2.js
  • 应用配置
  • some-other.config

最新更新