App Engine スタンダード環境での Python 3 のクイックスタート

リージョン ID

REGION_ID は、アプリを作成するときに選択するリージョンに基づいて Google が割り当てるコードです。既存のアプリでは省略可能でしたが、新しいアプリでは App Engine の URL に REGION_ID.r を含めることが必須になります。

移行がスムーズに行われるように、リージョン ID を使用するよう App Engine を徐々に更新しています。Google Cloud プロジェクトがまだ更新されていない場合、アプリにリージョン ID が表示されません。ID は既存のアプリでは省略可能なため、リージョン ID が既存のアプリで使用可能になったときに、URL を更新する、またはその他の変更を行う必要はありません。

詳しくは、リージョン ID をご覧ください。

このクイックスタート ガイドでは、サンプルアプリを App Engine にデプロイする方法を説明します。App Engine 向けのアプリのコーディングについて学習したい場合は、アプリの構築をご覧ください。

費用

このガイドの実行に伴う費用は発生しません。このサンプルアプリを実行するだけなら、無料の割り当てを超過することはありません。

始める前に

このクイックスタートを実行してデプロイする前に、Cloud SDK をインストールして、App Engine 用に Cloud プロジェクトを設定します。

  1. Cloud SDK をダウンロードしてインストールします。

    SDK をダウンロード

    : Cloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新します。

    gcloud components update
    
  2. 新しいプロジェクトを作成します。

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    [YOUR_PROJECT_ID] は、プロジェクトを一意に識別する文字列に置き換えます。例: my-project-24

    プロジェクトが作成されたことを確認します。

    gcloud projects describe [YOUR_PROJECT_ID]
    

    次のようなプロジェクトの詳細が表示されます。

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. プロジェクトで App Engine アプリを初期化し、そのリージョンを選択します。

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。

  4. プロジェクトで課金が有効になっていることを確認します。アプリケーションを App Engine にデプロイするには、課金アカウントをプロジェクトにリンクする必要があります。

    課金を有効にする

  5. 次の前提条件でインストールします。

    • 次のコマンドを実行して、Python 3.7 用の App Engine 拡張機能が含まれる gcloud コンポーネントをインストールします。

      gcloud components install app-engine-python
      

  6. Python 開発用に環境を準備します。ご使用のシステムに最新バージョンの Python、pip、その他関連ツールをインストールしておくことをおすすめします。手順については、Python 開発環境の設定ガイドをご覧ください。

App Engine のロケーション

App Engine はリージョナルです。つまり、アプリを実行するインフラは特定のリージョンに配置され、リージョン内のすべてのゾーンで冗長的に利用できるように Google によって管理されています。

レイテンシ、可用性、耐久性の要件を満たすことが、アプリを実行するリージョンを選択する際の主な要素になります。通常は、アプリのユーザーに最も近いリージョンを選択できますが、アプリで使用する Google Cloud の他のプロダクトやサービスのロケーションも考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響する可能性があります。

App Engine は次のリージョンで利用できます。

  • northamerica-northeast1(モントリオール)
  • us-central(アイオワ)
  • us-west2(ロサンゼルス)
  • us-west3(ソルトレイクシティ)
  • us-west4(ラスベガス)
  • us-east1(サウスカロライナ)
  • us-east4(北バージニア)
  • southamerica-east1(サンパウロ)
  • europe-west(ベルギー)
  • europe-west2(ロンドン)
  • europe-west3(フランクフルト)
  • europe-west6(チューリッヒ)
  • asia-northeast1(東京)
  • asia-northeast2(大阪)
  • asia-northeast3(ソウル)
  • asia-east2(香港)
  • asia-south1(ムンバイ)
  • australia-southeast1(シドニー)

設定したアプリのリージョンは変更できません。

App Engine アプリケーションをすでに作成している場合は、次のいずれかの方法でリージョンを表示できます。

このクイックスタートでは、Flask ウェブ フレームワークで作成された、App Engine にデプロイ可能なシンプルな Python アプリのデモを行います。このサンプルでは Flask を使用していますが、上記の要件を満たすウェブ フレームワークも使用可能です。代わりに使用できるフレームワークとしては、DjangoPyramidBottleweb.py などが挙げられます。

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

Python 3.7 用のシンプルな Hello World アプリが用意されており、Google Cloud へのアプリのデプロイをすぐに試すことができます。

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

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

    または、zip 形式のサンプルをダウンロードし、ファイルを抽出してもかまいません。

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

    cd python-docs-samples/appengine/standard_python37/hello_world
    

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

ローカルのパソコンで Hello World アプリを実行するには:

Mac OS / Linux

  1. プロジェクトの外部のディレクトリに隔離された Python 環境を作成し、それを有効化します。
    python3 -m venv env
    source env/bin/activate
  2. プロジェクト ディレクトリに移動し、依存関係をインストールします。
    cd YOUR_PROJECT
    pip install  -r requirements.txt
  3. アプリケーションを実行します。
    python main.py
  4. ウェブブラウザに次のアドレスを入力します。
    http://localhost:8080

Windows

PowerShell を使用して Python パッケージを実行します。

  1. インストールされた PowerShell を探します。
  2. PowerShell へのショートカットを右クリックし、管理者として PowerShell を起動します。
  3. プロジェクトの外部のディレクトリに隔離された Python 環境を作成し、それを有効化します。
    python -m venv env
    env\Scripts\activate
  4. プロジェクト ディレクトリに移動し、依存関係をインストールします。
    cd YOUR_PROJECT
    pip install -r requirements.txt
  5. アプリケーションを実行します。
    python main.py
  6. ウェブブラウザに次のアドレスを入力します。
    http://localhost:8080

サンプルアプリからの「Hello World」というメッセージがページに表示されます。ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。

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

アプリを App Engine スタンダード環境にデプロイするには:

  1. standard_python37/hello_world ディレクトリで次のコマンドを実行して、Hello World アプリをデプロイします。

    gcloud app deploy

    オプションのフラグをご覧ください。

    共通の gcloud コマンドフラグ

    • アプリのバージョンを一意に識別する ID を指定するには --version フラグを含めます。このフラグを含めない場合は自動的に生成されます。例: --version [YOUR_VERSION_ID]
    • gcloud ツールでデフォルトとして初期設定したものに代わる Cloud プロジェクト ID を指定するには、--project フラグを指定します。例: --project [YOUR_PROJECT_ID]

    例:

    gcloud app deploy --version pre-prod-5 --project my-sample-app

    コマンドラインからアプリをデプロイする方法については、アプリのテストとデプロイをご覧ください。すべてのコマンドフラグの一覧については、gcloud app deploy リファレンスをご覧ください。

  2. ブラウザを起動し、https://PROJECT_ID.REGION_ID.r.appspot.com にアクセスしてアプリを表示します。

    gcloud app browse
    ここで PROJECT_ID は、Google Cloud プロジェクト ID です。

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

これで完了です。これで、App Engine スタンダード環境に最初の Python 3.7 アプリがデプロイされました。

クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご覧ください。

クリーンアップ

課金されないようにするには、Cloud プロジェクトを削除してプロジェクト内で使用したすべてのリソースへの課金を停止します。

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ

プラットフォーム全体について学ぶ

App Engine アプリの開発とデプロイについて概要を理解した後は、Google Cloud の残りの部分についても確認します。すでに Cloud SDK がインストールされているため、Cloud SQL、Cloud Storage、Firestore などのプロダクトを操作するツールを使用できます。

App Engine スタンダード環境について学ぶ

App Engine についてさらに理解を深めるためのトピックをご紹介します。