構成ファイル

サービスの各バージョンは、サービスの名前とバージョンを指定する .yaml ファイルで定義します。YAML ファイルは通常、その中で定義するサービスと同じ名前にしますが、必ずしもそうする必要はありません。複数のバージョンのサービスをデプロイする場合は、同じディレクトリ内に複数の yaml ファイルを(バージョンごとに 1 つずつ)作成します。

通常、サービスごとにディレクトリを作成し、そこにサービスの YAML ファイルと関連するソースコードを配置します。オプションのアプリケーションレベルの構成ファイル(dispatch.yamlcron.yamlindex.yamlqueue.yaml)は、最上位のアプリ ディレクトリに配置されます。以下の例には、3 つのサービスが示されています。service1service2 では、ソースファイルは YAML ファイルと同じレベルに配置されています。service3 には、2 つのバージョンの YAML ファイルがあります。

YAML サービスの階層グラフ

小さいシンプルなプロジェクトでは、すべてのアプリファイルを 1 つのディレクトリに配置します。

小さい YAML サービスの階層グラフ

すべての YAML ファイルには、バージョン パラメータを含める必要があります。デフォルト サービスを定義するには、service: default パラメータを明示的に記述するか、このパラメータをファイルに記述しないようにします。

サービスごとの構成ファイルによって、特定のサービスまたはバージョンのスケーリング タイプとインスタンス クラスを定義します。指定するスケーリング タイプに応じて、異なるスケーリング パラメータを使用します。スケーリングを指定していない場合は、デフォルトで自動スケーリングになります。スケーリングとインスタンス クラスの設定については、app.yaml リファレンスのセクションをご覧ください。

各サービスに対して、URL リクエストから特定のスクリプトへのマッピング設定や、静的ファイルを識別する設定を行うことで、サーバー効率を高めることもできます。このような設定も yaml ファイルに記載されます。詳細については、app.yaml リファレンスのセクションをご覧ください。

デフォルト サービス

すべてのアプリケーションにはデフォルト サービスが 1 つあります。デフォルト サービスは、app.yamlservice: default 設定を使用して定義できますが、必ずしも定義する必要はありません。デフォルト サービスには、サービスに関連するすべての構成パラメータが適用されます。

オプションの構成ファイル

以下の構成ファイルを使うと、アプリのすべてのサービスに適用されるオプション機能を制御できます。

  • dispatch.yaml
  • queue.yaml
  • index.yaml
  • cron.yaml
  • dos.yaml

これらの構成ファイルの更新を App Engine にデプロイするには、そのファイルが配置されているディレクトリから次のコマンドを実行します。

    gcloud app deploy [CONFIG_FILE]

次の例では、ウェブ リクエストを処理するデフォルト サービスと、モバイル リクエストとバックエンド処理を処理する 2 つのサービスの合計 3 つのサービスがあるアプリケーションの YAML ファイルを構成します。

最初に、すべてのウェブ関連のリクエストを処理する app.yaml という名前の構成ファイルを次の内容で定義します。

runtime: python27
api_version: 1
threadsafe: true

このアプリの GCP Console プロジェクト ID が simple-sample の場合、この構成では自動スケーリングと http://simple-sample.appspot.com という公開アドレスを持つデフォルト サービスが作成されます。

次に、モバイルウェブ リクエストを処理するサービスを作成する例を示します。この例ではモバイル ユーザーのために、最大保留待ち時間は 1 秒とし、常に少なくとも 2 つのインスタンスがアイドル状態であるようにします。これを構成するため、次の内容で mobile-frontend.yaml 構成ファイルを作成します。

service: mobile-frontend
runtime: python27
api_version: 1
threadsafe: true

automatic_scaling:
  min_idle_instances: 2
  max_pending_latency: 1s

このファイルによって作成されるサービスは、http://mobile-frontend.simple-sample.appspot.com でアクセスできます。

最後に、静的なバックエンド処理を実行するため、my-service という名前のサービスを追加します。この処理は、Datastore から BigQuery にデータをエクスポートする継続的なジョブになります。処理量は比較的一定であるため、1 つの常駐サービスを用意するだけで十分です。また、これらのジョブは大容量のインメモリ処理を実行する必要があるため、サービスのメモリ設定を増やすこともできます。これを構成するには、my-service.yaml 構成ファイルに次の内容を書き込みます。

service: my-service
runtime: python27
api_version: 1
threadsafe: true

instance_class: B8
manual_scaling:
  instances: 1

このファイルによって作成されるサービスは、http://my-service.simple-sample.appspot.com でアクセスできます。

manual_scaling: の設定に注目してください。instances: パラメータは App Engine に対し、このサービスのために作成するインスタンスの数を指示します。

この Python デモアプリをダウンロードしてご覧いただくこともできます。
このページは役立ちましたか?評価をお願いいたします。

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

Python 2 の App Engine スタンダード環境