首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨AWS帐户在2个SQS队列中复制消息的最佳方法

跨AWS帐户在2个SQS队列中复制消息的最佳方法
EN

Stack Overflow用户
提问于 2018-06-30 09:20:43
回答 1查看 8.3K关注 0票数 7

通过AWS帐户将消息从一个SQS队列复制到另一个SQS队列的最佳方法是什么?搜索后,我将授予IAM用户(在目标帐户中)完全读和写访问权限的策略附加到源队列。然后,我向源队列附加了一个权限,使每个人都可以在队列上进行发送和接收消息访问。

我的错误越来越少-

线程"main“com.amazonaws.AmazonServiceException中的异常:请求中包含的安全令牌无效。(服务: AmazonSQS;状态代码: 403

可能IAM用户凭据有问题,但是,我刷新了凭据,但我仍然收到错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 11:16:11

权限是次要问题。主要问题是如何“跨AWS帐户将消息从一个SQS队列复制到另一个SQS队列”。

Amazon最近引入了当消息到达时触发AWS函数的功能。您可以创建一个Lambda函数,然后在另一个队列中创建消息(该队列可能位于另一个帐户、区域等中)。但是,原始消息一旦被处理就会被删除,所以它并不是真正的“复制”消息。

更好的方法是:

  • 没有向Amazon消息发送消息,而是将其发送到Amazon主题
  • 然后,您可以将Amazon队列订阅到主题-是的,您可以订阅多个队列到主题。
  • 这样,每当消息被发送到SNS主题时,两个队列都会接收到它。

请参阅:将Amazon消息发送到另一个帐户中的Amazon队列-- Amazon简单通知服务

有一个AWS re的精彩视频:发明展示了如何同时使用SQS和SNS。

更新:如何在队列中复制现有消息

“队列中存在需要复制到新帐户中的新队列的消息。”

如果是这样,那你就有麻烦了!

队列的思想是检索、处理和删除消息。显然,这是一个“复制”消息的坏主意,因为你不想删除它们。

您可以尝试增加队列的不可见超时,然后检索队列中的所有消息。它们将被放置在飞行中,这意味着它们暂时不可见,但如果在不可见超时结束时未删除,则会重新出现在队列中。因此,应用程序可以读取每条消息(但不能删除它们),并在第二个队列中创建新消息。然后,每个原始消息将重新出现在原始队列中。

或者,您可以编写一个应用程序来读取每条消息并将其发送到两个队列中,同时删除源消息。然后,将其中一个新队列视为原始队列的替换。

底线:没有预先提供的方法.你得自己去做。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51113549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档