このガイドでは、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 リクエストを処理していますが、任意のウェブ フレームワークを自由に使用できます。
Node.js サービス用に
my-nodejs-serviceという名前の新しいフォルダを作成します。ターミナルでフォルダに移動し、
npm initを実行してpackage.jsonファイルを作成します。次のコマンドを実行して、Express を依存関係として追加します。
npm install expresspackage.jsonファイルのdependenciesフィールドに Express が表示されていることを確認します。次に例を示します。{ ... "dependencies": { "express": "^4.16.3" } ... }package.jsonファイルにstartスクリプトを追加します。"scripts": { "start": "node server.js" }同じフォルダに
server.jsというファイルを作成し、次のコードを追加します。
これは非常に基本的なウェブサーバーです。ルートパス('/')に対するすべての GET リクエストに「Hello from App Engine!」というテキストによるレスポンスを返します。最後の 4 行では、App Engine ランタイムで設定された環境変数 process.env.PORT によって指定されたポートをリッスンするようにサーバーを設定しています。このポートをリッスンするように設定されていない場合、サーバーはリクエストを受信しません。
process.env.PORT が設定されていない場合、ポート 8080 がデフォルトとして使用されます。これは、アプリをローカルでテストする場合に必要です。process.env.PORT はローカルでの実行中に設定されず、アプリが App Engine で実行されている場合にのみ設定されるためです。テストではどちらのポートでも使用できますが、このガイドでは 8080 を使用しています。
サーバーをローカルで実行する
サーバーをローカルで実行するには:
ターミナルで
npm startを実行します。これにより、server.jsファイルが実行されます。ウェブブラウザで
http://localhost:8080にアクセスします。
「Hello from App Engine!」というテキストが記されたページが表示されます。
app.yaml ファイルを作成する
app.yaml ファイルでは、App Engine サービスのランタイム環境の設定を指定します。このファイルがないと、サービスはデプロイされません。
my-nodejs-serviceフォルダにapp.yamlというファイルを作成します。このファイル内に次の内容を追加します。
これは、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 無料トライアル