Membuat dan mengelola endpoint

Halaman ini menjelaskan cara membuat dan mengelola endpoint API yang terhubung ke Gemini di Google Distributed Cloud.

Dokumen ini mengasumsikan bahwa Anda telah berhasil men-deploy hardware bersertifikasi Google seperti yang dijelaskan dalam Persyaratan penginstalan.

Prasyarat

Bagian ini menjelaskan langkah-langkah sekali saja yang harus Anda selesaikan sebelum dapat men-deploy Gemini di endpoint API yang terhubung ke GDC.

Mengaktifkan API yang diperlukan

Anda harus mengaktifkan API berikut di target Google Cloud project:

  • 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

Untuk mengetahui informasi tentang cara mengaktifkan API, lihat Mengaktifkan layanan.

Memberikan peran yang diperlukan

Anda harus mengonfigurasi peran wajib berikut:

Mendapatkan informasi tentang zona target Distributed Cloud terhubung

Untuk mendapatkan nama zona target yang terhubung ke Distributed Cloud, lakukan hal berikut:

  1. Buat daftar zona yang terhubung Distributed Cloud di project Google Cloud Anda seperti yang dijelaskan dalam Membuat daftar zona.

  2. Dapatkan informasi mendetail tentang zona target seperti yang dijelaskan dalam Mendapatkan informasi tentang zona.

Mendapatkan informasi tentang mesin bersertifikasi di zona Distributed Cloud terhubung Anda

Untuk mendapatkan nama mesin bersertifikasi target di zona yang terhubung ke Distributed Cloud, lakukan hal berikut:

  1. Mencantumkan mesin yang terhubung ke Distributed Cloud di zona yang terhubung ke Distributed Cloud target seperti yang dijelaskan dalam Mencantumkan mesin dalam zona.

  2. Dapatkan informasi mendetail tentang mesin target seperti yang dijelaskan dalam Mendapatkan informasi tentang mesin.

Aktifkan layanan AI Platform API dan Vertex AI API lokal

  1. Aktifkan project Google Cloud target di zona yang terhubung dengan Distributed Cloud target Anda:

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

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud target.
    • ORGANIZATION_ID: ID organisasi Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.
  2. Aktifkan layanan AI Platform di target Google Cloud project:

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

    Ganti PROJECT_ID dengan ID project Google Cloud target.

  3. Aktifkan layanan Vertex AI API di zona yang terhubung dengan Distributed Cloud:

    gcloud zone-management services enable vertex --project PROJECT_ID \
       --location REGION \
       --zones ZONE
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.

Mengonfigurasi endpoint untuk resolusi DNS

  1. Dapatkan alamat DNS terkelola, domain level teratas (TLD), dan sertifikat Certificate Authority (CA) untuk target zona yang terhubung ke Distributed Cloud:

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

    Ganti kode berikut:

    • ORGANIZATION_ID: ID organisasi Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.

    Contoh berikut menggambarkan output perintah ini:

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

    Simpan sertifikat ke dalam file. Anda akan menggunakan file ini di langkah berikutnya.

  2. Buat konfigurasi DNS untuk endpoint sebagai berikut:

    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
    

    Ganti kode berikut:

    • DNS_SERVER_ADDRESS: alamat IP server DNS Anda.
    • TOP_LEVEL_DOMAIN: domain level teratas untuk endpoint.

Men-deploy endpoint API yang terhubung dengan Gemini di GDC

