在服務之間進行通訊

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。

進一步瞭解區域 ID

您可以使用各種方法在 App Engine 服務之間或與其他服務 (包括 Google Cloud 服務和外部應用程式) 進行通訊。

如要與 App Engine 服務進行通訊,最簡單的方法是傳送指定的 HTTP 要求,只要在網址中加入相關資源的名稱或 ID 即可。例如,除了對應的 Google Cloud 專案 ID 外,您還可以加入想要列為目標的服務 ID 或版本 ID:


https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

請注意,VERSION-dot-SERVICE-dot-PROJECT_ID 的總長度不得超過 63 個字元,且開頭或結尾不得使用連字號。其中 VERSION 是版本名稱、SERVICE 是服務名稱,而 PROJECT_ID 是專案 ID。如果合併長度超過 63 個半形字元,您可能會看到錯誤 DNS address could not be found.

進一步瞭解 App Engine 中的請求:

App Engine 服務也可以使用 Pub/Sub 進行通訊,這項服務可以在程序之間提供穩定的非同步多對多訊息傳遞服務。這些程序包含 App Engine 在內,可以是您的應用程式、服務,甚至是外部應用程式的個別執行個體。

如要在不同資料庫和 App Engine 應用程式或某些外部應用程式之間共用資料,請參閱「瞭解資料與檔案儲存空間」一文。

如果您使用舊版套裝服務,也可以使用 URL Fetch API,在服務之間傳送要求,或將要求從服務傳送至外部端點。

此外,標準環境中的服務若屬於同一個Google Cloud 專案,還可以使用其中一項 App Engine API 進行下列工作:

  • 共用單一 memcache 執行個體。
  • 透過工作佇列在服務之間指派工作以進行協同合作。

私人通訊

同一個專案中服務之間的通訊

您可以讓 App Engine 標準服務與同一專案中的另一項 App Engine 服務通訊,而不必將目的地服務公開至公開網際網路。

如要允許相同專案中的服務之間通訊,請按照下列步驟操作:

  1. 調整目的地服務的輸入設定,只允許「內部」流量,藉此設定輸入控制項。

    「內部」設定僅允許來自專案虛擬私有雲網路的要求。這包括在輸出流量透過連接器轉送時,相同網路上用戶端應用程式的 App Engine 資源。來自網際網路或其他專案的所有其他流量 (包括其他 App Engine 服務) 都會遭到封鎖。 Google Cloud

  2. 透過 無伺服器虛擬私有雲存取連接器轉送流量:

    1. 針對每個將私人流量傳送至其他應用程式端點的 App Engine 版本,請將該版本附加至屬於專案自有網路的 Serverless VPC Access 連接器,而非共用虛擬私有雲網路。 Google Cloud

    2. 確保無伺服器 VPC 存取連接器使用的子網路已啟用私人 Google 存取權。

    3. 設定下列任一項目:

      • 為目的地主機名稱新增 DNS 項目,設定用戶端要求使用 private.googleapis.com IP 範圍。請按照DNS 設定新增 DNS 主機名稱,但請務必將私人區域設定為 appspot.com 而非 googleapis.com。此外,請確認流量會導向目的地應用程式的 appspot.com 位址,而非自訂網域。您的應用程式只能透過 private.googleapis.com IP 範圍使用這個 appspot.com 網域。

      • 請將用戶端應用程式設為透過無伺服器虛擬私有雲存取連接器傳送 all-traffic,而非將要求設為使用 private.googleapis.com IP 範圍。

不同專案中的服務之間通訊

如果在專案中執行的應用程式屬於共用虛擬私有雲網路,且該網路已設定為在共用虛擬私有雲網路的主機專案中叫用應用程式,您就可以在 Google Cloud 專案之間使用私人存取權。

如要使用這個模式,請按照在同一個專案中,讓服務之間相互通訊的步驟操作。在標準環境中,將每個用戶端版本連結至共用虛擬私有雲網路上的無伺服器虛擬私人雲端存取連接器。

在 App Engine 中,您無法使用其他方法透過內部存取權存取其他專案。

保留的網址路徑

以下網址路徑無法使用:

  • 結尾為 /eventlog 的路徑
  • 路徑開頭為 /_ah/
  • 部分以 z 結尾的路徑