建立及管理端點

本頁說明如何建立及管理 Google Distributed Cloud 連結網路方案 API 端點上的 Gemini。

必要條件

本節說明部署 Gemini on GDC 連線 API 端點前,必須完成的一次性步驟。完成開機機器上的步驟。

您必須使用具備 Edge Container Zone Viewer 角色的 IT 管理員帳戶,完成本節中的步驟。完成本節中的步驟後,請將收集到的資訊 (包括 CA 憑證和 DNS 伺服器 IP 位址) 提供給 Google Cloud 專案管理員,由對方按照「部署 Gemini on GDC 連線 API 端點」一文的說明部署端點。

完成硬體啟動程序

完成本頁的步驟前,請務必先完成下列事項:

  • 按照「安裝需求」一文的說明,成功部署 Google 認證硬體。

  • 與 Google 代表合作,建立必要的 Distributed Cloud 連線叢集。

授予必要角色

您必須設定下列必要角色:

取得目標 Distributed Cloud connected 可用區的相關資訊

如要取得目標 Distributed Cloud connected 可用區的名稱,請按照下列步驟操作:

  1. 取得目標 Google Cloud 機構 ID 的名稱:

    gcloud organizations list
    
  2. 列出機構中的 Distributed Cloud connected 可用區: Google Cloud

    gcloud alpha zone-management zones list \
       --organization ORGANIZATION_ID \
       --location REGION
    

    更改下列內容:

    • ORGANIZATION_ID:目標 Google Cloud 機構的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。公開測試期間,系統僅支援 us-west2 區域。
  3. 取得目標區域的詳細資訊:

    gcloud alpha zone-management zones describe ZONE \
       --organization ORGANIZATION_ID \
       --location REGION
    

    更改下列內容:

    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
    • ORGANIZATION_ID:目標 Google Cloud 機構的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。公開測試期間,系統僅支援 us-west2 區域。

取得 Distributed Cloud connected 可用區中通過認證的機器相關資訊

如要取得 Distributed Cloud connected 可用區中目標認證機器的名稱,請按照下列步驟操作:

  1. 如「列出可用區中的機器」一文所述,列出目標 Distributed Cloud connected 可用區中的 Distributed Cloud connected 機器。

  2. 如「取得機器相關資訊」一文所述,取得目標機器的詳細資訊。

啟用本機 AI Platform API 和 Vertex AI API 服務

請使用具備「Edge Container Zonal Project Admin」角色的 IT 管理員帳戶,完成本節中的步驟。

  1. 在目標 Distributed Cloud 連線區域中啟用目標 Google Cloud 專案:

    gcloud alpha zone-management projects enable PROJECT_ID \
       --organization ORGANIZATION_ID \
       --location REGION \
       --zone ZONE
    

    更改下列內容:

    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • ORGANIZATION_ID:目標 Google Cloud 機構的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
  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 alpha zone-management services enable vertex --project PROJECT_ID \
       --location REGION \
       --zone ZONE
    

    更改下列內容:

    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • ZONE:目標 Distributed Cloud 連結網路方案可用區。

設定端點以進行 DNS 解析

  1. 取得目標 Distributed Cloud 連線區域的代管 DNS 位址、頂層網域 (TLD) 和憑證授權單位 (CA) 憑證。

    gcloud alpha zone-management zones describe ZONE \
      --organization ORGANIZATION_ID \
      --location REGION \
      --format="value(certificateAuthorities)" \
      > CA_CERTIFICATE_FILE
    

    更改下列內容:

    • ORGANIZATION_ID:目標 Google Cloud 機構的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
    • CA_CERTIFICATE_FILE:儲存指令輸出憑證酬載的檔案。您稍後會使用這個檔案產生服務帳戶金鑰。

    指令會傳回類似以下內容的輸出結果,並儲存在檔案中:

    -----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: DNS_SERVER_ADDRESS
    tld: TOP_LEVEL_DOMAIN
    name: organizations/ORGANIZATION_ID/locations/REGION/zones/ZONE
    state: STATE_RUNNING
    
  2. 使用上一步驟取得的 DNS 伺服器 IP 位址和頂層網域 (TLD) 名稱,為端點建立 DNS 設定,如下所示。您必須從與 Gemini on GDC connected API 認證機器位於相同區域網路的機器執行這項指令。

    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 connected API 端點

