建立及管理端點

本頁說明如何建立及管理 Google Distributed Cloud Connected API 端點上的 Gemini。

本文假設您已按照安裝需求所述,成功部署 Google 認證硬體。

必要條件

本節說明您必須完成的一次性步驟,才能在 GDC 連線 API 端點上部署 Gemini。

啟用必要的 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. 按照「列出可用區」一文所述,列出專案中的 Distributed Cloud connected 可用區。 Google 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 connected 可用區中啟用目標 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 替換為目標專案的 ID。 Google Cloud

  3. 在 Distributed Cloud 連線區域啟用 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. 在目標 Distributed 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 區域。
  5. 取得目標 Distributed Cloud 連線區域的身分與存取權管理政策:

    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 開發人員角色指派給服務帳戶:

    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. 列印服務帳戶的 ID 權杖:

    gcloud alpha zone-management auth print-identity-token \
      --cred-file=SA_CREDENTIAL_FILE \
      --audience=ENDPOINT_URL
    

    更改下列內容:

    • SA_KEY_FILE:先前建立的服務帳戶金鑰檔案。
    • ENDPOINT_URL:端點的完整網址,包括頂層網域尾碼。

列出 GDC 連線 API 端點上部署的 Gemini

如要列出 GDC 連線 API 端點上部署的 Gemini,請按照下列步驟操作:

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 connected 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

如要進一步瞭解適合 Gemini on Google Distributed Cloud connected API 的工作負載,請參閱「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 區域。