我可以在不使用任何lambda的情况下在sqs上收到消息后触发事件吗?

时间:2019-01-22 08:48:54

标签: amazon-web-services amazon-ec2 aws-lambda amazon-sqs amazon-sns

我尝试进行一些研发,但是我找不到任何有用的东西,唯一发现的就是lambda函数是唯一的方法。我想编写一个简单的应用程序,该程序在Simple Queue Service收到任何消息时执行,但是直到现在我都找不到找到这种方法的方法,因为我不想使用lambda。例如,如果我在简单队列服务上收到一些消息,并且在接收每条消息时我可以触发一个不是lambda而是任何HTTP请求的事件。

2 个答案:

答案 0 :(得分:1)

我认为您的选择是:

  • 使用lambda(您说过不想使用,但它可能是最好的解决方案)
  • 使用您自己的在ec2或什至前提下运行的应用程序消耗消息并调用http端点
  • 使用SNS代替SQS进行邮件传递-SNS支持http端点。
  

您可以使用Amazon SNS将通知消息发送到一个或多个   HTTP或HTTPS端点。当您为端点订阅主题时,   您可以将通知发布到主题,Amazon SNS发送   HTTP POST请求将通知的内容传递到   订阅的端点。订阅端点时,选择   Amazon SNS是使用HTTP还是HTTPS将POST请求发送到   端点。

从这里:https://docs.aws.amazon.com/sns/latest/dg/sns-http-https-endpoint-as-subscriber.html

答案 1 :(得分:0)

您的问题的简短答案是“否”(直到今天) 让我告诉你我所面对的sineros。通常,队列触发lambda被广泛使用,为此,您必须确保适当的并发性(最少5个),并且还要确保数据库I / O(如果您正在执行)和任何DB调用。但是我有一种情况,因为我们的数据库是本地“ ORACLE”,所以不能使用“ lambda作为触发服务”,因此选择是。

  1. 推送到“ SNS”并使http“永远适用”(到我们具有通过NLB路由的自定义Kubernetes的容器)。还请确保推送一批消息,因为这可能会产生更多http噪音。

2。轮询队列并执行操作。

  1. SQS触发=> Lambda和lambda调用状态机(步骤功能)