Untuk men-deploy endpoint API yang terhubung ke Gemini di GDC, lakukan hal berikut:

  1. Buat endpoint:

    gcloud ai endpoints create \
       --project=PROJECT_ID \
       --region=REGION \
       --gdc-zone=ZONE \
       --display_name=ENDPOINT_NAME
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.
    • ENDPOINT_NAME: nama bermakna yang mengidentifikasi endpoint ini secara unik.
  2. Deploy model:

    gcloud ai endpoints deploy-model ENDPOINT_NAME \
      --region=REGION \
      --gdc-zone=ZONE \
      --model=MODEL_PUBLIC_ID
    

    Ganti kode berikut:

    • ENDPOINT_NAME: nama endpoint target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.
    • MODEL_PUBLIC_ID: ID model yang ditampilkan secara publik. Untuk mengetahui daftar model yang didukung, lihat Model yang didukung.
  3. Dapatkan alamat endpoint:

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

    Ganti kode berikut:

    • ENDPOINT_NAME: nama endpoint target.
    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
  4. Buat akun layanan untuk endpoint di zona yang terhubung dengan Distributed Cloud target:

    gcloud alpha zone-management service-accounts create SERVICE_ACCOUNT \
      --project PROJECT_ID \ 
      --location REGION \
      --zone ZONE 
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT: nama yang bermakna yang mengidentifikasi akun layanan ini secara unik.
    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.
  5. Dapatkan kebijakan Identity and Access Management untuk zona yang terhubung Distributed Cloud target:

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

    Ganti kode berikut:

    • ZONE: zona target Distributed Cloud Connected.
    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
  6. Tetapkan peran AI Platform Developer ke akun layanan:

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

    Ganti kode berikut:

    • POLICY_FILE: File JSON atau YAML yang berisi kebijakan penetapan peran.
    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.

    Berikut adalah contoh kebijakan dalam format JSON:

    "bindings": [
       {
          "role": "roles/aiplatform.geminiDeveloper",
          "members": [
          "serviceAccount": "projects/my-project/locations/my-region/serviceAccounts/my-service-account"
          ]
       }
    ],
    "etag": ""
    

    Berikut adalah contoh kebijakan dalam format YAML:

    bindings:
    - role: roles/aiplatform.geminiDeveloper
    members:
    - serviceAccount: projects/my-project/locations/my-region/serviceAccounts/my-service-account
    etag: ""
    
  7. Buat kunci untuk akun layanan:

    gcloud alpha zone-management service-accounts keys create  \
       --service-account  \
       --project  \
       --location  \
       --ca-cert-path 
    

    Ganti kode berikut:

    • SA_KEY_FILE: file tempat menyimpan kunci akun layanan yang dibuat.
    • PROJECT_ID: ID project Google Cloud target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • CA_CERTIFICATE_FILE: file sertifikat CA yang Anda buat sebelumnya.
  8. Cetak token identitas untuk akun layanan:

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

    Ganti kode berikut:

    • SA_KEY_FILE: file kunci akun layanan yang Anda buat sebelumnya.
    • ENDPOINT_URL: URL endpoint yang sepenuhnya memenuhi syarat, termasuk akhiran TLD.

Mencantumkan endpoint API yang terhubung ke GDC dengan Gemini yang di-deploy

Untuk mencantumkan Gemini yang di-deploy di endpoint API yang terhubung ke GDC, lakukan hal berikut:

gcloud ai endpoints list \
    --project=PROJECT_ID \
    --region=REGION \
   --gdc-zone=ZONE
   

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
  • ZONE: zona target Distributed Cloud Connected.

Mendapatkan informasi tentang endpoint API Gemini di GDC terhubung

Untuk mendapatkan informasi tentang endpoint API yang terhubung dengan Gemini yang di-deploy di GDC, lakukan hal berikut:

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

Ganti kode berikut:

  • ENDPOINT_NAME: nama endpoint target.
  • PROJECT_ID: ID project Google Cloud target.
  • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.

Berinteraksi dengan endpoint API Gemini di Google Distributed Cloud terhubung

Endpoint API Gemini di GDC yang terhubung mendukung interaksi melalui API ChatCompletions dan API ListAvailableModels. Gunakan API ini untuk berinteraksi dengan endpoint Anda secara terprogram.

Berikut adalah contoh permintaan melalui 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}"

Berikut adalah contoh permintaan multimodal Chat Completions API dengan dokumen sebagai input:

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}"'"
                    }
                }
            ]
        }
    ]
}

Berikut adalah contoh permintaan API ListAllAvailableModels:

# 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

Untuk mengetahui informasi selengkapnya tentang workload yang cocok untuk Gemini di API Google Distributed Cloud terhubung, lihat Ringkasan Gemini.

Menghapus endpoint API Gemini on Google Distributed Cloud terhubung

Untuk menghapus endpoint API yang terhubung ke Gemini di GDC, lakukan hal berikut:

  1. Batalkan deployment model:

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

    Ganti kode berikut:

    • ENDPOINT_NAME: nama endpoint target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.
    • ZONE: zona target Distributed Cloud Connected.
    • MODEL_PUBLIC_ID: ID model yang ditampilkan secara publik. Untuk mengetahui daftar model yang didukung, lihat Model yang didukung.
  2. Hapus endpoint:

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

    Ganti kode berikut:

    • PROJECT_ID: nama endpoint target.
    • REGION: Google Cloud region tempat zona Distributed Cloud terhubung target dibuat.

Memecahkan masalah endpoint

Jika endpoint API Gemini di GDC yang terhubung tidak berfungsi, hubungi perwakilan Google Anda untuk memecahkan masalah tersebut.