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

8fq7wneg  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(166)

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

但是没有与主题相关的AuthorizationRules。2我在创建队列时做了同样的事情,并且它成功了。3你知道我可能遗漏了什么吗?

x9ybnkn6

x9ybnkn61#

对于授权规则,您需要使用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");
g0czyy6m

g0czyy6m2#

有两种不同的方法来完成所需的事情。

  1. Azure活动目录(ADD)-授权规则
    1.共享访问签名。共享访问签名
    有一个专业的文件,以一系列的步骤要遵循。
    Tutorial: Update inventory using Azure portal and topics/subscriptions

相关问题