message-queue - AWS SQS 从 AWS 外部接收消息

标签 message-queue messaging amazon-sqs

我的公司有一个消息系统,它以 JSON 格式发送实时消息,它不是在 AWS 上构建的,也不会与 AWS 建立任何 VPN 连接。

我们的团队正在尝试使用 AWS SQS 接收这些消息,然后让 DynamoDB 将 JSON 消息处理到 TSV,然后加载到 RDS。

但是,根据常见问题解答,SQS 只能接收来自 AWS 内部的消息。
https://aws.amazon.com/sqs/faqs/

Q: Who can perform operations on a message queue?

Only an AWS account owner (or an AWS account that the account owner has delegated rights to can perform operations on an Amazon SQS message queue.



为了使用 SQS,我能想到的一种方法是创建一个面向公众的 EC2 实例,它接收消息并传递给 SQS。

我的问题是:
  • 我的想法正确吗?
  • 如果正确,您能否分享有关如何在此 EC2 实例上构建任何应用程序以实现该功能的任何详细信息(我没有应用程序开发经验,非常感谢您的见解!)
  • AWS 中是否有任何更简单/更好的选项可以实现在我的用例中接收消息的目标?
  • 最佳答案

    1. is my idea correct?


    不,不是。

    您误解了常见问题解答中的(诚然有些不清楚)信息。

    SQS 可从 Internet 上的任何位置访问和使用。它唯一暴露的接口(interface)是 HTTP(S)。事实上,从 EC2 内部,除非 EC2 实例实际上具有对 Internet 的出站访问权限,否则无法访问 SQS。

    文档中的重点不是您需要“在”AWS 中才能使用队列,而是您需要拥有一组经过授权的 AWS 凭证才能使用队列。¹

    如果您有 AWS 账户,则您有凭证,并且可以使用 SQS。不要求您从“内部”AWS 访问队列。

    选择endpoint离你的服务器最近(为了最低延迟),你应该发现它是开放的,可以从任何地方访问。

    ¹队列可以配置为在创建后允许匿名访问。 (不要这样做,我只是说有可能。)FAQ 的这一部分似乎是指操作的子集,例如创建队列。

    关于message-queue - AWS SQS 从 AWS 外部接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638595/

    相关文章:

    java - qpid如何配置接收器

    amazon-web-services - 从 SNS/SQS Auto Scaling 消息中提取 EC2InstanceId

    message-queue - MassTransit:契约(Contract)类的模式和实践

    c# - 队列的并行处理

    java - 任何可用于将消息从 COBOL 发送到 Java 的开源消息队列?

    apache-kafka - Apache Camel 与 Apache Kafka

    redis - 将数据从 Redis 从站传播到 SQL 数据库

    c# - 代码运行时的 ASP.NET 应用程序日志/进度条

    java - 为 AWS 用户处理 java.net.UnknownHostException 的最佳方法是什么?

    node.js - 将消息从一个 AWS 队列传输到另一个