node.js - 在 Serverless 中本地调用另一个 Lambda 的 lambda
问题描述
我正在使用无服务 + aws + node.js。
我有一个 lambda 调用另一个 lambda。我无法在本地运行该地段。我可以使用“无服务器调用本地 -f ...”在本地调用两个 lambda,但
调用者返回:
{“消息”:“未找到函数:arn:aws:lambda:eu-west-1:5701xxxxxxxxxx:function:the-right-function-name”}
就好像调用者函数在 AWS 上而不是在本地调用被调用者一样。
有没有办法留在当地,如果是,我可能会错过什么?
解决方案
你可以用这个插件来实现。AWS SDK for Lambda 的一项功能允许您覆盖 Lambda 服务的 API 端点。因此,您可以将其设置为 localhost。
const AWS = require('aws-sdk');
const endpoint = process.env.SERVERLESS_SIMULATE ?
process.env.SERVERLESS_SIMULATE_LAMBDA_ENDPOINT :
undefined
const lambda = new AWS.Lambda({ endpoint })
有关更多详细信息,请参阅插件的自述文件。还有一篇很好的文章。
推荐阅读
- swift - 如何在 Swift 中使用 MDCButtons 自定义轮廓按钮?
- php-parse-error - 如何解决php中意外}的错误
- reactjs - 即使在绑定事件处理程序之后,表单值也不会更新
- swift - Swift 泛型...检查与关联类型的协议的一致性
- perl - 如何发送 SOAP 响应?
- php - 就我而言,我想使用 if 语句制作多个菜单。如何使另一个 if 语句适用于另一个菜单?
- javascript - 为什么我调用它时我的对象不显示?
- jvm - 使用 VisualVm 分析堆转储时出现内存不足错误
- java - 将嵌套的哈希映射写入文件并在 Java 中删除元素时出现 ConcurrentModificationException 错误
- multithreading - 为什么加入协程范围内的所有作业后线程名称会更改?