无服务器框架 - Lambda 无需通过 API 网关即可调用另一个 lambda

Serverless Framework - Lambda to call another lambda without being through API Gateway

我正在构建以下体系结构:用户将字符串发布到 API 网关,后者又调用 Lambda 函数 - 使用该字符串作为输入。此 Lambda 函数将字符串写入 DynamoDB。之后,此 Lambda 函数调用另一个 Lambda 函数,将插入到 DynamoDB 中的项目的 ID 作为输入传递,并且 returns 200 状态代码。

要调用我使用的第二个 Lambda 函数:

payload = {"id":item['id']}
invoke_lambda = lambda_client.invoke(FunctionName="process",
                                     InvocationType="Event",
                                     Payload=json.dumps(payload))

我应该如何为第二个 Lambda 配置 serverless.yml 以使其不使用 API 网关?我不想使用 API 网关,因为它限制了 Lambda 在 30 秒内完成。

例如,要使用 API 网关,我会这样做:

functions:
  process:
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'

有什么替代方案?

只要您的第二个 Lambda 函数没有附加到 API 网关,它就不会受到任何限制。

因此您可以简单地不在第二个 Lambda 定义中包含 "events" 属性(这是一个可选参数)