我正在使用 SQS Transport 开发 NServiceBus 8.x 端点。我想控制主题名称以遵循我们内部开发的命名约定。使用自定义主题映射的文档,我想出了这个:
var credentials = new BasicAWSCredentials(“myKey”, “mySecret”);
var sqsClient = new AmazonSQSClient(credentials, RegionEndpoint.USEast1);
var snsClient = new AmazonSimpleNotificationServiceClient(credentials, RegionEndpoint.USEast1);
var sqsTransport = new SqsTransport(sqsClient, snsClient);
sqsTransport.MapEvent(“myCustomTopicName”);
endpoint.UseTransport(sqsTransport);
运行后,我可以看到在 SNS 中创建的两个主题 - 一个名为 EndpointName-myCustomTopicName,另一个名为 myCustomTopicName。
如果我在上面做错了什么,我很难发现它。
我也知道 SqsTransport 上的队列/主题名称前缀和生成器属性,但我更喜欢使用 MapEvent,因为我相信它更清晰。我也找不到有关 QueueNameGenerator 和 TopicNameGenerator 函数的参数的文档。如果有人可以澄清这一点,那将非常有帮助。我已经通过在调试器中运行并检查值部分地解决了这个问题,但是对于我所拥有的事件,TopicNameGenerator 的第二个值始终为空,所以我无法判断它的用途。