【问题标题】:How to receive a notification from AWS SQS when a new message is added to the queue将新消息添加到队列时如何从 AWS SQS 接收通知
【发布时间】:2019-02-02 05:23:03
【问题描述】:

我尝试从 AWS 设置 SQS 队列,我的目标是

  1. 接收来自基本上来自亚马逊市场的 sns 主题的通知。
  2. 当收到新消息时,我需要通知我的应用程序收到一条新消息以及消息,或者至少通知有新消息。

有没有办法做到这一点?从文档中我可以看到我们可以使用 sdk 接收消息,并且我正在使用 Node js、Express、link to amazon sdk-javaScript for sqs。我应该继续按时间间隔检查sqs吗?我相信应该有更好的方法。

【问题讨论】:

  • 您可以简单地添加一个 SQS 事件触发器,该触发器将触发一个 Lambda 函数,然后在 Lambda 函数中添加您的代码。
  • 我可以将此 SQS 事件触发器分配给仅 lambda 函数,还是可以用于调用我可以提供的 url。这样我就可以在我的应用程序中处理它。
  • 不直接afaik。您的 Lambda 函数可以从事件负载中获取数据并 POST/GET 远程 HTTP(S) 端点。或者,您的 Lambda 函数可以发布到 SNS 主题,您可以将 HTTP(S) 端点订阅到该 SNS 主题。
  • 是的,谢谢。
  • 为什么不让 SNS 直接通知您的应用程序?由于您使用的是 NodeJS,我假设它是一个网络应用程序。

标签: node.js amazon-web-services express amazon-sqs


【解决方案1】:

一种选择是设置连接到该 SQS 队列的 Elastic Beanstalk 工作器类型环境。当您创建工作者类型的 beanstalk 环境(并且您可以在那里选择 Node)时,您可以指定它使用哪个队列以及 SQS 将新消息发布到的 HTTP 路径(一个 expressjs POST 处理程序或其他东西)。它使使用队列更容易一些,您可以返回 200 来销毁消息,或者从该 POST 中抛出以将其放回队列中以重试或死信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 2013-10-17
    • 2016-12-07
    • 2017-05-29
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多