java - 使用 azure-messaging-servicebus 创建具有授权规则的主题

标签 java azure groovy azureservicebus

我正在尝试使用通过命名空间的根管理访问 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/

相关文章:

java - 用于编辑 TextView 大小、样式的按钮

java - Hibernate 进行不必要的子查询来获取数据

Azure Key Vault 事件 - 是否可以订阅事件网格主题(不是系统事件网格主题)?

java - 如何在 Android 中使用 Microsoft Translator API

azure - 尝试从 Enterprise Library 6.0 记录到 Windows Azure 诊断日志

mongodb - 常规查询两个日期之间的MongoDB

jenkins - 我可以使用 step() 从任何插件创建任何构建步骤吗?

java - 如何在浏览器中运行java gui

java - Android NDK - 如何从点击获取坐标并将它们显示在 TextView 上?

Jenkins : Clean workspaces with Groovy