app.yaml によるアプリの構成

App Engine の Java アプリを構成するには、app.yaml ファイルを使用します。このファイルには、CPU、メモリ、ネットワーク リソース、ディスク リソース、スケーリングをはじめとする、環境変数を含む全般的な設定が含まれています。

Eclipse Jetty 9.3 ランタイムJava 8 ランタイムのどちらかを選択できます。MavenGradle を使用すると作業が簡単になります。

app.yaml ファイルの概要

バージョンや URL など、Java アプリのすべてのランタイム構成を app.yaml ファイルに指定します。このファイルは、特定のサービス バージョンのデプロイ記述子として機能します。追加サービス用に app.yaml ファイルを作成してデプロイするには、その前に、default サービス用の app.yaml ファイルを作成する必要があります。

app.yaml ファイルには一意の名前を指定できます。ただし、その場合はデプロイ コマンドでもそのファイル名を指定する必要があります。たとえば、app.yaml ファイルに service-name-app.yaml または app.flexible.yaml という名前を指定した場合は、次のいずれかを使用してアプリをデプロイする必要があります。

gcloud app deploy service-name-app.yaml
gcloud app deploy app.flexible.yaml
アプリで複数のサービスと app.yaml ファイルを構造化する方法については、ウェブサービスの構造化をご覧ください。アプリのサービスの複雑さによっては、対応する app.yaml ファイルの一部の要素を定義するだけで済む場合もあります。次の例では、Java アプリケーションをフレキシブル環境に配置する場合に必要となる内容について示します。

runtime: java
env: flex

handlers:
- url: /.*
  script: this field is required, but ignored

すべての構成要素

この構成ファイルでサポートされるすべての要素の一覧については、app.yaml リファレンスをご覧ください。

Java 仮想マシンの指標の収集を有効にする

Java 仮想マシン(JVM)プロセスの一般的な指標を収集するように、Java の App Engine フレキシブル環境を構成します。これらの指標は、Cloud Monitoring と同じ JVM モニタリング プラグインを使用して収集されます。App Engine の指標の一覧については、Google Cloud 指標ガイドをご覧ください。

アプリの JVM 指標を収集する場合:

  • appengine.googleapis.com/flex/instance/jvm/gc/count
  • appengine.googleapis.com/flex/instance/jvm/gc/time

app.yaml の環境変数で次の JMX システム プロパティを設定して、アプリをデプロイする必要があります。

JAVA_USER_OPTS: "-Djava.rmi.server.hostname=172.17.0.1 -Dcom.sun.management.jmxremote.port=10403 -
Dcom.sun.management.jmxremote.rmi.port=10403 -Dcom.sun.management.jmxremote.local.only=false -
Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"