MassTransit - AWS SQS/SNS - 向 SNS 添加标签
MassTransit - AWS SQS/SNS - add tags to SNS
我需要以维护 SNS 标签的方式配置 MassTransit
库。
我可以看到为创建的 SQS Queues
配置 Tags
的位置 - 并且按预期工作。但是,我需要为 MassTransit
创建的 SNS Topics
做类似的事情。
到目前为止,我尝试了一些方法,不幸的是,其中 none 允许我在 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
的灵活性来管理类型。
这里有我遗漏的东西吗?
谢谢。
要配置主题tags/attributes,您需要配置主题拓扑,这是通过配置发布拓扑来完成的。
例如,要为 Message
类型添加标签,您可以指定:
configurator.Publish<Message>(p =>
{
p.TopicTags.Add("hello", "world");
});
我需要以维护 SNS 标签的方式配置 MassTransit
库。
我可以看到为创建的 SQS Queues
配置 Tags
的位置 - 并且按预期工作。但是,我需要为 MassTransit
创建的 SNS Topics
做类似的事情。
到目前为止,我尝试了一些方法,不幸的是,其中 none 允许我在 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
的灵活性来管理类型。
这里有我遗漏的东西吗? 谢谢。
要配置主题tags/attributes,您需要配置主题拓扑,这是通过配置发布拓扑来完成的。
例如,要为 Message
类型添加标签,您可以指定:
configurator.Publish<Message>(p =>
{
p.TopicTags.Add("hello", "world");
});