2014-02-12 19 views
1

我正在測試一些關於節點和天藍色的代碼。根據代碼片段@https://github.com/WindowsAzure/azure-sdk-for-node錯誤時調用azure.createQueueService()

var queueService = azure.createQueueService(); 
queueService.createQueueIfNotExists('taskqueue', function(error){ 

if(!error){ 
    // Queue exists 
} 

}); 

在我的代碼我想: -

var AZURE = require('azure'); 

function TestQueue(QueueName) 
{ 
    var queueService = AZURE.createQueueService(); // error occurred at this line 
    queueService.createQueueIfNotExists(QueueName, function(error){ 
     if(!error) 
     { 
      console.log("ok"); 
      RESPONSE.send(200, { Message: "ok", Status: "ok" }); 
     } 
     else 
     { 
      console.log("error: "+error); 
      RESPONSE.send(200, { Message: "error", Status: "error" }); 
     } 
    }); 
} 

錯誤信息: -

NoMatchError:所提供的設置{ 「blobendpoint」:」 https://undefined.blob.core.windows.net 「,」tableendpoint「:」https://undefined.table.core.windows.net「,」queueendpoint「:」https://undefined.queue.core.windows.net「} 不完整。

問題是如何創建 queueService?

順便說一句,下面的代碼 工作正常。但這對我來說還不夠。我也需要隊列服務。

var AZURE = require('azure'); 
var SERVICEB_BUS_SERVICE = AZURE.createServiceBusService(); 

function createQueue(queueName) 
{ 
     SERVICEB_BUS_SERVICE.createQueueIfNotExists(queueName, function(error){ 
      if(!error){ 
       console.log('%s queue created or exist: ',queueName); 
       RESPONSE.send(200, { Message: "ok", Status: "ok" }) 
      } 
      else 
      { 
       console.log('%s queue creation error.',queuename); 
       RESPONSE.send(200, { Message: "error", Status: "error" }) 
      } 
     }) 

} 

回答

2

基本上你得到這個錯誤是因爲沒有指定帳戶名稱/密鑰。嘗試這樣的:

var AZURE = require('azure'); 
TestQueue('testqueue1'); 
function TestQueue(QueueName) 
{ 
    var queueService = AZURE.createQueueService('accountname', 'accountkey'); // error occurred at this line 
    queueService.createQueueIfNotExists(QueueName, function(error){ 
     if(!error) 
     { 
      console.log("ok"); 

     } 
     else 
     { 
      console.log("error: "+error); 

     } 
    }); 
} 
+0

我擺脫了以前的錯誤。但是得到了一個新的錯誤:服務器無法驗證請求。確保授權標頭的值正確形成,包括簽名。 RequestId:f0cb9b35-e540-41e9-87ae-1311c5e320b0 Time:2014-02-13T12:19:41.6685088Z。我將這種方法稱爲自定義api,因爲它只能調用已認證的用戶。我打電話之前先進行身份驗證。我不是關於參數'accountname','accountkey'的。我剛剛嘗試了accountname =「servicebus name」accountkey =「DEFAULT KEY」。你能告訴我該怎麼辦? – masiboo

+0

您必須從Windows Azure門戶網站獲取存儲帳戶名稱和密鑰。該隊列與服務總線隊列不同。您可能會發現此鏈接可用於兩者之間的比較:http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx。 –

+0

哇令人困惑的名字。其實我在嘗試遵循這個http://www.windowsazure.com/en-us/documentation/articles/storage-nodejs-how-to-use-queues/時遇到了這個問題var queueService = azure.createQueueService( );正如你可以看到代碼創建服務總線隊列,並試圖創建隊列服務時遇到錯誤。 – masiboo