0

我正在学习节点和无服务器架构。为了在本地测试我的 lambda 函数,我目前正在使用lambda-local,它到目前为止运行良好。

现在我有一个调用另一个 lambda 函数的函数,如下所示:

    let lambda = new integration.myLambda.AWS.Lambda();
    let params = {
        FunctionName: 'my-other-function',
        InvocationType: 'RequestResponse',
        LogType: 'None',
        Payload: JSON.stringify(myEvent)
    };

    return new Promise((resolve, reject) => {

        lambda.invoke(params, function (error, data) {
            if (error) {
                console.log('error on invoke', error);
                reject({
                    statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
                    message: error
                });

            } else {
                console.log('invoke success', data);
                resolve(JSON.parse(data.Payload));
            }
        });

    });

这段代码在本地无法运行,但一旦部署在 aws 上就可以正常运行。但是部署到 aws 大约需要 2 分钟。所以我想知道是否有办法让这段代码在本地运行。

有什么建议么?

谢谢!

4

2 回答 2

1

所以我个人使用无服务器作为我首选的本地框架,这里还有一个来自 atlassian 的名为 localstack 的非常有前途的项目——我实际上还没有尝试过第二个!希望这可以帮助。

于 2017-05-01T12:30:16.460 回答
0

所以我发现我需要做的就是导出:accessKeyId 和 secretAccessKey。

只是为了测试把它放在你调用调用上方的代码中。然后确保将它们放在安全的地方。

我正在出口它们

export ACCESS_KEY_ID=yourkey

export SECRET_ACCESS_KEY=yoursecretkey

现在我正在使用 docker,所以我将它们放在一个配置文件中。

希望这可以帮助

于 2017-05-24T07:18:42.677 回答