您是否可以向一个共享访问策略添加更多的Event Hub规则?

问题描述 投票:0回答:1

创建事件中心后,我正在应用规则。例如,我是否可以将“发送”和“监听”规则应用于同一共享访问策略?

我正在尝试使用的代码似乎“覆盖”了之前的规则。我应该有更好的方法吗?

await eventHub.Update()
   .WithNewSendRule(sendListenRuleNames)
   .WithNewListenRule(sendListenRuleNames)
   .ApplyAsync();

上面的代码最终只会将侦听规则应用于共享访问策略。

UPDATE

尝试上述方法后,我尝试使用Jay的注释来实现:

List<AccessRights> accessRights = new List<AccessRights>();
accessRights.Add(AccessRights.Listen);
accessRights.Add(AccessRights.Manage);

foreach (var listenManageRuleNames in list)
{
   await eventHub.Manager
      .EventHubAuthorizationRules
      .Inner
.CreateOrUpdateAuthorizationRuleWithHttpMessagesAsync(eventHubResource.ResourceGroup.Name, eventHubNamespace.Name, eventHubResource.Name, listenManageRuleNames, accessRights);
}

但是最终给了我这个错误:

"{\"error\":{\"message\":\"Error setting value to 'Rights' on 'Microsoft.Cloud.ServiceBus.ResourceProvider.ArmVersionedEntities.ArmAuthorizationRuleDescription'. \",\"code\":\"BadRequest\"}}"

UPDATE 2我只是尝试只执行AccessRights.Listen而已。紧接着,我尝试仅执行AccessRights.Manage,但它不起作用,并抛出了相同的错误。

azure azure-eventhub azure-sdk
1个回答
0
投票

找到方法!

List<AccessRights> accessRights = new LinkedList<>();
        accessRights.add(AccessRights.LISTEN);
        accessRights.add(AccessRights.SEND);

azure.eventHubNamespaces().authorizationRules()
                    .manager()
                    .namespaceAuthorizationRules()
                    .inner()
                  .createOrUpdateAuthorizationRule("resourceGroup","namespace","policyname",accessRights);

REST API method name获取提示,并尝试在源代码中找到相似的名称。

© www.soinside.com 2019 - 2024. All rights reserved.