2017-02-15 40 views
0

有沒有辦法使用Node.js SDK中的共享訪問簽名密鑰連接到Azure服務總線訂閱?我們希望使用SAS密鑰來讀取訂閱中的消息。如何使用SAS密鑰連接到使用Node.js SDK的Azure服務總線訂閱?

documentation中有一條約SAS,但沒有具體的。

我找不出來。

+0

你有[從前陣子在流動答案堆棧]見過這個(http://stackoverflow.com/questions/21089550/azure-servicebus-sas-in-node-js-sdk)? –

+0

我已經看到了,但那是在2014年,我認爲自那時起SDK發生了一些變化。 –

回答

0

共享訪問簽名(SAS)是Service Bus消息的主要安全機制。通常,Service Bus發佈者的SAS令牌僅通過特定隊列或主題的發送和接收特權創建。因此,您需要使用連接字符串來連接到Azure服務總線名稱空間。

該軟件包允許您輕鬆生成共享訪問簽名:https://github.com/mitchdenny/shared-access-signature

關於如何通過REST API使用SAS令牌將消息發送到服務總線隊列或主題,您可以參考https://docs.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue。請參閱Shared Access Signature Authentication with Service Bus

+0

我們將在後端生成sas密鑰。我們考慮在客戶端使用Node.js SDK讀取消息。這就是爲什麼我問是否有使用Node SDK讀取帶有SAS密鑰的消息的方法。我們切換到使用REST API來使用'https'模型讀取節點中的消息。 –

0

在回答您的評論:

理解,但沒有創建一個實例,您將無法針對服務總線操作做任何事情 - 這包括能夠從訂閱讀取消息沒有?

所以理論上你的代碼應該是這個樣子:

var serviceBusConnectionString = "Endpoint=sb://somens.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=mykey"; 

var retryOperations = new azure.ExponentialRetryPolicyFilter(); 
var serviceBusService = azure.createServiceBusService(serviceBusConnectionString).withFilter(retryOperations); 

serviceBusService.receiveSubscriptionMessage('MyTopic', 'LowMessages', function(error, receivedMessage){ 
    if(!error){ 
     // Message received and deleted 
     console.log(receivedMessage); 
    } 
}); 

More info here

原始

檢查這一個,以及followup stackoverflow answer,結合這兩個環節應該排序你出去?

感謝

+0

我不想用連接字符串創建服務總線實例。我想創建一個服務總線實例,以使用SAS密鑰從訂閱中讀取消息。 –

+0

不幸的是,我們嘗試過沒有成功的結果。 –

+0

你可以發佈一些示例代碼 - 所以我們可以看到你想實現什麼? –

相關問題