【问题标题】:invoking aws lambda functions locally with node aws sdk使用节点 aws sdk 在本地调用 aws lambda 函数
【发布时间】: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 函数中调用一个。

提前致谢。

【问题讨论】:

标签: node.js amazon-web-services aws-lambda aws-sam aws-sam-cli


【解决方案1】:

sam local start-lambda -t my-func.yaml --host 0.0.0.0 运行我的 lambda 函数并修改 lambda 配置以使用 dockers ip 172.17.0.1 作为端点工作 const client = new Lambda({region: "eu-central-1", apiVersion: '2015-03-31', endpoint: 'http://172.17.0.1:3001' });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多