2016-08-11 2 views
3

이 코드를 사용하여 Azure Worker Role에서 실행중인 node.js 파일에서 서비스 버스 큐를 호출합니다. 이 코드 작업자 역할에서 노드 JS의 Azure SDK가 Azure 작업자 역할에서 작동하지 않습니다.

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

새로운 Cloud Service에서 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를 사용하려고 시도합니다.

그리고 우리는 PowerShell 명령을 통해 클라우드 서비스에서 사용할 수있는 nodejs 버전을 확인할 수 있습니다 Get-AzureServiceProjectRoleRuntime를. 사용 가능한 버전 목록은 0.6.17, 0.6.20, 0.8.4, 0.8.22, 0.8.260.10.21입니다.

사용자 정의 nodejs 버전을 사용하려는 경우 전체 node.js 응용 프로그램 폴더를 클라우드 서비스 응용 프로그램으로 패키지 할 수 있습니다. 클라우드 서비스 응용 프로그램에서 node.cmd 파일을 수정하여 node.js가 클라우드 서비스 패키지에서 응용 프로그램 경로를 실행하도록 지시하십시오.

+0

예 메시지 큐에서 사용할 수 있으며, 여기에 내 .csdef 파일 코드 <변수 이름 = "PORT"> <변수 명 ="에뮬 레이팅 "> AvinashSachdewani

+0

한 번 더 package.json에서이 라인 ("엔진": { "노드": "4.4.7", "iisnode": "*"})을 추가하여 노드 버전을 변경했습니다. 응용 프로그램을 게시하기 전에이 cmdlet (Set-AzureServiceProjectRole WebRole1 노드 4.4.7)을 실행하십시오. 그러나 작업자 역할에서 명령 (node ​​-v)을 실행하면 응용 프로그램에서 노드 js 버전 applicale가 0.6.20을 표시합니까? – AvinashSachdewani

+1

내용 전체 내용이'.csdef'입니까? Visual Studio를 활용하여 새로운 클라우드 서비스를 구축 할 수 있습니까? –

관련 문제