【发布时间】:2022-01-17 04:13:13
【问题描述】:
我是相当新的在本地使用 sam 运行 lambda 函数。 我有这个项目设置,其中“节点快速应用程序”充当互联网(api 网关)和其他 lambda 函数之间的中间件。
根据资源路径调用另一个 lambda 函数。
调用代码块:
const { Lambda } = require ("@aws-sdk/client-lambda");
const client = new Lambda({region: "eu-central-1"});
const input = {
FunctionName: "My-func",
InvocationType: "RequestResponse",
Payload: JSON.stringify(payload)
};
client.invoke(input);
My-func 是一个基于 java 的 lambda 函数。
此设置在 lambda 上运行良好,但在本地运行时,我无法修复一些问题。按照以下设置。
我正在使用 sam 来运行我的 lambda 函数。
以sam local start-lambda -t my-func.yaml 运行我的 java 函数 (My-func),它在 127.0.0.1:3001 上运行 lambda。
现在我正在尝试从我的 nodejs 应用程序中调用此函数,我从 aws sdk 存储库中读取了一些 github 问题,以在 lambda 客户端初始化配置中指定端点,例如
const client = new Lambda({apiVersion: '2015-03-31', endpoint: 'http://127.0.0.1:3001/' });
并使用与上面相同的代码来调用该函数。但这不起作用失败并出现错误:
'$metadata': { attempts: 1, totalRetryDelay: 0 } (net.js:1144:16) { ERROR Error: connect ECONNREFUSED 127.0.0.1:3001
请帮助我弄清楚如何从本地运行的另一个 lambda 函数中调用一个。
提前致谢。
【问题讨论】:
-
@jarmod,很酷。但我需要用主机 0.0.0.0 启动 lambda。感谢您的参考。
标签: node.js amazon-web-services aws-lambda aws-sam aws-sam-cli