配置区域端点

借助区域端点,您可以根据符合数据驻留和数据主权要求的方式运行 App Hub 工作负载,此时请求流量会直接路由到端点中指定的区域。

什么是区域级端点?

区域端点是请求端点,只有在受影响的资源存在于端点指定的位置时,才允许请求继续。例如,当您在管理资源的请求中使用端点 https://apphub.us-central1.rep.googleapis.com 时,仅当应用或已注册组件位于 us-central1 中时,请求才会继续。

与全球端点不同(全球端点可能会在不同于资源所在位置的其他位置处理请求),区域端点仅在端点指定的位置处理请求。对于从互联网、其他 Google Cloud 资源(例如 Compute Engine 虚拟机)、使用 VPN 或 Interconnect 的本地服务以及虚拟私有云 (VPC) 收到的请求,区域端点会在端点指定的位置终止 TLS 会话。

区域端点通过确保应用的元数据在静态和传输过程中都保留在指定区域内,从而支持数据驻留。

限制

您无法使用区域级端点管理 App Hub 中的全球资源,例如全球应用、边界、服务项目连接 (SPA) 和边界。

与这些使用区域端点的全球资源相关的 API 请求将失败,因为这些请求在 API 路径中包含 /global/ 位置。例如,请求 GET .../locations/global/applications/globalApp 将被拒绝。

如需管理全球资源,请使用标准全球端点 https://apphub.googleapis.com。

支持的位置

您可以将区域端点用于提供 App Hub 的所有区域位置。如需查看受支持的区域的列表,请参阅位置。

使用区域端点的工具

您可以配置 Google Cloud CLI,也可以使用区域端点发出直接 REST 或 RPC API 请求。

Google Cloud CLI

如需配置 Google Cloud CLI 以与区域端点搭配使用,请按照以下步骤操作:

  1. 确保您使用的是 Google Cloud CLI 402.0.0 版或更高版本。

  2. 将 api_endpoint_overrides/apphub 属性设置为您要使用的区域端点:

    gcloud config set api_endpoint_overrides/apphub https://apphub.LOCATION.rep.googleapis.com/
    

    将 LOCATION 替换为受支持的区域,例如 us-central1。

或者,将 CLOUDSDK_API_ENDPOINT_OVERRIDES_APPHUB 环境变量设置为端点:

CLOUDSDK_API_ENDPOINT_OVERRIDES_APPHUB=https://apphub.LOCATION.rep.googleapis.com/
gcloud apphub applications list

REST API

如需向区域级端点发出请求,请使用以下 URI,并将 LOCATION 替换为受支持的国家/地区:

https://apphub.LOCATION.rep.googleapis.com

例如,您可以使用以下端点访问 us-central1 区域中的 App Hub:

https://apphub.us-central1.rep.googleapis.com

Terraform

如需将区域端点与 Terraform 搭配使用,您必须替换 Google 提供商块中的 App Hub 端点。

将区域级端点设置为自定义端点后,您将无法使用 Terraform 管理全局资源,例如 google_apphub_service_project_attachment。

provider "google" {
  project = "project-id"
  region = "us-central1"
  # Override the App Hub API endpoint to use a regional endpoint
  apphub_custom_endpoint = "https://apphub.us-central1.rep.googleapis.com/"
}

客户端库

如需将区域端点与客户端库搭配使用,您必须替换客户端选项中的 api_endpoint 属性。

以下示例使用 Python 客户端库。

from google.cloud import apphub_v1
from google.api_core import client_options

rep_endpoint = "apphub.us-central1.rep.googleapis.com"
options = client_options.ClientOptions(api_endpoint=rep_endpoint)

# Instantiate the client
client = apphub_v1.AppHubClient(client_options=options)

限制全球 API 端点的使用

如需帮助强制使用区域端点,您可以使用 constraints/gcp.restrictEndpointUsage 组织政策限制条件来阻止向全球 API 端点发出的请求。如需详细了解如何限制端点用量,请参阅限制端点用量。