Azure アプリケーションでの Node.js のバージョンの指定Specifying a Node.js version in an Azure application

Node.js アプリケーションをホストするときに、アプリケーションで特定のバージョンの Node.js を使用することが必要になる場合があります。When hosting a Node.js application, you may want to ensure that your application uses a specific version of Node.js. Azure でホストされるアプリケーションについてこれを行うには、いくつかの方法があります。There are several ways to accomplish this for applications hosted on Azure.

既定のバージョンDefault versions

Azure が提供する Node.js のバージョンは常に更新されます。The Node.js versions provided by Azure are constantly updated. 特に指定しない限り、 WEBSITE_NODE_DEFAULT_VERSION 環境変数で指定された既定のバージョンが使用されます。Unless otherwise specified, the default version that is specified in the WEBSITE_NODE_DEFAULT_VERSION environment variable will be used. この既定値を上書きするには、以降この記事に書かれているセクションの手順に従ってください。To override this default value, follow the steps in following sections of this article


Azure クラウド サービス (Web ロールまたは worker ロール) でアプリケーションをホストしており、初めてアプリケーションをデプロイした場合、開発環境にインストールされていた Node.js が Azure で使用できる既定のバージョンのいずれかと一致するときには、同じバージョンを使用することが試行されます。If you are hosting your application in an Azure Cloud Service (web or worker role,) and it is the first time you have deployed the application, Azure will attempt to use the same version of Node.js as you have installed on your development environment if it matches one of the default versions available on Azure.

package.json でバージョンを指定するVersioning with package.json

次の内容を package.json ファイルに追加することによって、使用する Node.js のバージョンを指定できます。You can specify the version of Node.js to be used by adding the following to your package.json file:


ここで、 version は使用する特定のバージョン番号です。Where version is the specific version number to use. 次のように、より複雑なバージョンの条件を指定できます。You can specify more complex conditions for version, such as:

"engines":{"node": "0.6.22 || 0.8.x"}

0.6.22 はホスティング環境で利用可能なバージョンには含まれていないため、0.8 シリーズで利用可能な最も高いバージョンである 0.8.4 が代わりに使用されます。Since 0.6.22 is not one of the versions available in the hosting environment, the highest version of the 0.8 series that is available will be used instead - 0.8.4.

アプリケーションの設定で Websites のバージョンを指定するVersioning Websites with App Settings

Web サイトでアプリケーションをホストしている場合は、環境変数 WEBSITE_NODE_DEFAULT_VERSION を目的のバージョンに設定できます。If you are hosting the application in a Website, you can set the environment variable WEBSITE_NODE_DEFAULT_VERSION to the desired version.

PowerShell で Cloud Services のバージョンを指定するVersioning Cloud Services with PowerShell

クラウド サービスでアプリケーションをホストしており、Microsoft Azure PowerShell を使用してアプリケーションをデプロイしている場合は、PowerShell の Set-AzureServiceProjectRole コマンドレットを使用して既定の Node.js のバージョンをオーバーライドできます。If you are hosting the application in a Cloud Service, and are deploying the application using Azure PowerShell, you can override the default Node.js version by using the Set-AzureServiceProjectRole PowerShell cmdlet. 次に例を示します。For example:

Set-AzureServiceProjectRole WebRole1 Node 0.8.4

上記のステートメント内のパラメーターは大文字と小文字が区別されます。Note the parameters in the above statement are case-sensitive. Node.js の正しいバージョンが選択されていることを検証できます。このためには、ロールの package.jsonengines プロパティを確認します。You can verify the correct version of Node.js has been selected by checking the engines property in your role's package.json.

また、 Get-AzureServiceProjectRoleRuntime を使用して、クラウド サービスとしてホストされるアプリケーションで利用可能な Node.js のバージョンの一覧を取得できます。You can also use the Get-AzureServiceProjectRoleRuntime to retrieve a list of Node.js versions available for applications hosted as a Cloud Service. プロジェクトが依存している Node.js のバージョンは、この一覧でいつでも確認できます。Always verify the version of Node.js your project depends on is in this list.

Azure Websites でカスタム バージョンを使用するUsing a custom version with Azure Websites

