Créer et gérer des points de terminaison

Cette page explique comment créer et gérer des points de terminaison d'API Gemini sur Google Distributed Cloud connecté.

Il part du principe que vous avez déployé le matériel certifié Google comme décrit dans les exigences d'installation.

Prérequis

Cette section décrit les étapes ponctuelles que vous devez suivre avant de pouvoir déployer Gemini sur les points de terminaison d'API connectés à GDC.

Activer les API requises

Vous devez activer les API suivantes dans votre projet cible Google Cloud  :

  • 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

Pour en savoir plus sur l'activation des API, consultez Activer des services.

Attribuer les rôles requis

Vous devez configurer les rôles obligatoires suivants :

Obtenir des informations sur la zone connectée Distributed Cloud cible

Pour obtenir le nom de votre zone connectée Distributed Cloud cible, procédez comme suit :

  1. Répertoriez les zones Distributed Cloud connectées dans votre projet Google Cloud , comme décrit dans Lister les zones.

  2. Obtenez des informations détaillées sur la zone cible, comme décrit dans Obtenir des informations sur une zone.

Obtenir des informations sur les machines certifiées dans votre zone Distributed Cloud connecté

Pour obtenir les noms des machines certifiées cibles dans votre zone Distributed Cloud connectée, procédez comme suit :

  1. Listez les machines Distributed Cloud connectées dans la zone Distributed Cloud connectée cible, comme décrit dans Lister les machines dans une zone.

  2. Obtenez des informations détaillées sur la machine cible, comme décrit dans Obtenir des informations sur une machine.

Activez les services locaux des API AI Platform et Vertex AI.

  1. Activez le projet Google Cloud cible dans votre zone connectée Distributed Cloud cible :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud cible.
    • ORGANIZATION_ID : ID de l'organisation Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.
  2. Activez le service AI Platform sur le projet cible Google Cloud  :

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

    Remplacez PROJECT_ID par l'ID du projet cible Google Cloud .

  3. Activez le service d'API Vertex AI dans la zone connectée Distributed Cloud :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.

Configurer le point de terminaison pour la résolution DNS

  1. Obtenez l'adresse DNS gérée, le domaine de premier niveau (TLD) et le certificat de l'autorité de certification (CA) pour la zone connectée Distributed Cloud cible :

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

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de l'organisation Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.

    L'exemple suivant illustre le résultat de cette commande :

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

    Stockez le certificat dans un fichier. Vous utiliserez ce fichier lors des prochaines étapes.

  2. Créez la configuration DNS pour le point de terminaison comme suit :

    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
    

    Remplacez les éléments suivants :

    • DNS_SERVER_ADDRESS : adresse IP de votre serveur DNS.
    • TOP_LEVEL_DOMAIN : domaine de premier niveau du point de terminaison.

Déployer un point de terminaison d'API Gemini connecté à GDC

Pour déployer un point de terminaison d'API Gemini sur GDC connecté, procédez comme suit :

  1. Créez le point de terminaison :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.
    • ENDPOINT_NAME : nom explicite qui identifie de manière unique ce point de terminaison.
  2. Déployez le modèle :

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

    Remplacez les éléments suivants :

    • ENDPOINT_NAME : nom du point de terminaison cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.
    • MODEL_PUBLIC_ID : ID public du modèle. Pour obtenir la liste des modèles compatibles, consultez Modèles compatibles.
  3. Obtenez l'adresse du point de terminaison :

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

    Remplacez les éléments suivants :

    • ENDPOINT_NAME : nom du point de terminaison cible.
    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
  4. Créez le compte de service pour le point de terminaison dans la zone connectée Distributed Cloud cible :

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

    Remplacez les éléments suivants :

    • SERVICE_ACCOUNT : nom explicite qui identifie de manière unique ce compte de service.
    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.
  5. Obtenez la stratégie IAM (Identity and Access Management) pour la zone connectée Distributed Cloud cible :

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

    Remplacez les éléments suivants :

    • ZONE : zone Distributed Cloud connectée cible.
    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
  6. Attribuez le rôle Développeur AI Platform au compte de service :

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

    Remplacez les éléments suivants :

    • POLICY_FILE : fichier JSON ou YAML contenant la stratégie d'attribution des rôles.
    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.

    Voici un exemple de règle au format JSON :

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

    Voici un exemple de stratégie au format YAML :

    bindings:
    - role: roles/aiplatform.geminiDeveloper
    members:
    - serviceAccount: projects/my-project/locations/my-region/serviceAccounts/my-service-account
    etag: ""
    
  7. Générez une clé pour le compte de service :

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

    Remplacez les éléments suivants :

    • SA_KEY_FILE : fichier dans lequel stocker la clé de compte de service générée.
    • PROJECT_ID : ID du projet Google Cloud cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • CA_CERTIFICATE_FILE : fichier de certificat d'autorité de certification que vous avez créé précédemment.
  8. Imprimez le jeton d'identité pour le compte de service :

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

    Remplacez les éléments suivants :

    • SA_KEY_FILE : fichier de clé de compte de service que vous avez créé précédemment.
    • ENDPOINT_URL : URL complète du point de terminaison, y compris le suffixe TLD.

Lister les points de terminaison de l'API Gemini on GDC connect déployés

Pour lister les points de terminaison d'API Gemini sur GDC connectés que vous avez déployés :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
  • ZONE : zone Distributed Cloud connectée cible.

Obtenir des informations sur un point de terminaison d'API Gemini sur GDC connecté

Pour obtenir des informations sur un point de terminaison d'API Gemini sur GDC connecté déployé, procédez comme suit :

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

Remplacez les éléments suivants :

  • ENDPOINT_NAME : nom du point de terminaison cible.
  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.

Interagir avec un point de terminaison d'API Gemini on Google Distributed Cloud connecté

Votre point de terminaison d'API Gemini sur GDC connecté permet l'interaction via les API ChatCompletions et ListAvailableModels. Utilisez ces API pour interagir de manière programmatique avec votre point de terminaison.

Voici un exemple de requête via l'API Chat Completions :

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

Voici un exemple de requête d'API Chat Completions multimodale avec un document en entrée :

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

Voici un exemple de requête d'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

Pour en savoir plus sur les charges de travail adaptées à l'API Gemini sur Google Distributed Cloud connected, consultez Présentation de Gemini.

Supprimer un point de terminaison d'API Gemini on Google Distributed Cloud connected

Pour supprimer un point de terminaison d'API Gemini sur GDC connecté, procédez comme suit :

  1. Annulez le déploiement du modèle :

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

    Remplacez les éléments suivants :

    • ENDPOINT_NAME : nom du point de terminaison cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.
    • ZONE : zone Distributed Cloud connectée cible.
    • MODEL_PUBLIC_ID : ID public du modèle. Pour obtenir la liste des modèles compatibles, consultez Modèles compatibles.
  2. Supprimez le point de terminaison :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : nom du point de terminaison cible.
    • REGION : région Google Cloud dans laquelle la zone Distributed Cloud connectée cible a été créée.

Résoudre les problèmes liés aux points de terminaison

Si le point de terminaison de l'API Gemini sur GDC connecté est hors service, contactez votre représentant Google pour résoudre le problème.