您是否可以向一个共享访问策略添加更多的Event Hub规则?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了您是否可以向一个共享访问策略添加更多的Event Hub规则?相关的知识,希望对你有一定的参考价值。
创建事件中心后,我正在应用规则。例如,我是否可以将“发送”和“监听”规则应用于同一共享访问策略?
我正在尝试使用的代码似乎“覆盖”了之前的规则。我应该有更好的方法吗?
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,但它不起作用,并抛出了相同的错误。
答案
找到方法!
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获取提示,并尝试在源代码中找到相似的名称。
以上是关于您是否可以向一个共享访问策略添加更多的Event Hub规则?的主要内容,如果未能解决你的问题,请参考以下文章