您可以通过互联网公开访问区域级和多区域级端点,也可以从 Virtual Private Cloud 内部通过专用连接访问这些端点。本文档介绍了如何公开访问端点。
当您通过公共互联网访问区域级端点时,流量会通过 Google Cloud 标准层级网络进行路由。连接(包括 TLS 终结)在目标区域内处理。
配置对 API 的公共互联网访问
如需配置对区域 API 端点的公共互联网访问权限,请按以下步骤操作。
角色
如需获得创建区域级端点所需的权限,请让管理员在 VPC 网络上授予您以下 IAM 角色:
- Compute Network Admin 角色 (
roles/compute.networkAdmin) - DNS Administrator 角色 (
roles/dns.admin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
准备工作
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
$ gcloud init
启用 Compute Engine、Network Connectivity Center 和 Cloud DNS API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。此外,请为您想通过端点访问的目标服务启用 API。例如,如果您想访问
spanner.me-central2.rep.googleapis.com,请启用 Cloud Spanner API。确保出站流量防火墙规则允许流量流向该端点。VPC 网络的默认防火墙配置允许此流量,因为它包含隐含的允许出站流量规则。确认您未创建优先级更高的出站流量规则来阻止流量。
确定端点
确定工作负载所需的服务以及具体区域或多区域。
区域端点采用以下格式:
SERVICE.REGION.rep.googleapis.com多区域端点采用以下格式:
SERVICE.MULTI_REGION.rep.googleapis.com
修改 DNS 配置
如果您的环境使用专用 DNS 区域替换 googleapis.com 的公共 DNS(这在混合配置中很常见),请执行以下步骤:
更新 DNS 配置以排除
rep.googleapis.com。如需了解详情,请参阅添加、更新和删除记录。修改 DNS 区域设置,以排除
rep.googleapis.com子网域。将这些查询转发到公共 DNS 解析器。如需了解详情,请参阅创建、修改和删除可用区。
配置 Google Cloud CLI
如需替换特定服务的默认 API 端点,请使用 Google Cloud CLI。以下示例使用 gcloud config set 命令在 us-central1 中为 Cloud Storage 设置替换项,并在 europe-west1 中为 Compute Engine 设置替换项。
# Set an override for Cloud Storage in us-central1.
gcloud config set api_endpoint_overrides/storage https://storage.us-central1.rep.googleapis.com/
# Set an override for Compute Engine in europe-west1.
gcloud config set api_endpoint_overrides/compute https://compute.europe-west1.rep.googleapis.com/compute/v1/
设置替换项后,相应服务的 gcloud CLI 命令将使用区域级端点。如需恢复为使用默认的全球端点,请使用 gcloud config unset 命令:
gcloud config unset api_endpoint_overrides/SERVICE
更新客户端 SDK
大多数 Google Cloud 客户端库都允许您在客户端初始化期间指定自定义端点。
Python
将 client_options 与 api_endpoint 搭配使用。
from google.cloud import SERVICE
from google.api_core.client_options import ClientOptions
options = ClientOptions(api_endpoint='https://SERVICE.REGION.rep.googleapis.com')
SERVICE_client = SERVICE.Client(client_options=options, project='PROJECT_ID')
# ... use SERVICE_client as usual
替换以下内容:
SERVICE:服务的名称REGION:端点所在的区域PROJECT_ID:您的 Google Cloud项目的 ID
Go
在创建客户端期间使用 option.WithEndpoint。
client, err := SERVICE.NewClient(ctx, projID,
option.WithEndpoint("https://SERVICE-my-endpoint.REGION.rep.googleapis.com"), // Override endpoint
替换以下内容:
SERVICE:服务的名称REGION:端点所在的区域
.NET
在客户端构建器中配置 Endpoint。
Java
在服务设置构建器上使用 setEndpoint。
以下示例使用 Java 连接到 Cloud Vision API 的端点。
ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
.setEndpoint("https://vision.REGION.rep.googleapis.com")
.build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);
参考文档
后续步骤
- 通过后端访问区域性 Google API。
- 请参阅 Google Cloud 支持的区域服务端点。