如要部署 Gemini on GDC connected API 端點,請使用 Google Cloud 專案 管理員帳戶執行下列操作:

  1. 建立端點:

    gcloud beta ai endpoints create \
       --project=PROJECT_ID \
       --region=REGION \
       --gdc-zone=ZONE \
       --display-name=ENDPOINT_NAME \
       --endpoint-id=ENDPOINT_ID
    

    更改下列內容:

    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
    • ENDPOINT_NAME:這個端點的名稱。
    • ENDPOINT_ID:(選用) 這個端點的專屬 ID。 如省略此欄位,系統會產生隨機 ID。
  2. 部署模型:

    gcloud beta ai endpoints deploy-model ENDPOINT_ID \
      --display-name=ENDPOINT_NAME \
      --model=MODEL_PUBLIC_ID \
      --region=REGION
    

    更改下列內容:

    • ENDPOINT_ID:目標端點的 ID。
    • ENDPOINT_NAME:目標端點的名稱。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • MODEL_PUBLIC_ID:模型對外公開的 ID。如需支援的型號清單,請參閱「支援的型號」。
  3. 列出已部署的端點:

    gcloud beta ai endpoints list \
      --project=PROJECT_ID \
      --region=REGION
    

    更改下列內容:

    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。

    記下目標端點的 ID。

  4. 取得端點位址:

    gcloud beta ai endpoints describe ENDPOINT_ID \
      --project=PROJECT_ID \
      --region=REGION
    

    更改下列內容:

    • ENDPOINT_ID:目標端點的 ID。
    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
  5. 在目標 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 連結網路方案可用區。
  6. 取得目標 Distributed Cloud 連線區域的身分與存取權管理政策:

    gcloud alpha zone-management zones get-iam-policy ZONE \
      --project PROJECT_ID \
      --location REGION
    

    更改下列內容:

    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
  7. AI Platform 開發人員角色指派給服務帳戶:

    gcloud alpha zone-management zones set-iam-policy POLICY_FILE \
      --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 連結網路方案可用區。

    以下是 JSON 格式的政策範例:

    "bindings": [
       {
          "role": "roles/aiplatform.geminiDeveloper",
          "members": [
          "serviceAccount": "projects/PROJECT_ID/locations/REGION/serviceAccounts/SERVICE_ACCOUNT"
          ]
       }
    ]
    "etag": ""
    

    以下是 YAML 格式的政策範例:

    bindings:
    - role: roles/aiplatform.geminiDeveloper
    members:
    - serviceAccount: projects/PROJECT_ID/locations/REGION/serviceAccounts/SERVICE_ACCOUNT
    etag: ""
    

    更改下列內容:

    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • SERVICE_ACCOUNT:可明確識別這個服務帳戶的名稱。
  8. 產生服務帳戶金鑰:

    gcloud alpha zone-management service-accounts keys create SA_KEY_FILE \
      --service-account SERVICE_ACCOUNT \
      --project PROJECT_ID \
      --location REGION \
      --ca-cert-path CA_CERTIFICATE_FILE
    

    更改下列內容:

    • SA_KEY_FILE:用於儲存產生的服務帳戶金鑰的檔案。
    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • CA_CERTIFICATE_FILE:您先前建立的 CA 憑證檔案。
  9. 取得端點的完整網址:

    gcloud beta ai endpoints describe ENDPOINT_ID \
      --project=PROJECT_ID \
      --region=REGION
    
  10. 列印服務帳戶的身分識別權杖。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

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

    更改下列內容:

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

列出已部署的 Gemini on GDC connected API 端點

如要列出已部署的 Gemini on GDC connected API 端點,請按照下列步驟操作:

gcloud beta 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 連結網路方案可用區。

取得 Gemini on GDC connected API 端點的相關資訊

如要取得已部署的 Gemini on GDC connected API 端點相關資訊,請按照下列步驟操作:

gcloud beta ai endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION
   

更改下列內容:

  • ENDPOINT_ID:目標端點的 ID。
  • PROJECT_ID:目標 Google Cloud 專案的 ID。
  • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。

與 Google Distributed Cloud 連結網路方案上的 Gemini API 端點互動

Gemini on GDC connected API 端點支援透過 ChatCompletions API 和 ListAvailableModels API 互動。使用這些 API,以程式輔助方式與端點互動。

以下是透過 ChatCompletions API 發出的要求範例。這項要求產生的不記名權杖有效期限為 12 小時。

  1. 在殼層環境中設定下列變數:

    MODEL_NAME="MODEL_NAME"
    USER_CONTENT="Who invented the light bulb?"
    PROJECT="PROJECT_ID"
    LOCATION="REGION"
    IG_FQDN="inference-gateway.vai.ZONE.google.private.goog"
    CRED_FILE="SA_KEY_FILE"
    API_ENDPOINT="https://${IG_FQDN}/v1/projects/${PROJECT}/locations/${LOCATION}/chat/completions"
    

    更改下列內容:

    • MODEL_NAME:目標模型的名稱。
    • PROJECT_ID:目標 Google Cloud 專案的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • SA_KEY_FILE:先前建立的服務帳戶金鑰檔案。
  2. 列印不記名憑證。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    BEARER_TOKEN=$(gcloud alpha zone-management auth print-identity-token --cred-file="${CRED_FILE}" --audience="https://${IG_FQDN}")
    echo $BEARER_TOKEN
    
  3. 建構酬載:

    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_NAME}",
    "messages": [
       {
          "role": "system",
          "content": "Pizza for everyone!"
       },
       {
          "role": "user",
          "content": "${USER_CONTENT}"
       }
    ],
    "stream": false
    }
    EOF
    )
    
  4. 將要求傳送至端點。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

