区域性端点

本页面介绍了 Bigtable 区域端点,说明在使用它们之前应考虑的事项,以及如何使用 Google Cloud CLI 设置端点。

您可以使用全球或区域性服务端点向 Bigtable 发送请求。Bigtable 的区域性端点可确保实例的数据在数据所在的 Bigtable 区域中存储和处理。为满足项目的安全与合规性需求,您可能需要在特定地理区域中使用 Bigtable 的区域性端点。

在阅读本文档之前,您应先熟悉实例、集群和节点以及应用配置文件

主要概念包括:

  • 服务端点服务端点是指定 API 服务的网络地址的基础网址。Bigtable 具有全球和区域性端点。

  • 全球端点全球端点使 Bigtable 可以将 Bigtable 实例中的数据存储和路由到包含该实例集群的任何区域。Cloud Bigtable API (Data API) 的全球端点为 bigtable.googleapis.com。默认的 Data API 端点访问全球端点。

  • 区域性端点区域性端点会实施区域限制,以确保在指定区域存储和处理数据。

您只能将区域端点与 Cloud Bigtable API (Data API) 搭配使用。Cloud Bigtable Admin API 不支持区域端点。

何时使用区域性端点

与全球端点相比,使用 Bigtable 区域性端点的优势在于区域性端点可提供区域隔离和保护,以满足安全、合规性和监管要求。

如果您的数据位置必须受到限制和控制以符合监管要求,请使用区域性端点。

如果您没有严格的区域限制要求,请使用全球端点。

使用区域性端点时的注意事项

集群位置

您必须先在要隔离数据的区域中创建至少具有一个集群的实例,然后才能使用区域性端点。所有 Bigtable 位置都提供 Bigtable 区域性端点。

您只能使用属于您要隔离数据的区域的区域性端点。例如,如果您要访问的集群位于 us-central1 区域,则无法使用 us-west1-bigtable.googleapis.com 响应请求。

如果您尝试使用一个区域性端点访问其他区域中的集群,请求将被拒绝并显示 FAILED_PRECONDITION 错误和一条消息,表明使用指定的集群和端点无法访问任何集群。例如,发送给 us-central1 以访问 us-west1-bigtable.googleapis.com 中集群的请求会失败并显示 FAILED_PRECONDITION。如需详细了解 FAILED_PRECONDITION,请参阅 Bigtable 状态代码

应用配置文件

设置区域性端点后,您必须使用配置为将请求路由到端点所在区域中的集群的应用配置文件。

如果您尝试使用配置为从端点向不同区域中的单个集群(使用单集群路由)或多个集群(使用多集群路由)发送写入请求的应用配置文件,则会收到“不满足前提条件”错误消息 There are no clusters accessible through this app profile and the REGION_NAME endpoint.。如需详细了解集群路由,请参阅路由政策

如果您使用配置为路由到实例中的任何集群以实现高可用性 (HA) 的应用配置文件,并且您还使用区域性端点,则区域性端点可确保所有请求仅路由到其区域中的集群(即使实例有集群位于其他区域)。自动故障切换会受到限制,因此请求只会从端点所在区域中的集群响应。

假设这样一个示例:您使用配置为多集群路由的应用配置文件将请求发送到在 us-west1-a(俄勒冈)、us-west1-b(俄勒冈)和 us-central1-a(爱荷华)有集群的实例。如果您将这些请求发送到 us-central1-bigtable.googleapis.com 区域性端点,则即使您未重新配置应用配置文件,所有请求也会由 us-central1-a 响应。无法由 us-central1-a 响应的请求则会失败。

复制

区域级端点不会影响或阻止复制。如果您在区域 A 中配置区域性端点,然后在区域 B 中向实例添加集群,则数据会复制到区域 B,就像使用全球端点一样。

如需避免将数据复制到另一个区域,请仅在需要的区域中创建集群。

如需阻止组织中的用户在端点区域外添加集群,您可以设置使用位置限制条件的组织政策。如需了解详情,请参阅限制资源位置

是否空闲

使用区域端点时,不能将 Bigtable 配置为达到 >=99.999% 的每月正常运行时间百分比。大于等于 99.999% 的每月正常运行时间百分比需要对跨区域边界的请求自动进行故障切换,而区域端点会阻止此操作,因为它会将所有请求限制到单个区域。如需详细了解每月正常运行时间百分比,请参阅 Bigtable 服务等级协议 (SLA)

区域性端点语义

Bigtable 区域性端点名称的第一个片段是 Google Cloud 区域名称。区域性端点采用 REGION-bigtable.googleapis.com 格式,其中 REGION 是区域名称,例如 northamerica-northeast2

例如,如果要隔离爱荷华区域的数据,因为爱荷华区域的名称为 us-central1,因此爱荷华区域的区域性端点网址为 us-central1-bigtable.googleapis.com。如需查看可用区域的列表,请参阅 Bigtable 位置

指定区域性端点

您可以使用 Google Cloud CLI、cbt CLI 或 Cloud Bigtable 客户端库指定 Bigtable 区域端点。

gcloud

如需使用 gcloud CLI 指定区域性端点并替换全球端点,请运行以下命令:

gcloud config set api_endpoint_overrides/bigtable https://REGION-bigtable.googleapis.com/

REGION 替换为您要设置区域性端点的区域,例如 us-central1europe-west1

例如,如需将区域性端点配置为 us-central1,请运行以下命令:

gcloud config set api_endpoint_overrides/bigtable https://us-central1-bigtable.googleapis.com/

cbt

如需使用 cbt CLI 指定区域性端点并替换全球端点,您可以在请求中使用 --data-endpoint 选项,也可以将以下内容添加到 ~/.cbtrc 文件中。如需详细了解如何创建 ~/.cbtrc 文件,请参阅 cbt CLI 参考文档

data-endpoint = https://REGION-bigtable.googleapis.com/

REGION 替换为您要设置区域性端点的区域,例如 us-central1europe-west1

例如,如需将区域性端点配置为 us-central1,请将以下内容添加到 ~/.cbtrc 文件中:

data-endpoint = https://us-central1-bigtable.googleapis.com/

指定全球端点

gcloud

如需将区域性端点重新配置为全球端点,请运行以下命令:

gcloud config unset api_endpoint_overrides/bigtable

cbt

如需指定全球端点,请在发送请求时不使用 --data-endpoint 选项。如果您之前向 ~/.cbtrc 文件添加了 data-endpoint 行,请将其删除。

后续步骤