您可以透過網際網路公開存取區域和多區域端點,也可以從虛擬私有雲內私下存取。本文說明如何公開存取端點。
從公用網際網路存取區域端點時,流量會透過 Google Cloud 標準級網路轉送。連線 (包括 TLS 終止) 會在目的地區域內處理。
設定 API 的公開網際網路存取權
如要設定區域 API 端點的公用網際網路存取權,請按照下列步驟操作。
角色
如要取得建立區域端點所需的權限,請要求管理員在 VPC 網路中授予您下列 IAM 角色:
- Compute 網路管理員角色 (
roles/compute.networkAdmin) - DNS 管理員角色 (
roles/dns.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
事前準備
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
$ gcloud init
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
啟用 Compute Engine、Network Connectivity Center 和 Cloud DNS API。
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。此外,請啟用 API,以便透過端點存取目標服務。舉例來說,如要存取
spanner.me-central2.rep.googleapis.com,請啟用 Cloud Spanner API。確認輸出防火牆規則允許流量傳送至端點。虛擬私有雲網路的預設防火牆設定包含隱含的允許輸出規則,因此允許這類流量。確認您未建立優先順序較高的輸出規則,封鎖流量。
找出端點
判斷工作負載所需的服務和特定區域或多區域。
區域端點的格式如下:
SERVICE.REGION.rep.googleapis.com多區域端點的格式如下:
SERVICE.MULTI_REGION.rep.googleapis.com
修改 DNS 設定
如果您的環境使用私人 DNS 區域覆寫 googleapis.com 的公開 DNS (混合式設定中常見的做法),請按照下列步驟操作:
更新 DNS 設定,排除
rep.googleapis.com。詳情請參閱「新增、更新及刪除記錄」。修改 DNS 區域設定,排除
rep.googleapis.com子網域。 並將這些查詢轉送至公用 DNS 解析程式。詳情請參閱「建立、修改及刪除區域」一文。
設定 Google Cloud CLI
如要覆寫特定服務的預設 API 端點,請使用 Google Cloud CLI。下列範例使用 gcloud config set 指令,在 us-central1 中設定 Cloud Storage 的覆寫項目,並在 europe-west1 中設定 Compute Engine 的覆寫項目。
# Set an override for Cloud Storage in us-central1.
gcloud config set api_endpoint_overrides/storage https://storage.us-central1.rep.googleapis.com/
# Set an override for Compute Engine in europe-west1.
gcloud config set api_endpoint_overrides/compute https://compute.europe-west1.rep.googleapis.com/compute/v1/
設定覆寫後,該服務的 gcloud CLI 指令會使用區域端點。如要還原為使用預設全域端點,請使用 gcloud config unset 指令:
gcloud config unset api_endpoint_overrides/SERVICE
更新用戶端 SDK
大多數 Google Cloud 用戶端程式庫都允許您在用戶端初始化期間指定自訂端點。
Python
透過 client_options 支付 api_endpoint 費用。
from google.cloud import SERVICE
from google.api_core.client_options import ClientOptions
options = ClientOptions(api_endpoint='https://SERVICE.REGION.rep.googleapis.com')
SERVICE_client = SERVICE.Client(client_options=options, project='PROJECT_ID')
# ... use SERVICE_client as usual
更改下列內容:
SERVICE:服務名稱REGION:端點的區域PROJECT_ID:專案的 ID Google Cloud
Go
建立用戶端時使用 option.WithEndpoint。
client, err := SERVICE.NewClient(ctx, projID,
option.WithEndpoint("https://SERVICE-my-endpoint.REGION.rep.googleapis.com"), // Override endpoint
更改下列內容:
SERVICE:服務名稱REGION:端點的區域
.NET
在用戶端建構工具中設定 Endpoint。
Java
在服務設定建構工具中使用 setEndpoint。
以下範例使用 Java 連線至 Cloud Vision API 的端點。
ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
.setEndpoint("https://vision.REGION.rep.googleapis.com")
.build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);
參考說明文件
後續步驟
- 透過後端存取區域性 Google API。
- 請參閱 Google Cloud 支援的區域服務端點。