【发布时间】:2014-06-08 00:40:36
【问题描述】:
这个问题是关于使用未预安装的节点模块的节点目标服务器部署代理。我们使用 apigee edge 在本地运行。
节点目标服务器在本地运行良好。
问题很简单:如何将具有节点目标服务器的此类代理部署到本地 apigee edge?
尝试 1
我已经尝试像往常一样将代理打包成一个 zip 文件,并使用“导入新修订版”功能将其上传到网络浏览器中。它适用于更简单的代理(仅使用预安装的节点模块)。所有依赖项都列在 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 中。但是,在这种情况下,会出现导入失败的红色错误消息。当我在网络浏览器中重新加载 api 代理页面时,似乎包实际上已上传,并且显示加载进度的框超过 2000%。但是,加载完成后,无法部署它(显示标准的非特定错误消息)。
尝试 3
最后,我还使用http://apigee.com/docs/api-services/content/adding-nodejs-existing-api-proxy 的语法尝试了apigeetool(我确实将python 源代码中的url 更改为我们的本地服务器)。在运行该工具之前,使用“npm install”安装模块。结果是这个错误信息:
正在导入新应用程序 %PROXYNAME%
/v1/organizations/%ORGANIZATION%/apis?action=import&name=%PROXYNAME%
导入失败
/v1/organizations/%ORGANIZATION%/apis?action=import&name=%PROXYNAME%
状态为 404:{"fault":{"faultstring":"分类失败
主机 %IP%:%PORT%","detail":{"code":"CLASSIFICATION_FAILED"}}}
【问题讨论】:
-
您好 Joakim,Apigee Edge 根本不支持某些模块。这是一个列表apigee.com/docs/api-services/content/…你正在尝试哪个模块?
-
另外,CLASSIFICATION_FAILED 相当于 Apigee Edge 的 404。看来您可能只是为服务器设置了错误的 URL。
-
@SantanuDey:现在我使用 wcf.js 和 xml2js。这些都不会显示在您链接到的页面中。
-
@ap-andrew,您是否知道 apigeetool 尝试使用的 API 是否在本地不可用?
-
Joakim,云和本地版本之间的 API 是一致的,所以是的,您可以使用该 API。