需要 SOAP - Node JS 包失败并在 AWS Lambda 中出现导入错误

Posted

技术标签:

【中文标题】需要 SOAP - Node JS 包失败并在 AWS Lambda 中出现导入错误【英文标题】:Requiring SOAP - Node JS package fails with an import error in AWS Lambda 【发布时间】:2020-05-28 03:54:14 【问题描述】:

我的 Lambda 函数在 Node JS 10.x 上运行。尝试要求soap npm模块,但失败并出现以下错误。


  "errorType": "Runtime.ImportModuleError",
  "errorMessage": "Error: Cannot find module 'soap'",
  "trace": [
    "Runtime.ImportModuleError: Error: Cannot find module 'soap'",
    "    at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
    "    at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
    "    at Object.<anonymous> (/var/runtime/index.js:45:30)",
    "    at Module._compile (internal/modules/cjs/loader.js:778:30)",
    "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)",
    "    at Module.load (internal/modules/cjs/loader.js:653:32)",
    "    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)",
    "    at Function.Module._load (internal/modules/cjs/loader.js:585:3)",
    "    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)",
    "    at startup (internal/bootstrap/node.js:283:19)"
  ]

尝试查看多个线程但没有运气。如果该信息有帮助,文件名是 index.js,处理程序名称是 index.handler。

【问题讨论】:

【参考方案1】:

问题是由于文件夹结构和依赖项设置造成的。由于“soap”模块是 AWS SDK for javascript 库中的一个附加包。我使用 npm 在本地安装它并将其包含在部署包中。然后使用 AWS SDK 更新了 Lambda 函数。

参考这个 - https://docs.aws.amazon.com/lambda/latest/dg/nodejs-package.html#nodejs-package-dependencies

【讨论】:

以上是关于需要 SOAP - Node JS 包失败并在 AWS Lambda 中出现导入错误的主要内容,如果未能解决你的问题,请参考以下文章

用 yum 和 pear 安装 php-soap 都失败了

Node.js 使用 soap 模块请求 WebService 服务接口

Node.js:如何使用 SOAP XML Web 服务

在Node.js SOAP客户端中设置授权

使用SSL的Node中的SOAP请求

Heroku 构建失败 - 推送被拒绝,无法编译 node.js 应用程序,无法缩小包,许多错误