區域 ID
REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。即使部分區域 ID 看似常用的國家/地區和省份代碼,但該代碼並不對應至國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是這段時間前建立的現有應用程式,網址可選擇是否包含區域 ID。
進一步瞭解區域 ID。
本節說明如何使用 Ingress 設定,限制對 App Engine 應用程式的網路存取權。在網路層級,根據預設,網際網路上的任何資源都能透過 appspot 網址或在 App Engine 中設定的自訂網域存取 App Engine 應用程式。舉例來說,appspot.com 網址可採用下列格式:SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com。
如要變更這項預設設定,請為 Ingress 指定其他設定。所有連入路徑 (包括預設 appspot.com 網址) 都會受到連入設定的限制。Ingress 是在服務層級設定。
可用的輸入設定
可用的設定如下:
| 設定 | 說明 |
|---|---|
| 內部 |
最嚴格的限制。允許來自專案虛擬私有雲網路所連資源的要求,例如:
appspot.com URL 存取您的服務,要求仍會留在 Google 網路內。
來自其他來源 (包括網際網路) 的要求,無法透過 appspot.com URL 或自訂網域連線至您的服務。系統不支援多重租戶,也就是同一專案內有多個信任網域。 |
| 內部和 Cloud Load Balancing | 允許來自下列資源的要求:
appspot.com 網址的要求會略過外部應用程式負載平衡器,因此這項設定可防止外部要求連上 appspot.com 網址。 |
| 全部 |
最寬鬆的設定。允許所有要求,包括直接從網際網路傳送至 appspot.com 網址的要求。 |
存取內部服務
請注意下列事項:
如果是來自 Shared VPC 的要求,只有在 App Engine 應用程式部署在 Shared VPC 主專案中時,流量才會視為內部流量。如果 App Engine 應用程式部署在 Shared VPC 服務專案中,只有來自應用程式所屬專案的網路流量屬於內部流量。所有其他流量 (包括來自其他 Shared VPC 的流量) 都是外部流量。
存取內部服務時,請使用服務的公開網址 (預設
appspot.com網址或在 App Engine 中設定的自訂網域),照常呼叫服務。如果要求來自 Compute Engine VM 執行個體,或在相同專案的虛擬私有雲網路中執行的其他資源,則無須進一步設定。
即使資源具有公開 IP 位址,來自相同專案中虛擬私有雲網路內資源的要求,仍會歸類為內部要求。
透過 Cloud VPN 連線至虛擬私有雲網路的地端部署資源發出的要求,會視為
internal。
- 如要處理來自其他 App Engine 服務,或來自相同專案中 Cloud Run 或 Cloud Run 函式的要求,請將服務或函式連線至虛擬私有雲網路,並透過連接器轉送所有輸出流量,詳情請參閱「連線至 Shared VPC 網路」。
查看輸入設定
控制台
前往「App Engine Services」(App Engine 服務) 頁面。
找出「Ingress」欄。針對每項服務,這個資料欄中的值會顯示 Ingress 設定,包括「全部」 (預設)、「內部 + 負載平衡」或「內部」。
gcloud
如要使用 gcloud CLI 查看服務的輸入設定,請執行下列指令:
gcloud app services describe SERVICE
將 SERVICE 改為您的服務名稱。
舉例來說,如要查看預設服務執行的輸入設定和其他資訊,請執行下列操作:
gcloud app services describe default
編輯輸入設定
控制台
前往「App Engine Services」(App Engine 服務) 頁面。
選取要編輯的服務。
按一下「編輯 Ingress 設定」。
從選單中選取所需的 Ingress 設定,然後按一下「儲存」。
gcloud
如要使用 gcloud CLI 更新服務的輸入設定,請按照下列步驟操作:
gcloud app services update SERVICE --ingress=INGRESS
更改項目:
- SERVICE:服務名稱。
- INGRESS:要套用的輸入控管。可能的值為
all、internal-only或internal-and-cloud-load-balancing。
例如:
如要更新 App Engine 應用程式的預設服務,只接受來自 Cloud Load Balancing 和相同專案中 VPC 網路的流量,請按照下列步驟操作:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
如要更新名為「internal-requests」的服務,只接受來自相同專案中虛擬私有雲網路的流量,請執行下列步驟:
gcloud app services update internal-requests --ingress=internal-only
輸出設定
如果您使用無伺服器 VPC 存取,可以為 App Engine 服務指定輸出設定。
根據預設,只有傳送至內部 IP 位址和內部 DNS 名稱的要求,會透過無伺服器 VPC 存取連接器轉送。您可以在 app.yaml 檔案中指定服務的輸出設定。
輸出設定與網址擷取服務不相容。
使用 urlfetch 程式庫會忽略輸出設定,要求不會透過無伺服器 VPC 存取連接器路由傳送。
如要設定 App Engine 服務的出站流量行為,請按照下列步驟操作:
在服務的
app.yaml檔案中,將egress_setting屬性新增至vpc_access_connector欄位:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
更改項目:
- 將
PROJECT_ID替換為 Google Cloud 專案 ID - 將
REGION替換為連接器所在的區域 - 將
CONNECTOR_NAME替換為連接器名稱 EGRESS_SETTING,並符合下列其中一項條件:
- 將
部署服務:
gcloud app deploy