MassTransing SQS/SNS - 如何在所有主题上启用静态加密

MassTransing SQS/SNS - how to enable encryption at rest on all topics

我知道要为 SNS 主题启用静态加密,我需要添加像这样的主题属性

cfg.Publish<SomeEvent>(p =>
{
    p.TopicAttributes.Add(QueueAttributeName.KmsMasterKeyId, "<key arn>");
});

但我遇到的问题是,我们使用 UsingAmazonSQS 对 aspnetcore 使用非常简单的配置,并且 cfg.ConfigureEndpoints(context) 会自动执行所有这些配置,因此不会调用 cfg.Publish。这非常重要,因为我们有很多消息要配置。我相信可以通过注册 IConfigureReceiveEndpoint 的自定义实现来实现队列属性的相同功能,但我找不到主题的等效项。

如何继续使用自动方法并为所有主题添加此加密主题属性?

目前还没有办法将主题属性应用于所有主题,但这并不是一个不合理的添加请求。当然,有人可以将其构建为拉取请求,添加到 Amazon SQS 的一般发布拓扑中。

更新

added the ability 指定应该应用于所有主题的根 PublishTopology 上的属性。

在代码中使用(来自下面的评论):

configure.UsingAmazonSqs((context, cfg) => 
{
   cfg.PublishTopology.TopicAttributes
       .Add(QueueAttributeName.KmsMasterKeyId, encryptionKeyArn); 

   cfg.ConfigureEndpoints(context);
});