【问题标题】:SQS queue integration architectureSQS 队列集成架构
【发布时间】:2021-07-18 16:15:53
【问题描述】:

我有一些系统,我想与 aws sqs queue 集成。 基本上,我想要实现的架构将是图像中的架构(高级)。 最后是问题:

  • 执行这些集成的最简单方法是什么?
  • 当我的消费者 1 要求 oAuth2 时,是否有任何 aws 服务可以解决这个问题,或者我需要使用 Lambda 或其他东西手动完成吗?
  • 生产者是否可以仅使用 token/api 密钥直接向 sqs 发送消息,还是需要使用中间服务来处理请求?

欢迎任何提示,伙计们。谢谢!

【问题讨论】:

    标签: node.js aws-lambda oauth-2.0 aws-api-gateway amazon-sqs


    【解决方案1】:

    执行这些集成的最简单方法是什么?

    最简单的方法是在生产者的应用程序代码中使用 aws sdk,然后他们直接将消息发布到队列。但是,您需要获得许可才能这样做。如果您的生产者应用程序已经承担了 IAM 角色,您可以将此权限添加到该角色。

    当我的消费者 1 要求 oAuth2 时,是否有任何 aws 服务可以解决这个问题,或者我需要使用 Lambda 或其他东西手动完成?

    您需要在 Lambda 中定义事件源映射以检查新消息(或轮询的应用程序)。 然后,您的 Lambda(或应用程序)需要通过 第 3 方应用程序正在使用的身份提供程序/服务对自己进行身份验证,以获取不记名令牌并将此不记名令牌传递给消费者 API 请求。

    生产者是否可以仅使用 token/api 密钥直接向 sqs 发送消息,还是我需要使用中间服务来处理请求?

    如果我正确理解了你的问题,我认为这不是一个好主意

    1. 您的生产者将通过身份提供者/服务进行身份验证,并将其令牌作为 SQS 的消息传递。这意味着任何对该 SQS 具有读取权限的人都可以在队列中看到您的令牌。 这可能是一个安全问题,例如,仅对 SQS 具有读取权限的人可以获取此令牌,模拟生产者应用程序并将数据推送到消费者应用程序,即使它们不是授权这样做。
    2. 当然,您必须考虑令牌的 ttl 以及如果消息在 SQS 中停留的时间过长可能会过期。并从消息中提取令牌并发出消费者可以进行身份​​验证的有效请求。

    更好地将其卸载到从 SQS 中读取消息的应用程序/lambda 函数可以做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 2018-04-01
      • 2017-04-12
      • 2016-01-18
      • 2019-04-11
      • 2011-09-15
      相关资源
      最近更新 更多