Node.js 如何在使用未预装节点模块的节点目标服务器上部署apigee代理?

Node.js 如何在使用未预装节点模块的节点目标服务器上部署apigee代理?,node.js,apigee,Node.js,Apigee,这个问题是关于在使用未预先安装的节点模块的节点目标服务器上部署代理的。我们使用apigee edge在本地运行 节点目标服务器在本地运行良好 问题很简单:如何使用节点目标服务器将此类代理部署到apigee edge内部部署 尝试1 我试着像往常一样将代理打包成zip文件,并使用“导入新版本”功能将其上传到web浏览器中。对于更简单的代理(只使用预装的节点模块),它工作得很好。所有依赖项都列在packages.json文件中。部署代理时,每个api调用都会导致: HTTP/1.1 500 Inte

这个问题是关于在使用未预先安装的节点模块的节点目标服务器上部署代理的。我们使用apigee edge在本地运行

节点目标服务器在本地运行良好

问题很简单:如何使用节点目标服务器将此类代理部署到apigee edge内部部署

尝试1 我试着像往常一样将代理打包成zip文件,并使用“导入新版本”功能将其上传到web浏览器中。对于更简单的代理(只使用预装的节点模块),它工作得很好。所有依赖项都列在packages.json文件中。部署代理时,每个api调用都会导致:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 148

{"fault":{"faultstring":"Script node executed prematurely: Script exited with code 0","detail":{"errorcode":"messaging.runtime.ScriptExitedError"}}}
尝试2 我还尝试使用“npm install”在本地安装模块,然后将模块包含在zip中。但是,在这种情况下,会出现一条红色错误消息,表示导入失败。当我在web浏览器中重新加载api代理页面时,看起来该包实际上已上载,显示加载进度的框显示的加载进度超过了2000%。但是,加载完成后,无法部署它(将显示标准的非特定错误消息)

尝试3 最后,我还尝试了使用语法at的apigeetool(我确实将python源代码中的url更改为我们的本地服务器)。在运行该工具之前,使用“npm安装”安装模块。结果是出现以下错误消息:

正在导入新应用程序%PROXYNAME%

/v1/organizations/%ORGANIZATION%/API?操作=导入&名称=%PROXYNAME%

导入失败

/v1/organizations/%ORGANIZATION%/API?操作=导入&名称=%PROXYNAME%

状态为404:{“故障”:{“故障字符串”:“分类失败”

主机%IP%:%PORT%,“详细信息”:{“代码”:“分类失败”}


假设您使用的是OSX或*nix:

  • 在本地计算机上创建一个文件夹以包含节点脚本(例如
    /Development/myNodeProxy/
    )。把你的脚本放在那里。(例如,
    server.js

  • 打开终端并将cd放入脚本文件夹(
    /Development/myNodeProxy/

  • 使用
    npm
    安装所需的模块(键入
    npm install{modulename}
    不带全局
    -g
    开关)注意事项:Edge无法很好地处理冲突版本的,因此您需要在部署之前
    npm删除express
    。如果最终出现错误(如
    errno 32断管
    ),则可能需要删除其他模块

  • 从同一目录中,运行以下命令:

    apigeetool deploynodeapp-n{您的代理名称}-o{org}-e{environment}-b{proxy basepath}-d./-m server.js-u{您的电子邮件地址/用户名}-p{password}


  • 嗨,Joakim,有些模块在Apigee Edge中根本不受支持。下面是一个列表,您正在尝试哪个模块?此外,分类失败是Apigee Edge的404等效。看起来您可能只是使用了错误的服务器URL。@SantanuDey:现在我使用的是wcf.js和xml2js。所有这些都没有显示在您链接到的页面中。@ap andrew,您知道apigeetool尝试使用的API是否在本地不可用吗?Joakim,这些API在云和prem版本之间是一致的,所以是的,该API对您是可用的。这不是在尝试部署到apigee的云版本吗?我们在本地经营apigee edge。啊,是的。我看看能帮你找到什么。