このガイドでは、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 express
package.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 無料トライアル