2016-08-11 10 views
3

Я использую этот кусок кода для вызова очереди служебной шины из моего файла node.js, работающего в роли Azure Worker.Azure SDK для узла JS не работает в Azure worker Role

var azure = require('azure'), 
    config = require('./config'); 
var serviceBusClient = azure.createServiceBusService(config.sbConnection); 
console.log("Start"); 
serviceBusClient.getQueue("myqueue", function (error, queue) { 
    if(error){ 
     console.log(error); 
    } 
    console.log(queue); 
}); 
console.log("End"); 

В этом коде работника роли журнала только «старт» и «конец», но getQueue API не работает, а не бросать какие-либо ошибки, и она работает отлично на моей локальной машине и протоколирование ответ.

ответ

0

Я тестировал новую облачную службу с вашим кодом сценария node.js и развертывал в Azure. И я сконфигурировал файл .csdef для вывода вывода в файл журнала, например: <ProgramEntryPoint commandLine="node.cmd .\worker.js &gt; sblog.txt" setReadyOnProcessStart="true" />, чтобы проверить вывод сценария node.js.

Все хорошо работало на моей стороне. Не могли бы вы подтвердить, есть ли у вас сообщения в вашей очереди и есть ли у вас какие-либо конкретные конфигурации в вашем файле .csdef.

обновление

Согласно описанию на https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/:

При размещении приложения в облаке службе Azure (веб или работник роли,), и это первый раз, когда вы развернули приложение , Azure попытается использовать ту же версию Node.js, которая была установлена ​​в вашей среде разработки, если она соответствует одной из версий по умолчанию, доступных на Azure.

И мы можем проверить доступную версию nodejs в облачном сервисе с помощью команды powershell: Get-AzureServiceProjectRoleRuntime. Список доступных версий: 0.6.17, 0.6.20, 0.8.4, 0.8.22, 0.8.26 и 0.10.21.

Если вы хотите использовать свою собственную версию nodejs, вы можете упаковать всю папку node.js в папку приложения облачных сервисов. И измените файл node.cmd в приложении облачного сервиса, чтобы направить путь к узлу node.js в пакет облачных сервисов.

+0

Да Сообщения доступны в очереди, и вот мой .csdef код файла <имя переменной = "ПОРТ">