首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Azure中的nodejs编程创建ConsumerGroups?

如何使用Azure中的nodejs编程创建ConsumerGroups?
EN

Stack Overflow用户
提问于 2019-12-30 20:39:10
回答 2查看 280关注 0票数 0

如何使用Azure中的nodejs创建用户组?

我试图复制.net SDK提供的内容,但它没有工作。

代码语言:javascript
复制
const { NamespaceManager } = require("@azure/service-bus");                                                                                                   
let namespaceManager = NamespaceManager.CreateFromConnectionString(eventHubConnectionString);                                                                 
let ehd = namespaceManager.GetEventHub(eventHubPath);                                                                                                         
namespaceManager.CreateConsumerGroupIfNotExists(ehd.Path, consumerGroupName);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-31 19:44:59

以下是起作用的过程:

https://learn.microsoft.com/en-us/rest/api/eventhub/create-consumer-group

步骤:

  1. Create
  2. 提供正确的标头并对REST
  3. 进行https调用--您只能创建一次,如果第二次调用,它将引发409错误。如果您想要更新或插入调用,则需要检查它。

SAS令牌:

https://learn.microsoft.com/en-us/rest/api/eventhub/generate-sas-token

uri --即使是saName的url --托管策略saKey的名称-- eventhub管理策略的主/次键(确保它有管理)

代码语言:javascript
复制
function createSharedAccessToken(uri, saName, saKey) { 
    if (!uri || !saName || !saKey) { 
            throw "Missing required parameter"; 
        } 
    var encoded = encodeURIComponent(uri); 
    var now = new Date(); 
    var week = 60*60*24*7;
    var ttl = Math.round(now.getTime() / 1000) + week;
    var signature = encoded + '\n' + ttl; 
    var signatureUTF8 = utf8.encode(signature); 
    var hash = crypto.createHmac('sha256', saKey).update(signatureUTF8).digest('base64'); 
    return 'SharedAccessSignature sr=' + encoded + '&sig=' +  
        encodeURIComponent(hash) + '&se=' + ttl + '&skn=' + saName; 
}

请求参数:

网址:

https://your-namespace.servicebus.windows.net/your-event-hub/consumergroups/testCG?timeout=60&api-version=2014-01

头:

代码语言:javascript
复制
Content-Type: application/atom+xml;type=entry;charset=utf-8
Host: your-namespace.servicebus.windows.net
Authorization: {replace with the content from your SAS Token}

有效载荷:

代码语言:javascript
复制
<entry xmlns="http://www.w3.org/2005/Atom">  
   <content type="application/xml">  
      <ConsumerGroupDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">Any name you want</ConsumerGroupDescription>  
   </content>  
</entry>

可能的返回状态:

代码语言:javascript
复制
201 -- Successful Creation
404 -- Not found, you are using a name that does not exist
409 -- The messaging entity 'XXX' already exists.

如果您注意到任何其他问题,请留下评论。

票数 1
EN

Stack Overflow用户

发布于 2019-12-31 01:00:52

事件中心Node.JS SDK不支持管理操作。

尝试像https://www.nuget.org/packages/Microsoft.Azure.Management.EventHub/这样的管理客户端

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59536605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档