首页 > 解决方案 > 在 Serverless 中本地调用另一个 Lambda 的 lambda

问题描述

我正在使用无服务 + aws + node.js。

我有一个 lambda 调用另一个 lambda。我无法在本地运行该地段。我可以使用“无服务器调用本地 -f ...”在本地调用两个 lambda,但
调用者返回:

{“消息”:“未找到函数:arn:aws:lambda:eu-west-1:5701xxxxxxxxxx:function:the-right-function-name”}

就好像调用者函数在 AWS 上而不是在本地调用被调用者一样。

有没有办法留在当地,如果是,我可能会错过什么?

标签: node.jslambdalocalserverless

解决方案


你可以用这个插件来实现。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 })

有关更多详细信息,请参阅插件的自述文件。还有一篇很好的文章


推荐阅读