新的 SQS 订阅具有导致问题的“订阅主体”

Mr.*_*ock 3 nservicebus amazon-sqs amazon-sns

我正在开发一个使用 NServicebus 将消息发布到 AWS SQS 队列的项目。

NServicebus 具有一项功能,可以在您运行应用程序时为您构建队列、主题和订阅。我的大多数队列/主题/订阅都是通过这种方式创建的。

有一个队列不是以这种方式创建的,因此我之前手动创建了它以及与之配套的主题和订阅。

我正在扩展此现有设置以接受新的消息类型。因此,NServicebus 添加了新的主题和订阅来与现有队列配合使用。

当我要添加手动主题和订阅以使用手动队列时,我按照以前的方式进行了操作。但是,现在消息没有进入队列。

我开始寻找这次我可能做错了什么/不同的地方。我发现只有一处不同。现在,当查看订阅的详细信息时,我在新的订阅中看到“订阅主体”,但在旧的订阅中却看不到。

新的:

新订阅详情

老的:

旧订阅详细信息

深入研究这一点,我发现新创建的 NServicebus 订阅和手动创建的订阅主体是不同的。我猜测这是消息未到达队列的原因。

但为什么几个月前还没有发生这种情况,现在却发生了呢?SQS 是否改变了订阅的运作方式?如果是这样,有没有办法像以前一样?也许是某个地方的设置?

Mr.*_*ock 5

在联系 AWS 支持后,他们提到:

关于“SubscriptionPrincipal”,这显示了创建订阅时正在使用的 IAM 角色。这是一个新属性,因此只会针对新创建的订阅显示。我认为这不会造成任何问题。

然后,在手动检查并重新创建 SNS 主题和订阅后,消息进入队列就没有问题了。我们一致认为,在第一次创建它们时一定是一个被忽视的错误。新的订阅主体属性是一个转移注意力的东西。