我正在学习节点和无服务器架构。 为了在本地测试我的lambda函数,我目前正在使用lambda-local,到目前为止一直工作正常。
现在我有一个invoke另一个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分钟。所以我想知道是否有办法让这些代码在本地运行。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
所以我个人使用serverless作为本地的首选框架,还有一个非常有前途的atlassian项目名为localstack here - 我还没有尝试过第二个!希望这会有所帮助。
答案 1 :(得分:0)
所以我发现我需要做的就是导出: accessKeyId和secretAccessKey。
只是为了测试将它放在你的调用调用之上的代码中。然后确保将它们放置在安全的地方。
我正在导出它们
export ACCESS_KEY_ID=yourkey
export SECRET_ACCESS_KEY=yoursecretkey
现在我正在使用docker,所以我将它们放在配置文件中。
希望这有帮助