Node.js によるウェブサービスの作成

このガイドでは、App Engine スタンダード環境で実行する Node.js ウェブサービスの作成方法を説明します。Node.js ランタイムとそのしくみの詳細については、Node.js ランタイム環境をご覧ください。

始める前に

要点

  • 依存関係を package.json ファイル内に表示すると、使用できるようになります。詳細については、依存関係の指定をご覧ください。
  • App Engine は npm start を実行してアプリケーションを起動します。
  • サーバーは、process.env.PORT で指定されたポート(App Engine ランタイムで設定された環境変数)をリッスンする必要があります。
  • App Engine にサービスをデプロイするには、app.yaml ファイルが必要です。

HTTP リクエストをリッスンするサーバーの作成

ウェブサービスの中核となるのが HTTP サーバーです。このガイドのサンプルコードでは、Express.js フレームワークを使用して HTTP リクエストを処理していますが、任意のウェブ フレームワークを自由に使用できます。

  1. Node.js サービス用に my-nodejs-service という名前の新しいフォルダを作成します。

  2. ターミナルでフォルダに移動し、npm init を実行して package.json ファイルを作成します。

  3. 次のコマンドを実行して、Express を依存関係として追加します。

    npm install express
    

    package.json ファイルの dependencies フィールドに Express が表示されていることを確認します。次に例を示します。

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. package.json ファイルに start スクリプトを追加します。

    "scripts": {
      "start": "node server.js"
    }
    
  5. 同じフォルダに server.js というファイルを作成し、次のコードを追加します。

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      res.send('Hello from App Engine!');
    });
    
    // Listen to the App Engine-specified port, or 8080 otherwise
    const PORT = process.env.PORT || 8080;
    app.listen(PORT, () => {
      console.log(`Server listening on port ${PORT}...`);
    });

これは非常に基本的なウェブサーバーです。ルートパス('/')に対するすべての GET リクエストに、「Hello from App Engine!」というテキストによるレスポンスを返します。最後の 4 行では、App Engine ランタイムで設定された環境変数 process.env.PORT によって指定されたポートをリッスンするようにサーバーを設定しています。このポートをリッスンするように設定されていない場合、サーバーはリクエストを受信しません。

process.env.PORT が設定されていない場合、ポート 8080 がデフォルトとして使用されます。これは、アプリをローカルでテストする場合に必要です。process.env.PORT はローカルでの実行中に設定されず、アプリが App Engine で実行されている場合にのみ設定されるためです。テストではどちらのポートでも使用できますが、このガイドでは 8080 を使用しています。

サーバーのローカルでの実行

サーバーをローカルで実行するには:

  1. ターミナルで npm start を実行します。これにより、server.js ファイルが実行されます。

  2. ウェブブラウザで http://localhost:8080 にアクセスします。

「Hello from App Engine!」というテキストが記されたページが表示されます。

app.yaml ファイルの作成

app.yaml ファイルでは、App Engine サービスのランタイム環境の設定を指定します。このファイルがないと、サービスはデプロイされません。

  1. my-nodejs-service フォルダに app.yaml というファイルを作成します。

  2. このファイル内に次の内容を追加します。

    runtime: nodejs20

    これは、App Engine に対して Node.js ランタイムのバージョンを示す最小限の構成ファイルです。app.yaml ファイルでは、ネットワーク設定やスケーリング設定などを指定することもできます。詳細については、app.yaml リファレンスをご覧ください。

現時点で、ファイル構造は次のようになっているはずです。

  my-nodejs-service/
  app.yaml
  package.json
  server.js

次のステップ

これで、適切なポートをリッスンする簡単な Node.js ウェブサーバーの作成と、app.yaml ファイルでのランタイムの指定が完了したため、App Engine にサービスをデプロイする準備が整いました。

使ってみる

Google Cloud を初めて使用される方は、アカウントを作成して、実際のシナリオでの App Engine のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

App Engine 無料トライアル