1
votes

I'd like to group my related queues and topics and using slashes seems to be natural. It's an URI after all so https://mynamespace.servicebus.windows.net/{entity}/{command|event} pattern would be nice to follow. But Azure portal disallows slashes when creating an entity:

Service Bus entities cannot be created with '/' due to restrictions with ARM. However, the backend will replace all instances of the '~' character with '/' once the ARM layer has been circumvented, allowing you to create new entities with '/' by creating them here with '~'.

However, you can perfectly create "slashed" names via the management API or Service Bus Explorer and the portal nicely displays them although with a warning:

ARM does not support resource names containing the '/' character. Service Bus converts these slashes to '~' when interfacing with ARM, but retains the slashes in its backend. Your entities with slashes in their names may appear with tildas instead in certain blades of the Portal, but Service Bus supports and will continue to support these resources with their original format with slashes.

I'm not sure I understand it. What are possible future consequences? Is it a good idea to ignore the warning and use slashes or just go with a neutral separator like a dot?

1
if the answer is not addressing your question, provide a comment.Sean Feldman

1 Answers

0
votes

The issue is with the ARM, or to be more accurate, how it expects the URI for a resource to be structured. It expects pairs with slash used as a delimiter. See this blog post from the ASB team that explains the issue with ARM.

ServiceBus Explorer on the other hand uses NamespaceManager which doesn't have the same expectation as ARM has.

Bottom line: ~ is needed for ARM. To have your path segmented, it's a /. Based on the tooling you're using, make the required adjustment.