我正在尝试使用通过命名空间的根管理访问 key 连接的 ServiceBusAdministrationClient 创建主题 (com.azure:azure-messaging-servicebus:7.8.0)
def createOptions = new CreateTopicOptions()
def authRule = new SharedAccessAuthorizationRule(authRuleName, [AccessRights.SEND, AccessRights.LISTEN])
createOptions.authorizationRules.add(authRule)
def topicProps = administrationClient.createTopic(topicName, createOptions)
但没有与该主题关联的授权规则。 我在创建队列时做了同样的事情并且它有效。 我可能缺少什么想法吗?
最佳答案
授权规则需要使用Azure Resource Management library 以下是创建授权规则的示例
final AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
final TokenCredential credential =
new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
.build();
var azureResourceManager =
AzureResourceManager.configure()
.withLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)
.authenticate(credential, profile)
.withSubscription("subscription");
ServiceBusManager manager = azureResourceManager.serviceBusNamespaces().manager();
SBAuthorizationRuleInner authorizationRule =
manager
.serviceClient()
.getTopics()
.createOrUpdateAuthorizationRule(
"resourceGroupName", "namespaceName", "topicName", "authorizationRuleName");
关于java - 使用 azure-messaging-servicebus 创建具有授权规则的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72442325/