本页面介绍了如何创建和管理 Gemini on Google Distributed Cloud Connected API 端点。
本文档假定您已按照安装要求中所述成功部署了经过 Google 认证的硬件。
前提条件
本部分介绍了在部署 Gemini on GDC 连接的 API 端点之前必须完成的一次性步骤。
启用所需的 API
您必须在目标 Google Cloud 项目中启用以下 API:
aiplatform.googleapis.com
anthos.googleapis.com
anthosaudit.googleapis.com
anthosgke.googleapis.com
cloudresourcemanager.googleapis.com
connectgateway.googleapis.com
compute.googleapis.com
container.googleapis.com
edgecontainer.googleapis.com
gdchardwaremanagement.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
gkeonprem.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
kubernetesmetadata.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
multiclustermetering.googleapis.com
opsconfigmonitoring.googleapis.com
oslogin.googleapis.com
serviceusage.googleapis.com
stackdriver.googleapis.com
storage.googleapis.com
sts.googleapis.com
如需了解如何启用 API,请参阅启用服务。
授予所需角色
您必须配置以下必需的角色:
对于用于管理 Gemini on GDC Connected API 部署的账号,请授予分布式云 Edge Container API 角色和权限中列出的角色。
对于用于在 GDC 连接的 API 端点上与 Gemini 交互的账号,请授予Vertex AI API 角色和权限中列出的角色。
获取有关目标 Distributed Cloud connected 可用区的信息
如需获取目标 Distributed Cloud connected 可用区的名称,请执行以下操作:
如列出可用区中所述,列出 Google Cloud 项目中的 Distributed Cloud 已连接可用区。
获取有关目标可用区的详细信息,如获取有关可用区的信息中所述。
获取有关 Distributed Cloud connected 可用区中已获认证的机器的信息
如需获取 Distributed Cloud connected 可用区中目标已认证机器的名称,请执行以下操作:
列出目标 Distributed Cloud connected 可用区中的 Distributed Cloud connected 机器,如列出可用区中的机器中所述。
获取有关目标机器的详细信息,如获取有关机器的信息中所述。
启用本地 AI Platform API 和 Vertex AI API 服务
在目标 Distributed Cloud 连接区域中启用目标 Google Cloud 项目:
gcloud zone-management projects enable PROJECT_ID \ --organization ORGANIZATION_ID \ --location REGION \ --zones ZONE
替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。ORGANIZATION_ID
:目标 Google Cloud 组织的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
在目标 Google Cloud 项目上启用 AI Platform 服务:
gcloud services enable aiplatform.googleapis.com --project PROJECT_ID
将
PROJECT_ID
替换为目标 Google Cloud 项目的 ID。在分布式云连接区中启用 Vertex AI API 服务:
gcloud zone-management services enable vertex --project PROJECT_ID \ --location REGION \ --zones ZONE
替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
配置端点以进行 DNS 解析
获取目标 Distributed Cloud 连接区域的托管 DNS 地址、顶级域名 (TLD) 和证书授权机构 (CA) 证书:
gcloud alpha zone-management zones describe ZONE \ --organization ORGANIZATION_ID \ --location REGION
替换以下内容:
ORGANIZATION_ID
:目标 Google Cloud 组织的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
以下示例展示了此命令的输出:
-----BEGIN CERTIFICATE----- MIIDATCCAemgAwIBAgIRAOsIG15loHwPBpjQe9FZYUAwDQYJKoZIhvcNAQELBQAw GjEYMBYGA1UEAxMPZ2RjZS1jbHVzdGVyLWNhMB4XDTI1MDcyOTEyMTAwNloXDTQ5 MDcyMzEyMTAwNlowGjEYMBYGA1UEAxMPZ2RjZS1jbHVzdGVyLWNhMIIBIjANBgkq hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3YdoASubyzHdgZ0vIU5g1dxdFRT1T4wc o9FaRXftSTDfiNVNKj/vC+De9EZokpyLZkdZNep6p0TLJAsPZYq+yiTCiaJ6Ihwy 3LBn8j2PessSIte2LUhkft1yCQqfkgpYfKcjM3IauIXETS961m0uJb4sntgLJ4nM Scb5vpW1f70D1V27bqnEsE7+rbxzeFTosHC+DGBcLqIE0ptdionm/4xoltH7yv2O qKfcc/46TyPwGRzxifEdNzjKZ1kRdTThESfW+L7TQNv6VF5TC4FPksYX/ID/X7Fz G9BRey0mikvc4J7qQIeyMRlpIKqRh/1FCdRDC9vVEQipT2Ls0MwwTwIDAQABo0Iw QDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUmES2 pyMLOnnsKug8amFmenOaTr8wDQYJKoZIhvcNAQELBQADggEBADn71zo7cNFZ0kQE C2lS6b0DLz4Nd1yCz5fGDvxzcTRdOT60wyq/TAx1YlYse33cGk/cQ7RkVsM56UX1 T8RMvi09UcEQG3wFrYuU62ZjXF1a3RrOnHxyvVdyvbUYAO5gvzBQrj4tMZYX9kL3 6H/9FwXuHVyqWAm0xpWvZfszwJjY4C1VxoDwmRiZPYzTrWI6/rY0QmORgcZXLnPL OVufbAX30aRGdTRnVXxE0fKmXwzbtbSHilU5hJT7EQWMvV5hJfyNqdXG0gbrhrsk sB0yRjk5PHQd9pOMcXcYIgfNnUEcQl4qeSll3g5cZ+cRrcTO1USFLRo8dcbQpJ6Y 6ykzvKs= -----END CERTIFICATE----- createTime: '2025-08-25T20:46:50.269384028Z' dnsServers: - ipAddress: 10.200.1.10 tld: my-tld.google.private.goog name: organizations/my-organization/locations/my-region/zones/my-zone state: STATE_RUNNING
将证书存储到文件中。您将在后续步骤中使用此文件。
为端点创建 DNS 配置,如下所示:
mkdir /etc/systemd/resolved.conf.d echo '[Resolve] DNS=DNS_SERVER_ADDRESS Domains=~TOP_LEVEL_DOMAIN' > /etc/systemd/resolved.conf.d/dns.conf sudo systemctl restart systemd-resolved
替换以下内容:
DNS_SERVER_ADDRESS
:DNS 服务器的 IP 地址。TOP_LEVEL_DOMAIN
:端点的顶级网域。
部署 Gemini on GDC 连接的 API 端点
如需部署 Gemini on GDC 连接的 API 端点,请执行以下操作:
创建端点:
gcloud ai endpoints create \ --project=PROJECT_ID \ --region=REGION \ --gdc-zone=ZONE \ --display_name=ENDPOINT_NAME
替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。ENDPOINT_NAME
:可唯一标识相应端点的有意义的名称。
部署模型:
gcloud ai endpoints deploy-model ENDPOINT_NAME \ --region=REGION \ --gdc-zone=ZONE \ --model=MODEL_PUBLIC_ID
替换以下内容:
ENDPOINT_NAME
:目标端点的名称。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。MODEL_PUBLIC_ID
:模型面向公众的 ID。如需查看支持的模型的列表,请参阅支持的模型。
获取端点地址:
gcloud ai endpoints describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION
替换以下内容:
ENDPOINT_NAME
:目标端点的名称。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。
在目标分布式云连接区域中为端点创建服务账号:
gcloud alpha zone-management service-accounts create SERVICE_ACCOUNT \ --project PROJECT_ID \ --location REGION \ --zone ZONE
替换以下内容:
SERVICE_ACCOUNT
:可唯一标识相应服务账号的有意义的名称。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
获取目标 Distributed Cloud 已连接区域的 Identity and Access Management 政策:
gcloud alpha zone-management zones get-iam-policy ZONE \ --project PROJECT_ID \ --location REGION
替换以下内容:
ZONE
:目标 Distributed Cloud Connected 可用区。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。
将 AI Platform Developer 角色分配给该服务账号:
gcloud alpha zone-management zones set-iam-policy
\ --project PROJECT_ID \ --location REGION \ --zone ZONE 替换以下内容:
POLICY_FILE
:包含角色分配政策的 JSON 或 YAML 文件。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
以下是 JSON 格式的政策示例:
"bindings": [ { "role": "roles/aiplatform.geminiDeveloper", "members": [ "serviceAccount": "projects/my-project/locations/my-region/serviceAccounts/my-service-account" ] } ], "etag": ""
以下是 YAML 格式的政策示例:
bindings: - role: roles/aiplatform.geminiDeveloper members: - serviceAccount: projects/my-project/locations/my-region/serviceAccounts/my-service-account etag: ""
为服务账号生成密钥:
gcloud alpha zone-management service-accounts keys create
\ --service-account \ --project \ --location \ --ca-cert-path 替换以下内容:
SA_KEY_FILE
:用于存储生成的服务账号密钥的文件。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。CA_CERTIFICATE_FILE
:您之前创建的 CA 证书文件。
输出服务账号的身份令牌:
gcloud alpha zone-management auth print-identity-token \ --cred-file=SA_CREDENTIAL_FILE \ --audience=ENDPOINT_URL
替换以下内容:
SA_KEY_FILE
:您之前创建的服务账号密钥文件。ENDPOINT_URL
:端点的完全限定网址,包括顶级网域后缀。
列出已部署的 Gemini on GDC 连接 API 端点
如需列出已部署的 Gemini on GDC Connected API 端点,请执行以下操作:
gcloud ai endpoints list \ --project=PROJECT_ID \ --region=REGION \ --gdc-zone=ZONE
替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。
获取有关 Gemini on GDC connected API 端点的信息
如需获取有关已部署的 Gemini on GDC 连接 API 端点的信息,请执行以下操作:
gcloud ai endpoints describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION
替换以下内容:
ENDPOINT_NAME
:目标端点的名称。PROJECT_ID
:目标 Google Cloud 项目的 ID。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。
与 Google Distributed Cloud Connected API 端点上的 Gemini 进行互动
Gemini on GDC 连接的 API 端点支持通过 ChatCompletions
API 和 ListAvailableModels
API 进行互动。使用这些 API 以编程方式与端点进行交互。
以下是通过 Chat Completions API 发出的请求示例:
API_ENDPOINT="https://${IG_FQDN}/v1/projects/${PROJECT}/locations/${LOCATION}/chat/completions"
FLOW_ID="gemini-2.0-flash-001"
REQUEST_BODY='{
> "model": "'${FLOW_ID}'",
> "messages": [
> {
> "role": "system",
> "content": "You are a helpful assistant."
> },
> {
> "role": "user",
> "content": "Hello!"
> }
> ],
}'
curl -X POST -vv -k \
"${API_ENDPOINT}" \
-d "${REQUEST_BODY}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${BEARER_TOKEN}" \
-H "x-goog-user-project: projects/${PROJECT}"
以下示例展示了以文档作为输入的多模态 Chat Completions API 请求:
BASE64_IMAGE=$(base64 -w 0 sample-image.jpg)
{
"model": "gemini-1.5-flash-002",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is this image?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,'"${BASE64_IMAGE}"'"
}
}
]
}
]
}
以下是 ListAllAvailableModels API 请求的示例:
# The request body -d parameter is intentionally omitted.
grpcurl -insecure \
-H "Authorization: Bearer ${BEARER_TOKEN}" \
-H "x-goog-user-project: projects/${PROJECT}" \
"${IG_FQDN}:443" \
cloud.gdc.ai.inference.inferencegateway.GeminiMetadataService.ListAvailableModels
如需详细了解适合使用 Google Distributed Cloud Connected API 的 Gemini 的工作负载,请参阅 Gemini 概览。
删除 Gemini on Google Distributed Cloud Connected API 端点
如需删除已连接的 Gemini on GDC API 端点,请执行以下操作:
取消部署模型:
gcloud ai endpoints undeploy-model ENDPOINT_NAME \ --region=REGION \ --gdc-zone=ZONE \ --model=MODEL_PUBLIC_ID
替换以下内容:
ENDPOINT_NAME
:目标端点的名称。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。ZONE
:目标 Distributed Cloud Connected 可用区。MODEL_PUBLIC_ID
:模型面向公众的 ID。如需查看支持的模型的列表,请参阅支持的模型。
删除端点:
gcloud ai endpoints delete ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION
替换以下内容:
PROJECT_ID
:目标端点的名称。REGION
:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。