借助 Cloud Scheduler 区域端点,您可以将 API 流量保持在单个Google Cloud 区域内,以帮助满足数据驻留和数据主权要求。当您向区域级端点发送请求时,TLS 会终止,并且 Cloud Scheduler 会完全在指定区域内处理请求。
Cloud Scheduler 区域级端点采用 https://cloudscheduler.REGION.rep.googleapis.com 格式,其中 REGION 是受支持的区域,例如 https://cloudscheduler.us-central1.rep.googleapis.com。
如需了解如何使用 Private Service Connect 从虚拟私有云 (VPC) 网络内部私密访问 Cloud Scheduler 区域端点,请参阅关于通过端点访问区域和多区域 Google API。
局限和限制
使用 Cloud Scheduler 区域端点时,存在以下限制。
- 区域级端点仅服务于其所在区域中的资源。资源名称中的位置必须与端点的区域匹配。例如,您可以向
cloudscheduler.us-central1.rep.googleapis.com发送projects/PROJECT_ID/locations/us-central1中的资源请求。对其他区域中资源的请求会失败。 - 区域端点适用于发送到 Cloud Scheduler API 的请求。它们不会改变 Cloud Scheduler 向作业目标发送请求的方式。如果您的作业在 VPC Service Controls 边界内运行,请参阅使用 VPC Service Controls 保护 cron 作业中对作业目标的要求。
向区域端点发送请求
您可以使用 Google Cloud CLI、REST API 或 Cloud Scheduler 客户端库向区域端点发送请求。
gcloud
将 api_endpoint_overrides/cloudscheduler 属性设置为区域端点,然后针对该区域中的资源运行 gcloud scheduler 命令:
gcloud config set api_endpoint_overrides/cloudscheduler \ https://cloudscheduler.REGION.rep.googleapis.com/ gcloud scheduler jobs list --location=REGION
将 REGION 替换为提供区域端点的区域,例如 us-central1。
如需再次使用默认全球端点,请取消设置该属性:
gcloud config unset api_endpoint_overrides/cloudscheduler
REST
使用区域端点作为请求网址的主机。例如,以下命令会列出某个区域中的作业:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudscheduler.REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/jobs"
替换以下内容:
REGION:提供区域端点的区域,例如us-central1。PROJECT_ID:您的 Google Cloud 项目 ID。
客户端库
在创建客户端时设置 API 端点。以下示例为 us-central1 创建了一个客户端:
Go
import ( scheduler "cloud.google.com/go/scheduler/apiv1" "google.golang.org/api/option" ) client, err := scheduler.NewCloudSchedulerClient(ctx, option.WithEndpoint("cloudscheduler.us-central1.rep.googleapis.com:443"))
Java
import com.google.cloud.scheduler.v1.CloudSchedulerClient; import com.google.cloud.scheduler.v1.CloudSchedulerSettings; CloudSchedulerSettings settings = CloudSchedulerSettings.newBuilder() .setEndpoint("cloudscheduler.us-central1.rep.googleapis.com:443") .build(); try (CloudSchedulerClient client = CloudSchedulerClient.create(settings)) { // Send requests for resources in us-central1. }
Python
from google.api_core.client_options import ClientOptions from google.cloud import scheduler_v1 client = scheduler_v1.CloudSchedulerClient( client_options=ClientOptions( api_endpoint="cloudscheduler.us-central1.rep.googleapis.com" ) )