多模態 ChatCompletions API 要求範例,酬載為 JPEG 圖片

以下是多模態 ChatCompletions API 要求酬載的範例,其中以 JPEG 圖片做為輸入內容:

  1. 建構酬載:

    BASE64_IMAGE=$(base64 -w 0 JPEG_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_NAME}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "What is this image?"
                },
                {
                   "type": "image_url",
                   "image_url": {
                      "url": "data:image/jpeg;base64,${BASE64_IMAGE}"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. 將要求傳送至端點。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

多模態 ChatCompletions API 要求範例,包含 PDF 文件酬載

以下是多模態 ChatCompletions API 要求酬載的範例,其中以 PDF 文件做為輸入內容:

  1. 建構酬載:

    BASE64_PDF=$(base64 -w 0 PDF_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_NAME}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Please summarize this document."
                },
                {
                   "type": "input_document",
                   "input_document": {
                      "data": "data:application/pdf;base64,${BASE64_PDF}",
                      "format": "pdf"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. 將要求傳送至端點。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

多模態 ChatCompletions API 要求範例 (含音訊酬載)

以下是多模態 ChatCompletions API 要求酬載的範例,其中輸入內容為音訊檔案:

  1. 建構酬載:

    BASE64_AUDIO=$(base64 -w 0 AUDIO_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_NAME}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Transcribe this speech for me."
                },
                {
                   "type": "input_audio",
                   "input_audio": {
                      "data": "data:audio/mp3;base64,${BASE64_AUDIO}",
                      "format": "mp3"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. 將要求傳送至端點。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

多模態 ChatCompletions API 要求範例,附有影片酬載

以下是多模態 ChatCompletions API 要求酬載的範例,其中包含輸入的影片檔案:

  1. 建構酬載:

    BASE64_VIDEO=$(base64 -w 0 VIDEO_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_NAME}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Could you summarize this video for me?"
                },
                {
                   "type": "input_video",
                   "input_video": {
                      "data": "data:video/wmv;base64,${BASE64_VIDEO}",
                      "format": "wmv"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. 將要求傳送至端點。您必須從與 Gemini on GDC connected API 認證機器位於相同本機網路的機器執行此指令。

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

ListAllAvailableModels API 要求範例

以下是 ListAllAvailableModels API 要求的範例:

BEARER_TOKEN=$(gcloud alpha zone-management auth print-identity-token --cred-file="${CRED_FILE}" --audience="https://${IG_FQDN}")
# The request body -d parameter is intentionally omitted.
grpcurl -insecure \
  -H "Authorization: Bearer ${BEARER_TOKEN}" \
  -H "x-goog-user-project: projects/${PROJECT}" \
  "${IG_FQDN}" \
  cloud.gdc.ai.inference.inferencegateway.GeminiMetadataService.ListAvailableModels

刪除 Gemini on Google Distributed Cloud 連結網路方案 API 端點

如要刪除 Gemini on GDC connected API 端點,請按照下列步驟操作:

  1. 取消部署模型:

    gcloud beta ai endpoints undeploy-model ENDPOINT_ID \
      --region=REGION \
      --gdc-zone=ZONE \
      --model=MODEL_PUBLIC_ID
    

    更改下列內容:

    • ENDPOINT_ID:目標端點的 ID。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。
    • ZONE:目標 Distributed Cloud 連結網路方案可用區。
    • MODEL_PUBLIC_ID:模型對外公開的 ID。如需支援的型號清單,請參閱「支援的型號」。
  2. 刪除端點:

    gcloud beta ai endpoints delete ENDPOINT_ID \
       --project=PROJECT_ID \
       --region=REGION
    

    更改下列內容:

    • ENDPOINT_ID:目標端點的 ID。
    • PROJECT_ID:目標端點的名稱。
    • REGION:已建立目標 Distributed Cloud connected 區域的 Google Cloud 區域。

排解端點問題

如果 Gemini on GDC connected API 端點發生故障,請與 Google 代表聯絡,以進行疑難排解。