【问题标题】:RabbitMq Consumer on AWS LambdaAWS Lambda 上的 RabbitMq 消费者
【发布时间】:2021-07-15 03:10:12
【问题描述】:

据我所知,Lambda 用于监听事件并在响应这些事件时运行一段代码。

事件需要是 AWS 服务或 HTTP 端点。 如果我有一个 RabbitMq 服务在 EC2 服务器 上运行(不使用 SQS),是否可以在 Lambda 上部署一个消费者

如果可能,这是正确的做法吗?

另外,由于 lambda 是按计算时间计费的,所以我不应该在队列空闲时计费,对吧?

【问题讨论】:

  • 我不知道 RabbitMQ 有什么方法可以触发 AWS Lambda 调用。您必须安排您的 Lambda 函数每分钟左右运行一次,并检查队列中的消息。你问题中的最后一句话也没有意义。
  • 这可能不是一般的事情,但我猜你可以使用 SNS 和 Lambda 的组合docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html
  • @MarkB 对不起。更新最后一个问题。

标签: amazon-web-services rabbitmq aws-lambda


【解决方案1】:

您可能可以将它安装在与 rabbitMQ 相同的服务器上,并使其触发 lambdas。虽然我自己没试过 https://github.com/AirHelp/rabbit-amazon-forwarder

据我了解,lambda 按运行时间计费,您根据内存量(每 GB/秒)付费。因此,让 lambda 一直等待可能会非常昂贵且难以管理,因为它会超时。如果您已经有一个带有 RabbitMQ 的服务器,请使用它来消耗队列并调用 lambda。

【讨论】:

    【解决方案2】:

    您现在可以将 Amazon MQ for RabbitMQ 配置为 AWS Lambda 的事件源。 查看 AWS 博客。 https://aws.amazon.com/blogs/compute/using-amazon-mq-for-rabbitmq-as-an-event-source-for-lambda/

    【讨论】:

    • 您将如何处理动态生成队列作为 lambda 事件源的可能性?在我的设置中,队列是在新用户加入时动态生成的,因此我无法提前指定队列名称。你知道如何处理吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多