问题描述
如何在sam本地环境中递归调用lambda?
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
exports.foo = async(event,context) => {
// .......
lambda.invoke({ FuncitonName: context.functionName,InvocationType: 'Event',Payload: {/* .... */}})
}
这显然行不通。
编辑
我的用例是拆分数据以防止超时。
Payload
包含页码,此lambda从具有页码的API中获取数据,并将其放入DynamoDB。
将结果返回给调用者并不重要,因此异步调用就可以了。
解决方法
如果您需要调用其他函数,我建议您使用localstack
,它可以更好地支持在本地使用lambda函数以及它们之间的相互调用。
sam local
是很好的选择,如果您仅使用函数本身,但是一旦与s3,dynamodb,sms,lambda集成,最好使用localstack