【问题标题】:Calling lambda recursively in sam local invoke在 sam local invoke 中递归调用 lambda
【发布时间】:2020-08-17 01:45:43
【问题描述】:

如何在本地环境中递归调用 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。 将结果返回给调用者并不重要,因此异步调用就可以了。

【问题讨论】:

  • 递归调用 lambda 函数有什么意义?你能描述一下你的用例吗?你的执行结果是什么?
  • 这样做不会造成无限循环吗?
  • 其实lambda.invoke处于警戒状态。为简洁起见,我省略了

标签: aws-lambda aws-sam aws-sam-cli


【解决方案1】:

如果您需要调用其他函数,我建议您使用localstack,它可以更好地支持在本地使用 lambda 函数以及它们之间的相互调用。

sam local 如果您只使用函数本身就可以,但是一旦您与 s3、dynamodb、sqs、lambda 集成后,最好使用localstack

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 2020-02-06
    • 2022-10-07
    • 1970-01-01
    • 2022-01-12
    • 2018-06-27
    • 2020-04-07
    • 2020-03-22
    • 2022-12-08
    相关资源
    最近更新 更多