直接连接是一种连接解决方案,可在 Google Cloud 客户端库和 Cloud Storage 之间建立经过身份验证的高性能直接 gRPC 网络连接,从而减少延迟时间和连接开销。当您通过直接连接使用 gRPC 连接到 Google Cloud时,通过受支持的 Google Cloud客户端库发起的请求会直接路由到 Cloud Storage,从而绕过 Google Front End (GFE)。
直接连接仅适用于从 Compute Engine 虚拟机 (VM) 发出的请求。
直接连接的要求
当您使用受支持的 Cloud Storage 客户端库连接到 Cloud Storage 时,直接连接默认处于启用状态,但仅当满足以下所有条件时,才会成为可用状态:
与 Cloud Storage 交互的 Compute Engine 虚拟机必须具有关联的服务账号,即使该服务账号没有任何权限也是如此。该服务账号用于在应用层传输安全握手过程中代表 Compute Engine 虚拟机。
与 Cloud Storage 存储桶交互的 Compute Engine 虚拟机必须与相应存储桶位于同一位置。例如,如果存储桶位于
us-central1
,则虚拟机可以位于us-central1-a
。您的路由和防火墙规则允许 IPv4 流量到达
34.126.0.0/18
,并允许 IPv6 流量到达2001:4860:8040::/42
。此外,还必须允许流量到达端点storage.googleapis.com:443
和directpath-pa.googleapis.com:443
。
使用 Google Cloud CLI 检查连接
Google Cloud CLI 可以通过将 2 字节对象上传到存储桶,然后将其删除,来测试存储桶的直接连接诊断信息。如需使用此方法,请确保您拥有存储桶的以下 IAM 权限,这些权限可以使用 Storage Object User (roles/storage.objectUser
) 角色来授予:
storage.objects.create
storage.objects.delete
storage.objects.get
如需检查直接连接是否可用,请运行带有参数 --test-type=DIRECT_CONNECTIVITY
的 gcloud alpha storage diagnose
:
gcloud alpha storage diagnose --test-type=DIRECT_CONNECTIVITY gs://BUCKET_NAME
替换以下内容:
BUCKET_NAME
:存储桶的名称。例如my-bucket
。
如果可以建立连接,您会收到类似于以下内容的响应:
Using my-bucket bucket for the diagnostic tests.
Bucket location : US
Bucket storage class : STANDARD
Running diagnostic: Direct Connectivity Diagnostic...
WARNING: This diagnostic is experimental. The output may change, and checks may be added or removed at any time. Please do not rely on the diagnostic being present.
Finished running diagnostic: Direct Connectivity Diagnostic
Generating diagnostic report...
NAME
Direct Connectivity Diagnostic
┌────────────────────────────┬─────────────────────────────────────────────────────────────────────────┬──────────┐
│ NAME │ PAYLOAD_DESCRIPTION │ RESULT │
├────────────────────────────┼─────────────────────────────────────────────────────────────────────────┼──────────┤
│ Direct Connectivity Upload │ Able to upload object to bucket using Direct Connectivity network path. │ Success. │
└────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘
检查网络配置
如果您在使用 Google Cloud CLI 检查直接连接时遇到 Unable to connect to Traffic Director
错误,请按照以下说明操作,确保您的网络配置允许流量从虚拟机传递到所需端点。
直接连接需要在 directpath-pa.googleapis.com:443
和 storage.googleapis.com:443
托管的服务。如需检查是否可以连接到服务,请对 directpath-pa.googleapis.com:443
或 storage.googleapis.com:443
进行 curl 调用。例如:
curl directpath-pa.googleapis.com:443
如果可以建立连接,您会收到一个没有错误的空响应:
curl: (52) Empty reply from server
如果无法建立连接,您会收到类似于以下内容的错误:
curl: (56) Recv failure: Connection reset by peer