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

时间:2019-04-30 12:06:40

标签: node.js azure azure-webjobs webjob

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

我有一个带有index.js和一堆node_modules的常规Node.js项目,其中一个是天蓝色存储,用于下载文件。我已将其压缩为.zip,并尝试将其上传为Azure WebJob ..但每次都会失败。

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

在涉及相同问题的几个线程中都来。我尝试过的是:

  1. npm重复数据删除-有人建议这样做,因为node_module目录树可以递归地超过Windows中允许的长度-不适用于我
  2. 破坏了node_modules中的所有内容(只是检查#1是否真的是我的问题)-同样的错误
  3. 仅上传index.js文件-工作:/

1 个答案:

答案 0 :(得分:0)

好了,已经有两天了,因为我没有看到任何人在这里发布解决方案,所以我必须假设还没有人遇到这个问题,或者也许只有很少的人在使用Node.js + Azure WebJobs。

好消息是,我发现了问题,现在我已经启动了Node.js WebJob并在Azure App Service中运行。 (而且坏消息是我在下载的日志中找不到任何内容,不确定是否丢失了日志中的任何内容。)

所以,这是我的操作方法,以防万一有人碰到同一问题...

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

这很简单。

我出问题的地方是,我将Node.js项目目录压缩到一个.zip文件中,这是所有事情都松散的地方。每当我将此.zip作为Azure WebJob上载到我的App Service中时。Azure尝试启动它一段时间,然后以错误“无法添加webjob”结束。

解决方案:进入Node.js项目目录,并在其中“全选”文件+目录,然后压缩选择。与其压缩Node.js项目目录,不如压缩其内容:)

然后将压缩的.zip作为Azure WebJob上传到您的App Service中,它将像超级按钮一样工作!

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

  • _1_my_directory
  • node_modules
  • run.js
  • supporting-util-1.js
  • supporting-util-2.js
  • app.config
  • some-other.config