Azure には Node.js の既定のバージョンが複数用意されていますが、既定以外のバージョンを使用することもできます。While Azure provides several default versions of Node.js, you may want to use a version that is not provided by default. アプリケーションが Azure Website としてホストされている場合、 iisnode.yml ファイルを使用してこれを実現できます。If your application is hosted as an Azure Website, you can accomplish this by using the iisnode.yml file. 以下の手順では、Azure Website で Node.Js のカスタム バージョンを使用するプロセスを説明します。The following steps walk through the process of using a custom version of Node.Js with an Azure Website:

  1. 新しいディレクトリを作成し、そのディレクトリ内に server.js ファイルを作成します。Create a new directory, and then create a server.js file within the directory. server.js ファイルの内容は次のようになっている必要があります。The server.js file should contain the following:

     var http = require('http');
     http.createServer(function(req,res) {
       res.writeHead(200, {'Content-Type': 'text/html'});
       res.end('Hello from Azure running node version: ' + process.version + '</br>');
     }).listen(process.env.PORT || 3000);

    これにより、Web サイトを閲覧するときに、使用されている Node.js のバージョンが表示されます。This will display the Node.js version being used when you browse the website.

  2. 新しい Web サイトを作成し、サイトの名前をメモしておきます。Create a new Website and note the name of the site. たとえば、次の例では Azure コマンド ライン ツール を使用して、 mywebsiteという名前の新しい Azure Website を作成し、この Web サイトの Git リポジトリを有効にします。For example, the following uses the [Azure Command-line tools] to create a new Azure Website named mywebsite, and then enable a Git repository for the website.

     azure site create mywebsite --git
  3. server.js ファイルが格納されているディレクトリの子として bin という名前の新しいディレクトリを作成します。Create a new directory named bin as a child of the directory containing the server.js file.
  4. アプリケーションで使用する特定のバージョンの node.exe (Windows 版) をダウンロードします。Download the specific version of node.exe (the Windows version) that you wish to use with your application. たとえば、次の例では curl を使用してバージョン 0.8.1 をダウンロードします。For example, the following uses curl to download version 0.8.1:

     curl -O

    node.exe ファイルを前の手順で作成した bin フォルダーに保存します。Save the node.exe file into the bin folder created previously.

  5. iisnode.yml ファイルを server.js ファイルと同じディレクトリに作成し、次の内容を iisnode.yml ファイルに追加します。Create an iisnode.yml file in the same directory as the server.js file, and then add the following content to the iisnode.yml file:

     nodeProcessCommandLine: "D:\home\site\wwwroot\bin\node.exe"

    このパスは、アプリケーションを Azure Website に発行した際に、プロジェクト内の node.exe ファイルが配置される場所です。This path is where the node.exe file within your project will be located once you have published your application to the Azure Website.

  6. アプリケーションを発行します。Publish your application. たとえば、先ほど --git パラメーターを指定して新しい Web サイトを作成したので、次のコマンドによって、自分のローカル Git リポジトリにアプリケーション ファイルが追加された後、Web サイトのリポジトリにプッシュされます。For example, since I created a new website with the --git parameter earlier, the following commands will add the application files to my local Git repository, and then push them to the website repository:

     git add .
     git commit -m "testing node v0.8.1"
     git push azure master

    アプリケーションが発行された後、ブラウザーで Web サイトを開きます。After the application has published, open the website in a browser. "Hello from Azure running node version: v0.8.1" というメッセージが表示されます。You should see a message stating "Hello from Azure running node version: v0.8.1".

次のステップNext Steps

アプリケーションで使用される Node.js のバージョンを指定する方法が理解できたら、モジュールの使用方法Node.js Web サイトを構築、デプロイする方法Mac および Linux 用 Azure コマンド ライン ツールの使用方法に関する各トピックを参照してください。Now that you understand how to specify the version of Node.js used by your application, learn how to [work with modules], build and deploy a Node.js Web Site, and [How to use the Azure Command-Line Tools for Mac and Linux].

詳細については、 Node.js デベロッパー センターを参照してください。For more information, see the Node.js Developer Center.