您是否可以向一个共享访问策略添加更多的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规则?的主要内容,如果未能解决你的问题,请参考以下文章

共享业务和数据访问实体的策略

Laravel:向枢轴模型添加关系

如何向我的 FB 无摩擦分享应用程序添加新动词?

API Gateway 中控制和管理对 REST API 的访问

是否可以重载 terraform 模块?

局域网内计算机共享文件夹设置权限后拒绝访问