使用区域级端点

借助 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"
  )
)

后续步骤