【问题标题】:Merging SQS messages合并 SQS 消息
【发布时间】:2017-05-20 07:37:56
【问题描述】:

是否有一种简单的方法可以将来自多个队列的所有消息重定向到一个“包罗万象”队列,并通过将源队列名称添加为名为“source”的属性来更改消息?

我需要更多队列(而不是单个队列)的原因是:我想使用 IAM 策略来管理用户对单个源的访问。

编辑:

我需要构建的东西很简单:

  1. 用户表示存储在 S3 中的文件应该由我们的软件处理

    • 对于此通知,他们可以使用任何 AWS 服务,可以是 Lambda 函数、API、SQS、SNS。什么都行。
    • 作为限制,我不能限制用户上传文件或强加命名约定。
    • 运行我们软件的 IAM 用户可以访问用户的内容
  2. 通知后,进程会更新文件内容并将结果移动到指定位置

    • 目标位置取决于内容,也可以由用户提供。任何方法都会奏效。

问题是我需要确保用户将数据发送到他们被允许的位置。我想只使用 IAM 策略并避免使用“权限”数据库。

我的想法是为每个目标位置设置一个 SQS,并授予用户访问相应 SQS 列表的权限。如果他们在他们有权访问的队列上发布请求,那么主进程可以安全地完成请求。 缺点是主进程必须监听许多 SQS,并且每当我们更改目标位置的配置时,我们都需要更新它。

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您可以提供有关您的目标的更多信息,我们可能会建议一种替代方法。随时编辑您的问题以添加更多详细信息。
  • 谢谢;我添加了更多细节。
  • 每次您收到来自 SQS 的消息时,它都有一个SenderId attribute,如果您问的话,您可以收到它...它通过 IAM 用户或角色识别消息的发送者。这不能用于确定每个请求的有效性吗?
  • 是的,这正是我想要的。谢谢!

标签: amazon-web-services amazon-sqs amazon-iam


【解决方案1】:

Amazon Simple Queue Service (SQS) 本身非常简单(因此得名)。您可以创建队列、向队列发送消息、从队列中检索消息、删除队列等等。

您想做的任何其他事情都需要由您自己的应用程序来完成,该应用程序向队列发送/接收消息。

不能指示 SQS 重定向消息或修改消息内容。

如果您希望有消息的多个消费者,通常的做法是首先将消息发送到 Amazon Simple Notification Service (SNS),然后它可以将消息转发到多个队列。然后,用户可以从自己的队列中检索消息,而不会影响其他用户的队列。

【讨论】:

  • 反过来:我想要多个生产者和一个消费者。
猜你喜欢
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 2018-03-05
  • 2018-02-20
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
相关资源
最近更新 更多