次の方法で共有


Node.js アプリケーションのビルドと Azure Cloud Services (クラシック) へのデプロイ

重要

Cloud Services (クラシック) は、2024 年 9 月 1 日をもって、すべてのお客様に対して非推奨になりました。 既存の実行中のデプロイはすべて Microsoft によって停止およびシャットダウンされ、2024 年 10 月以降、データは永久に失われます。 新しいデプロイでは、新しい Azure Resource Manager ベースのデプロイ モデル、 Azure Cloud Services (延長サポート) を使用してください。

このチュートリアルでは、Azure クラウド サービスで実行される Node.js アプリケーションを作成する方法について説明します。 Cloud Services は、Azure のスケーラブルなクラウド アプリケーションの構成要素です。 クラウド サービスによって、アプリケーションのフロントエンド コンポーネントとバックエンド コンポーネントの分離および独立した管理とスケールアウトを実現できます。 Cloud Services は、各ロールを信頼性の高い方法でホストするための堅牢な専用仮想マシンを提供します。

ヒント

Web サイトの構築をお考えですか? シナリオが、単純な Web サイトのフロントエンドにのみ関係している場合は、軽量の Web アプリを使用することを検討してください。 Web アプリの規模が増大し、要件が変化したときには、容易にクラウド サービスにアップグレードできます。

このチュートリアルに従って、Web ロール内でホストされる Web アプリケーションを作成します。 コンピューティング エミュレーターを使用してアプリケーションをローカルでテストし、PowerShell コマンド ライン ツールを使用してそれを展開します。

このアプリケーションは "hello world" アプリケーションです。

Hello World Web ページを表示している Web ブラウザー

前提条件

注意

このチュートリアルは、Windows 上の Azure PowerShell を使用します。

  • Azure PowerShell をインストールして構成します。
  • [Azure SDK for .NET 2.7] をダウンロードしてインストールします。 インストールのセットアップ時に、次のいずれかを選択します。
    • MicrosoftAzureAuthoringTools
    • MicrosoftAzureComputeEmulator

Azure クラウド サービス プロジェクトの作成

新しい Azure クラウド サービス プロジェクトおよび基本的な Node.js スキャフォールディングを作成するには、次のタスクを実行します。

  1. Windows PowerShell を管理者として実行します。 [スタート] メニューまたはスタート画面で、「Windows PowerShell」を検索します。

  2. PowerShell を接続します

  3. 次の PowerShell コマンドレットを入力して、プロジェクトを作成します。

    New-AzureServiceProject helloworld
    

    New-AzureService helloworld コマンドの結果

    New-AzureServiceProject コマンドレットは、クラウド サービスに Node.js アプリケーションを発行するための基本的な構造を生成します。 これには、Azure への発行に必要な構成ファイルが含まれています。 また、このコマンドレットにより、作業ディレクトリがこのサービス用のディレクトリに変更されます。

    このコマンドレットによって作成されるファイルは、次のとおりです。

  4. 次のコマンドを入力して、新しい Web ロールを追加します。

    Add-AzureNodeWebRole
    

    The output of the Add-AzureNodeWebRole command

    Add-azurenodewebrole コマンドレットは、基本的な Node.js アプリケーションを作成します。 .csfg ファイルおよび .csdef ファイルも変更され、新しいロールの構成エントリが追加されます。

    注意

    ロール名を指定しない場合は、既定の名前が使用されます。 名前は、 Add-AzureNodeWebRole MyRole

Node.js アプリは server.js ファイルで定義されます。このファイルは Web ロール用のディレクトリ (既定では WebRole1) に配置されます。 のコードを次に示します。

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

このコードは、クラウド環境に割り当てられたポート番号を使用する点を除いて、基本的に nodejs.org Web サイトの "Hello World" サンプルと同じです。

Azure にアプリケーションを展開する

注意

このチュートリアルを完了するには、Azure アカウントが必要です。 MSDN サブスクライバーの特典を有効にするか、無料アカウントにサインアップしてください。

Azure 発行設定のダウンロード

