创建和管理端点

本页面介绍了如何创建和管理 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,请参阅启用服务

授予所需角色

您必须配置以下必需的角色:

获取有关目标 Distributed Cloud connected 可用区的信息

如需获取目标 Distributed Cloud connected 可用区的名称,请执行以下操作:

  1. 列出可用区中所述,列出 Google Cloud 项目中的 Distributed Cloud 已连接可用区。

  2. 获取有关目标可用区的详细信息,如获取有关可用区的信息中所述。

获取有关 Distributed Cloud connected 可用区中已获认证的机器的信息

如需获取 Distributed Cloud connected 可用区中目标已认证机器的名称,请执行以下操作:

  1. 列出目标 Distributed Cloud connected 可用区中的 Distributed Cloud connected 机器,如列出可用区中的机器中所述。

  2. 获取有关目标机器的详细信息,如获取有关机器的信息中所述。

启用本地 AI Platform API 和 Vertex AI API 服务

  1. 在目标 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 可用区。
  2. 在目标 Google Cloud 项目上启用 AI Platform 服务:

    gcloud services enable aiplatform.googleapis.com --project PROJECT_ID
    

    PROJECT_ID 替换为目标 Google Cloud 项目的 ID。

  3. 在分布式云连接区中启用 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 解析

  1. 获取目标 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
    

    将证书存储到文件中。您将在后续步骤中使用此文件。

  2. 为端点创建 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 端点,请执行以下操作:

  1. 创建端点:

    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:可唯一标识相应端点的有意义的名称。
  2. 部署模型:

    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。如需查看支持的模型的列表,请参阅支持的模型
  3. 获取端点地址:

    gcloud ai endpoints describe ENDPOINT_NAME \
      --project=PROJECT_ID \
      --region=REGION
    

    替换以下内容:

    • ENDPOINT_NAME:目标端点的名称。
    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • REGION:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。
  4. 在目标分布式云连接区域中为端点创建服务账号:

    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 可用区。
  5. 获取目标 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 区域。
  6. 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: ""
    
  7. 为服务账号生成密钥:

    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 证书文件。
  8. 输出服务账号的身份令牌:

    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 端点,请执行以下操作:

  1. 取消部署模型:

    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。如需查看支持的模型的列表,请参阅支持的模型
  2. 删除端点:

    gcloud ai endpoints delete ENDPOINT_NAME \
       --project=PROJECT_ID \
       --region=REGION
    

    替换以下内容:

    • PROJECT_ID:目标端点的名称。
    • REGION:已创建目标 Distributed Cloud connected 可用区的 Google Cloud 区域。