本頁說明如何在Google Cloud中使用區域 API 端點 (區域端點),這些端點適用於 me-central2 (沙烏地阿拉伯) 區域。
區域端點會將流量導向並提供給與用戶端相同的Google Cloud 區域,藉此提供傳輸中資料落地功能。當用戶端使用區域端點呼叫服務時,用戶端的 TLS 工作階段會在端點名稱中指定的區域終止。因此,區域端點只能用於沒有單一區域或管轄區以外依附元件的工作負載。
您可以透過網際網路連線至公開區域端點。對於網際網路的傳入流量,這些端點會使用盡力而為的轉送方式,將傳輸中的流量保留在區域 (或管轄區) 內,因為這些端點不會使用全域 Google Front End (GFE)。而是會解析為僅在最接近所選區域的對等互連點上發布的 IP 位址。
舉例來說,沙烏地阿拉伯的資料工程師可以設定用戶端,使用 me-central2 區域 (達曼) 的 BigQuery,方法是使用區域服務端點 bigquery.me-central2.rep.googleapis.com。流量會透過標準級路由傳送,且來自用戶端的 TLS 工作階段會在 me-central2 中終止。
在這種情況下,與區域服務端點對應的公開 VIP 會來自 Google 在區域對等互連點上發布的 IP 前置字元。因此,如果使用者連線至沙烏地阿拉伯的當地網際網路服務供應商,流量就會在該管轄區內轉送。
區域端點格式
地區端點的格式如下:
SERVICE_NAME.REGION.rep.googleapis.com
預留位置值定義如下:
- SERVICE_NAME:支援的服務端點名稱,例如
bigquery。 - REGION:支援的 Google Cloud 區域,例如
me-central2。
以下是 BigQuery 的完整區域端點範例:
bigquery.me-central2.rep.googleapis.com
支援的地區和服務
下列區域支援區域端點:
| 區域名稱 | 位置 |
|---|---|
me-central2 |
沙烏地阿拉伯達曼 |
下列服務支援區域端點:
| 服務名稱 | 區域端點 |
|---|---|
| Artifact Registry |
artifactregistry.me-central2.rep.googleapis.com
|
| BigQuery |
bigquery.me-central2.rep.googleapis.com
|
| Bigtable |
bigtable.me-central2.rep.googleapis.com
|
| Cloud Key Management Service (Cloud KMS) |
cloudkms.me-central2.rep.googleapis.com
|
| Cloud Logging |
logging.me-central2.rep.googleapis.com
|
| Spanner |
spanner.me-central2.rep.googleapis.com
|
| Cloud Storage |
storage.me-central2.rep.googleapis.com
|
| Dataflow |
dataflow.me-central2.rep.googleapis.com
|
| Managed Service for Apache Spark |
dataproc.me-central2.rep.googleapis.com
|
| Pub/Sub |
pubsub.me-central2.rep.googleapis.com
|
設定用戶端,透過公開網際網路存取區域端點
如要透過公用網際網路使用區域端點,您必須先設定用戶端 (例如 Google Cloud CLI 或 Google Cloud SDK 用戶端程式庫),連線至特定區域端點。
設定 gcloud CLI
根據預設,gcloud CLI 會使用全域服務端點,例如 bigquery.googleapis.com。如要使用區域服務端點,請完成下列步驟,設定 gcloud CLI 來使用這些端點。
如果尚未啟用支援的服務,請使用下列指令啟用:
gcloud services enable SERVICE_NAME
將 SERVICE_NAME 替換為要使用的支援服務名稱。例如:
gcloud services enable cloudkms
如要使用區域服務端點,請使用
gcloud config set api_endpoint_overrides指令設定 gcloud CLI:gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL
將下列值替換為您自己的值:
- SERVICE_NAME:要使用的支援服務名稱。
例如:
cloudkms REGIONAL_API_URL:特定端點的網址。例如:
https://SERVICE_NAME.REGION_NAME.rep.googleapis.com/SERVICE_NAME/API_VERSION
將下列值替換為您自己的值:
- REGION_NAME:必要 Google Cloud 區域的名稱。例如:
me-central2 - API_VERSION:要使用的服務 API 版本。
例如:
v1。注意:部分服務可能不需要這個參數。
以下是 REGIONAL_API_URL 值的範例:
https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1
- REGION_NAME:必要 Google Cloud 區域的名稱。例如:
綜合以上說明,以下是 Cloud KMS 的
gcloud config set api_endpoint_overrides指令範例:gcloud config set api_endpoint_overrides/cloudkms https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1
- SERVICE_NAME:要使用的支援服務名稱。
例如:
現在 gcloud CLI 已設定為使用區域服務端點,日後指令會預設使用這個端點,而非全域服務端點。
設定 Google Cloud SDK 用戶端程式庫
根據預設,Google Cloud SDK 用戶端程式庫會使用全域服務端點,例如 pubsub.googleapis.com。如要使用區域服務端點,您必須設定 Google Cloud SDK 用戶端程式庫,才能使用這些端點。
Python
在 google-api-core 套件的 ClientOptions 類別中設定 api_endpoint 參數:
from google.api_core.client_options import ClientOptions options = ClientOptions(api_endpoint = "pubsub.me-central2.rep.googleapis.com") client = pubsub_v1.PublisherClient(client_options=options) // Alternatively client = pubsub_v1.PublisherClient(client_options={"api_endpoint": "pubsub.me-central2.rep.googleapis.com")
Java
使用 com.google.cloud.vision 套件中 ImageAnnotatorSettings 類別的 newBuilder 方法:
ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder() .setEndpoint("pubsub.me-central2.rep.googleapis.com") .build(); ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);
Go
在 api 套件的 ClientOptions 套件中,使用 WithEndpoint 函式:
client, err := pubsub.NewClient(ctx, projID, option.WithEndpoint("pubsub.me-central2.rep.googleapis.com"), // Override endpoint
.NET
在您使用的程式庫的 Google.Cloud 套件中,於用戶端的 ClientBuilder 類別中設定 Endpoint 屬性:
string region = "me-central2"; var client = new DatasetServiceClientBuilder { Endpoint = $"pubsub.{region}.rep.googleapis.com" }.Build();
限制全域 API 端點用量
如要強制使用區域端點,請使用 constraints/gcp.restrictEndpointUsage 組織政策限制,封鎖對全域 API 端點的要求。詳情請參閱「限制端點用量」。