App Engine Java 8 執行階段常見問題

以下問題適用於 App Engine Java 8 標準執行階段。

我是否可以將 Kotlin 與 Java 8 執行階段搭配使用?

可以。請查看我們在 GitHub 存放區中的 Kotlin 範例

我是否可以將 IntelliJ IDEA Community Edition 與 App Engine 搭配使用?

可以。請使用內建的 Maven 整合功能。

您也可以使用 IntelliJ Ultimate Edition,它可為您提供更多網路應用程式開發功能,並且已和 App Engine 部署程序更緊密地整合。

App Engine Cloud Endpoints v1.0 是否可以在 Java 8 執行階段中運作?

不可以。您必須遷移至 Cloud Endpoints Frameworks 2.0 版

為什麼我會在重新封裝的類別收到 java.lang.NoClassDefFoundError?

Java 8 執行階段中已不再提供重新封裝的內部類別 (例如 com/google/appengine/repackaged/com/google/common/collect/ImmutableList),即使在舊版 App Engine API JAR 中定義了這些類別。

如果您需要在 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 執行階段支援以下中繼資料伺服器網址:

/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

Metadata Server 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

為什麼我的要求無法回應?

如果您是針對要求而建立執行緒集區,則必須確保在目前的要求終止之前將其明確關閉。