區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。
進一步瞭解區域 ID。
本節說明如何使用入口設定限制對 App Engine 應用程式的網路存取權。在網路層級,根據預設,網路上的任何資源都能透過 appspot URL 或在 App Engine 中設定的自訂網域存取您的 App Engine 應用程式。例如,appspot.com
網址可以採用下列格式:SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
。
您可以指定不同的入口設定來變更這項預設設定。所有入口路徑 (包括預設 appspot.com
網址) 都會受到入口設定的影響。Ingress 是在服務層級設定。
可用的輸入設定
可用的設定如下:
設定 | 說明 |
---|---|
內部 |
最嚴格。允許來自已連結至專案虛擬私有雲網路的資源的請求,例如:
appspot.com URL 存取您的服務也是如此。來自其他來源 (包括網際網路) 的要求無法透過 appspot.com 網址或自訂網域存取您的服務。系統不支援多租戶模式,也就是在同一個專案中有多個信任網域。 |
內部和雲端負載平衡 | 允許來自下列資源的要求:
appspot.com 網址的請求會略過外部應用程式負載平衡器,因此這項設定可防止外部要求存取 appspot.com 網址。 |
全部 |
最寬鬆。允許所有要求,包括直接從網際網路傳送至 appspot.com 網址的要求。 |
存取內部服務
請考量下列因素:
對於共用虛擬私有雲的請求,只有在共用虛擬私有雲主機專案中部署 App Engine 應用程式時,流量才會視為內部流量。如果 App Engine 應用程式是部署在共用虛擬私有雲服務專案中,則只有應用程式專案擁有的網路流量才會歸類為內部流量。所有其他流量 (包括其他共用虛擬私有雲的流量) 都屬於外部流量。
存取內部服務時,請使用其公開網址 (預設
appspot.com
網址或在 App Engine 中設定的自訂網域) 以正常方式呼叫服務。如果要求來自 Compute Engine VM 執行個體或在同一個專案的 虛擬私人雲端網路中執行的其他資源,則不需要進一步設定。
同一個專案中虛擬私人雲端網路中的資源發出的請求,即使來源資源有公開 IP 位址,也會歸類為內部。
透過 Cloud VPN 連線至 VPC 網路的內部部署資源所提出的要求,會視為
internal
。
- 如果是來自其他 App Engine 服務或同一專案中 Cloud Run 或 Cloud Run 函式的要求,請將服務或函式連線至虛擬私有雲網路,並透過連接器轉送所有傳出流量,如「連線至共用虛擬私有雲網路」一文所述。
查看 ingress 設定
控制台
前往「App Engine Services」(App Engine 服務) 頁面。
找出「Ingress」欄。針對每項服務,這個欄中的值會顯示「所有」 (預設)、「內部 + 負載平衡」或「內部」等入口設定。
gcloud
如要使用 gcloud CLI 查看服務的入口設定,請按照下列步驟操作:
gcloud app services describe SERVICE
將 SERVICE 改為您的服務名稱。
例如,如要查看預設服務執行作業的入口設定和其他資訊,請執行下列操作:
gcloud app services describe default
編輯輸入設定
控制台
前往「App Engine Services」(App Engine 服務) 頁面。
選取要編輯的服務。
按一下「編輯入站設定」。
從選單中選取所需的入口設定,然後按一下「儲存」。
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
輸出設定
如果您使用無伺服器虛擬私有雲端存取,可以為 App Engine 服務指定出口設定。
根據預設,只有內部 IP 位址和內部 DNS 名稱的要求會透過無伺服器虛擬私人雲端存取連接器轉送。您可以在 app.yaml
檔案中指定服務的輸出設定。
出口設定與網址擷取服務不相容。使用 urlfetch
程式庫會忽略輸出設定,且要求不會透過無伺服器虛擬私有雲存取連接器路由。
如要設定 App Engine 服務的傳出行為,請按照下列步驟操作:
在服務的
app.yaml
檔案vpc_access_connector
欄位中新增egress_setting
屬性: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