アプリケーションを Azure に展開するには、まず Azure サブスクリプションの発行設定をダウンロードする必要があります。

  1. 次の Azure PowerShell コマンドレットを実行します。

    Get-AzurePublishSettingsFile
    

    このコマンドは、ブラウザーを使用して、発行設定のダウンロード ページに移動します。 Microsoft アカウントによるサインインを求められる場合があります。 その場合は、Azure サブスクリプションに関連付けられたアカウントを使用します。

    ダウンロードしたプロファイルを、簡単にアクセスできるファイルの保存場所に保存します。

  2. 次のコマンドレットを実行して、ダウンロードした発行プロファイルをインポートします。

    Import-AzurePublishSettingsFile [path to file]
    

    注意

    発行設定をインポートしたら、ダウンロードした .publishSettings ファイルには他のユーザーがアカウントにアクセスできる情報が含まれているので、削除することを検討してください。

アプリケーションの発行

発行するには、次のコマンドを実行します。

$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • - ServiceName は、このデプロイに使用する名前を指定します。 この値は、必ず一意の名前にしてください。一意でない場合は、発行処理が失敗します。 Get-Date コマンドは、名前を一意にする日付/時刻文字列を追加します。
  • -Location は、アプリケーションをホストするデータ センターを指定します。 使用可能なデータ センターの一覧を表示するには、 Get-azurelocation コマンドレットを使用してください。
  • -Launch は、デプロイの完了後にブラウザー ウィンドウを開き、ホストされたサービスに移動します。

発行が成功すると、次のスクリーンショットのような応答が表示されます。

Publish-AzureService コマンドの出力

注意

初めてアプリケーションを発行する場合、アプリケーションがデプロイされ、利用可能になるまでに数分かかることがあります。

デプロイが完了すると、ブラウザー ウィンドウが開き、クラウド サービスに移動します。

A browser window displaying the hello world page; the URL indicates the page is hosted on Azure.

これで、アプリケーションが Azure 上で実行されました。

Publish-AzureServiceProject コマンドレットによって行われる処理は次のとおりです。

  1. デプロイするためのパッケージを作成します。 このパッケージには、アプリケーション フォルダー内のすべてのファイルが含まれます。
  2. ストレージ アカウントが存在しない場合は、新たに作成します。 Azure ストレージ アカウントは、デプロイ中にアプリケーション パッケージを格納するために使用されます。 デプロイが完了したら、ストレージ アカウントを削除してかまいません。
  3. クラウド サービスが存在しない場合は、新たに作成します。 クラウド サービスは、Azure に展開される際にアプリケーションがホストされるコンテナーです。 詳細については、「 Overview of Creating a Hosted Service for Azure (Azure 対応のホステッド サービスの作成の概要)」を参照してください。
  4. デプロイ パッケージを Azure に発行します。

アプリケーションの停止と削除

アプリケーションをデプロイした後、余分なコストを回避するためにアプリケーションを無効にすることができます。 Azure では、消費されたサーバー時間の 1 時間単位の料金が Web ロール インスタンスに課金されます。 インスタンスが実行されていない場合や停止状態の場合でも、アプリケーションを展開するとサーバー時間が消費されます。

  1. Windows PowerShell ウィンドウで次のコマンドレットを実行し、前のセクションで作成したサービスのデプロイを停止します。

    Stop-AzureService
    

    サービスの停止には、数分間かかる場合があります。 サービスが停止すると、停止したことを知らせるメッセージが表示されます。

    Stop-AzureService コマンドの状態

  2. サービスを削除するには、次のコマンドレットを呼び出します。

    Remove-AzureService
    

    確認を求めるメッセージが表示されたら、「 Y 」と入力して、サービスを削除します。

    サービスの削除には、数分間かかる場合があります。 サービスを削除すると、サービスが削除されたことを知らせるメッセージが表示されます。

    Remove-AzureService コマンドの状態

    注意

    サービスを削除しても、サービスが最初に発行されたときに作成されたストレージ アカウントは削除されず、使用したストレージに対して引き続き課金されます。 他の用途に使用しているのでなければ、ストレージを削除してください。

次のステップ

詳細については、 Node.js デベロッパー センターを参照してください。