【问题标题】:Trigger Lambda Manually to read from SQS手动触发 Lambda 以读取 SQS
【发布时间】:2020-09-29 21:17:42
【问题描述】:

是否可以创建一个手动触发以从 SQS 读取的 lambda。

我有一个不断接收消息的 SQS 队列,我想在需要时处理它们(不是连续同步处理)。

我可以有类似启动/停止 lambda 的东西,我在其中启动 lambda,它从 SQS 主动消耗,当我停止时它停止消耗

【问题讨论】:

  • 您能更好地描述您的架构吗?这听起来不像您使用 SQS 来达到预期目的。是的,您可以手动触发它,但我不明白您为什么要使用 SQS 和 Lambda。

标签: amazon-web-services aws-lambda triggers amazon-sqs


【解决方案1】:

通常,AWS Lambda 函数配置为从 Amazon SQS 队列“触发”。每当有消息到达时,就会触发一个 Lambda 函数。

但是,您可以编写一个 AWS Lambda 函数来调用队列本身的 ReceiveMessages(),而不是配置触发器。然后,Lambda 函数将负责在处理完消息后调用DeleteMessage()

您可以随时使用Invoke() 命令调用 Lambda 函数。

您需要做出的唯一决定是 Lambda 函数是否应该处理:

  • 每次调用一个消息
  • 每次调用一批消息(最多 10 条),
  • 运行一个循环,不断从队列中检索消息,直到队列为空或 Lambda 函数超时(这可能会使消息部分处理,因此这不是一个好主意)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2019-03-26
    • 2020-07-28
    • 2021-03-28
    • 2021-11-28
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多