透過公開端點存取區域性 Google API

您可以透過網際網路公開存取區域和多區域端點,也可以從虛擬私有雲內私下存取。本文說明如何公開存取端點。

從公用網際網路存取區域端點時,流量會透過 Google Cloud 標準級網路轉送。連線 (包括 TLS 終止) 會在目的地區域內處理。

設定 API 的公開網際網路存取權

如要設定區域 API 端點的公用網際網路存取權,請按照下列步驟操作。

角色

如要取得建立區域端點所需的權限,請要求管理員在 VPC 網路中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

事前準備

  1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

    $ gcloud init

    若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  2. 啟用 Compute Engine、Network Connectivity Center 和 Cloud DNS API。

    啟用 API 時所需的角色

    您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色

    啟用 API

  3. 此外,請啟用 API,以便透過端點存取目標服務。舉例來說,如要存取 spanner.me-central2.rep.googleapis.com,請啟用 Cloud Spanner API。

  4. 確認輸出防火牆規則允許流量傳送至端點。虛擬私有雲網路的預設防火牆設定包含隱含的允許輸出規則,因此允許這類流量。確認您未建立優先順序較高的輸出規則,封鎖流量。

找出端點

判斷工作負載所需的服務和特定區域或多區域。

  • 區域端點的格式如下: SERVICE.REGION.rep.googleapis.com

  • 多區域端點的格式如下: SERVICE.MULTI_REGION.rep.googleapis.com

修改 DNS 設定

如果您的環境使用私人 DNS 區域覆寫 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);

參考說明文件

後續步驟