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);
});
我知道要为 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);
});