在sam本地调用中递归调用lambda

问题描述

如何在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