【发布时间】:2020-05-13 08:28:13
【问题描述】:
我需要以维护 SNS 标记的方式配置 MassTransit 库。
我可以看到为创建的SQS Queues 配置Tags 的位置 - 并且按预期工作。但是,我需要为MassTransit 创建的SNS Topics 做类似的事情。
到目前为止,我已经尝试了几件事,但遗憾的是,它们都不允许我在 SNS 资源上创建标签。
public IBusControl GetServiceBus()
{
var serviceBus = Bus.Factory.CreateUsingAmazonSqs(sbc =>
{
sbc.Host("AmazonRegion", h =>
{
h.Config(
new AmazonSimpleNotificationServiceConfig
{
ServiceURL = _configService.AmazonSnsServiceUrl
//Tags doesn't seems the be available here
});
h.Config(new AmazonSQSConfig
{
ServiceURL = _configService.AmazonSqsServiceUrl
});
h.AccessKey("AccessKey");
h.SecretKey("SecretKey");
});
sbc.ReceiveEndpoint("queueName", e =>
{
e.Consumer<IConsumer<Message>>(_container);
e.Consumer<IConsumer<Fault<Message>>>(_container);
e.QueueTags.Add("TestTag", "DEV");
//Here I can define only Tags for the queue, not for the Topic though
});
});
serviceBus.ConnectSendAuditObservers(_messageAuditStore);
serviceBus.ConnectConsumeAuditObserver(_messageAuditStore);
return serviceBus;
}
我也尝试过这样的手动订阅:
e.Subscribe<T>(cfg =>
{
cfg.TopicTags.Add("TestTag", "test");
});
但这也没有用。
我知道有一个选项可以使用MassTransit 订阅预先创建的主题,但我觉得这是一个限制,我想使用MassTransit 的灵活性来管理类型。
我在这里缺少什么吗? 谢谢。
【问题讨论】:
标签: c# amazon-sqs amazon-sns masstransit