App Engine フレキシブル環境で Node.js を使用するためのクイックスタート

このクイックスタートでは、短いメッセージを表示する小さな App Engine アプリケーションを作成する方法について説明します。

始める前に

このサンプルを実行する前に、次の手順を行います。

  1. git をダウンロードしてインストールします
  2. Google Cloud SDK をダウンロードします
  3. Node.js をダウンロードしてインストールします

フレキシブル環境を利用するは、プロジェクトに課金を設定する必要があります。課金アカウントを設定していない場合、このクイックスタートでは課金を有効にするように、後で求められます。

このクイックスタートでは、Express.js フレームワークで記述されたシンプルな Node.js アプリケーションについて具体的に説明します。

Hello World アプリをダウンロード

Node.js 用にシンプルな Hello World アプリをご用意しましたので、Google Cloud Platform へのアプリのデプロイをすぐに体験できます。次の手順でコマンドラインから Hello World アプリをローカルマシンにダウンロードしてください。

サンプルアプリをダウンロードし、アプリのディレクトリに移動する手順は次のとおりです。

  1. 次のように、Hello World サンプルアプリ レポジトリのクローンをローカルマシンに作成します。

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
    

    または Zip ファイルでサンプルをダウンロードし、展開します。

  2. サンプルコードが含まれているディレクトリに移動します。

    cd nodejs-docs-samples/appengine/hello-world
    

ローカルマシン上で Hello World を実行

  1. 次のコマンドを入力して、このプロジェクトの依存関係をインストールします。

    npm install
    
  2. 起動スクリプトを実行します。

    npm start
    
  3. ウェブブラウザで次のアドレスを入力します。

    http://localhost:8080
    
サンプルアプリから「Hello World」というメッセージがページに表示されます。

ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。

Hello World を App Engine にデプロイして実行

App Engine フレキシブル環境にアプリをデプロイするには Google Cloud Platform Console プロジェクトが必要です。

Google Cloud Platform Console にプロジェクトを作成する。

  1. Google アカウントへのログイン

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. In Cloud Platform Console で、[プロジェクト] ページに移動し、新しいプロジェクトを選択または作成します。

    [プロジェクト] ページに移動

  3. プロジェクトの課金を有効にします。

    課金の有効化

  4. 設定とデプロイで使用するため、プロジェクト ID をメモしておきます。
  5. Cloud SDK を初期化します。
  6. gcloud init

App Engine にアプリをデプロイする

  1. Hello World アプリをデプロイします。
    gcloud app deploy
  2. 次のアドレスに移動してデプロイしたアプリを確認します。
    https://[YOUR_PROJECT_ID].appspot.com

今回、Hello World メッセージが表示されるページは、App Engine インスタンスで実行されているウェブサーバーから配信されます。

これで完了です。 最初の Node.js アプリが App Engine フレキシブル環境にデプロイされました。

クリーンアップ

このチュートリアルで使用するリソースについて Google Cloud Platform アカウントに課金されないようにする手順は次のとおりです。

  1. Cloud Platform Console に移動します。
  2. シャットダウンするプロジェクトを選択し、[プロジェクトを削除] をクリックします。これによってプロジェクトの削除がスケジュールされます。

次のステップ

Now that you've accomplished Hello World, you can start exploring your next sample app: the Bookshelf app. Bookshelf アプリも基礎的な Node.js ウェブアプリですが、もう少し複雑で、データ ストレージ、認証、ロギング、Pub/Sub など複数の Cloud Platform 機能を使用します。

Bookshelf アプリのチュートリアルを開始

App Engine フレキシブル環境の詳細については、App Engine の概要をご覧ください。

Hello World コードレビュー

Hello World には 1 つのサービスのみ含まれ、1 つのバージョンのみ存在し、すべてのコードがアプリのルート ディレクトリに存在するため、最もシンプルな App Engine アプリです。このセクションでは、このアプリの各ファイルを詳細に説明します。

app.js

app.js ファイルには、サーバーの起動やリクエストへの応答を行う JavaScript コードが含まれています。

次のコードは、ウェブ クライアントからのリクエストに応答して、ポート 8080 で動作するサーバーを通して「Hello World」というメッセージを表示します。

'use strict';

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.status(200).send('Hello, world!');
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});

app.yaml

app.yaml ファイルには、アプリケーションのデプロイ設定が記述されています。

runtime: nodejs
env: flex
app.yaml はこのアプリで使用するランタイムを指定します。env: flex を設定して、このアプリがフレキシブル環境を使用することを指定します。

package.json

package.json は、アプリケーションの依存関係、ノードのバージョン、アプリケーションの起動を指定するために使用します。

{
  "name": "appengine-hello-world",
  "description": "Simple Hello World Node.js sample for Google App Engine",
  "version": "0.0.1",
  "private": true,
  "license": "Apache Version 2.0",
  "author": "Google Inc.",
  "engines": {
    "node": ">=4.3.2"
  },
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "4.14.0"
  }
}

この package.json は、アプリケーションが node 4.2 を使用すること、express に依存すること、node app.js を使用してアプリケーションを起動することを指定します。ユーザーアプリのインストール方法や実行方法については、Node.js ランタイム ドキュメントをご覧ください。

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...