App Engine Java 8 スタンダード ランタイムについてよく寄せられる質問を以下に示します。
Java 8 ランタイムで Kotlin を使用できますか?
はい。GitHub レポジトリにある Kotlin サンプルを確認してください。
App Engine で IntelliJ IDEA Community Edition を使用できますか?
はい。組み込みの Maven 統合を使用します。
また、IntelliJ Ultimate Edition も使用できます。Ultimate Edition には、より多くのウェブ アプリケーション開発機能が用意されており、App Engine 開発プロセスとの緊密な統合を実現します。
App Engine Cloud Endpoints v1.0 は Java 8 ランタイムで動作しますか?
いいえ。Cloud Endpoints Frameworks バージョン 2.0 に移行する必要があります。
再パッケージ化されたクラスで java.lang.NoClassDefFoundError が表示されるのはなぜですか?
com/google/appengine/repackaged/com/google/common/collect/ImmutableList
などの再パッケージ化された内部クラスは、以前のバージョンの App Engine API JAR で定義されていたとしても、Java 8 ランタイムではもう使用できません。
Java 8 アプリで再パッケージ化されたクラスを使用する必要がある場合は、appengine-web.xml
で appengine.api.legacy.repackaging
を true に設定します。例:
<system-properties>
<property name="appengine.api.legacy.repackaging" value="true">
</system-properties>
これらのクラスは、再パッケージ化されていないパブリック クラスに置き換えることをおすすめします。
Java 8 と Java 11 の間でトラフィック分割を実行できますか?
はい。サービス バージョンまたはモジュール バージョンのそれぞれで、異なるランタイム バージョンを使用でき、トラフィック分割がサポートされます。
インスタンスがリクエストを受け取っていないとき、Java 8 スレッドはどのように処理されますか?
App Engine API で作成されたスレッドは、引き続き以前と同様に動作します。
自動スケーリング | 手動スケーリング | 基本スケーリング |
---|---|---|
インスタンスはリクエストがないために終了します。 | インスタンスは最後のリクエストの後(デフォルト: 5 分)に終了します。 | 動作し続けます。 |
App Engine Java 8 ランタイムでは、どのようなメタデータ サーバー機能がサポートされますか?
App Engine Java 8 ランタイムでは、次のメタデータ サーバー URL がサポートされます。
/computeMetadata/v1/project/numeric-project-id (pending)
/computeMetadata/v1/project/project-id
/computeMetadata/v1/instance/zone
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email
/computeMetadata/v1/instance/service-accounts/default/scopes
/computeMetadata/v1/instance/service-accounts/default/token
/computeMetadata/v1/instance/service-accounts/{account}/aliases
/computeMetadata/v1/instance/service-accounts/{account}/email
/computeMetadata/v1/instance/service-accounts/{account}/scopes
/computeMetadata/v1/instance/service-accounts/{account}/token
メタデータ サーバー v1beta1
v1beta1 メタデータ サーバーはサポート終了となり、停止が予定されています。v1 以降を使用するようにすべてのリクエストを更新してください。詳細については、v1 メタデータ サーバー エンドポイントへの移行をご覧ください。
/computeMetadata/v1beta1/project/numeric-project-id (pending)
/computeMetadata/v1beta1/project/project-id
/computeMetadata/v1beta1/instance/zone
/computeMetadata/v1beta1/instance/service-accounts/default/aliases
/computeMetadata/v1beta1/instance/service-accounts/default/email
/computeMetadata/v1beta1/instance/service-accounts/default/scopes
/computeMetadata/v1beta1/instance/service-accounts/default/token
/computeMetadata/v1beta1/instance/service-accounts/{account}/aliases
/computeMetadata/v1beta1/instance/service-accounts/{account}/email
/computeMetadata/v1beta1/instance/service-accounts/{account}/scopes
/computeMetadata/v1beta1/instance/service-accounts/{account}/token
リクエストに応答がないのはなぜですか?
リクエストでスレッドプールを作成する場合は、現在のリクエストが終了する前に、そのスレッドを明示的にシャットダウンする必要があります。