3

このコードを使用して、Azure Worker Role で実行されている node.js ファイルからサービス バス キューを呼び出しています。

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 は動作しておらず、エラーも発生せず、ローカル マシンで正常に動作し、応答をログに記録しています。

4

1 に答える 1

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 クラウド サービス (Web または worker ロール) でホストしていて、アプリケーションを初めてデプロイする場合、Azure は、開発環境にインストールしたものと同じバージョンの Node.js を使用しようとします。 Azure で利用可能な既定のバージョンのいずれかと一致する場合。

また、powershell コマンドを使用して、クラウド サービスで利用可能な nodejs のバージョンを確認できますGet-AzureServiceProjectRoleRuntime0.6.17利用可能なバージョンのリストは、、、、、および0.6.20です。0.8.40.8.220.8.260.10.21

カスタム nodejs バージョンを使用する場合は、node.js 実行アプリケーション フォルダー全体をクラウド サービス アプリケーションにパッケージ化できます。そしてnode.cmd、クラウド サービス アプリケーション内のファイルを変更して、node.js がクラウド サービス パッケージ内のアプリケーションのパスを実行するようにします。

于 2016-08-12T09:16:34.003 に答える