Déploiements exclusivement sur Vertex
Garantissez que le trafic Gemini atteint uniquement Vertex AI ({location}-aiplatform.googleapis.com) et jamais le point de terminaison Gemini API Studio (generativelanguage.googleapis.com). Les charges de travail réglementées — HIPAA, résidence des données, VPC Service Controls — l’exigent : le point de terminaison Studio n’est pas couvert par un BAA de Google Cloud, contrairement à Vertex AI.
Choix du point de terminaison
GeminiModel::from_env et provider_from_env consultent deux indicateurs d’environnement avant toute clé API. Un indicateur est considéré comme vrai lorsque sa valeur est 1 ou un true insensible à la casse.
| Indicateur | Statut | Remarques |
|---|---|---|
GOOGLE_GENAI_USE_ENTERPRISE | Actuel | Prend le dessus lorsque les deux sont définis |
GOOGLE_GENAI_USE_VERTEXAI | Obsolète | Toujours pris en compte pour assurer la parité avec adk-python ; aucun avertissement d’obsolescence n’est émis |
| Indicateur Vertex | Fonctionnalité gemini-vertex | Résultat |
|---|---|---|
| Vrai | Compilé | Vertex AI via les identifiants par défaut de l’application (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION) |
| Vrai, projet ou emplacement manquant | Compilé | Erreur indiquant la variable manquante — aucun recours à Studio |
| Évalué comme vrai | Non compilé | Erreurs GeminiModel::from_env ; provider_from_env émet un avertissement tracing et passe à la détection de clé API, qui peut sélectionner Studio |
| N’est pas évalué comme vrai | — | Gemini API (Studio) via GOOGLE_API_KEY ou GEMINI_API_KEY |
Important : les indicateurs ont priorité sur toute clé API, y compris
ANTHROPIC_API_KEYetOPENAI_API_KEYdansprovider_from_env. Une clé API isolée ne peut pas rediriger un déploiement associé à Vertex vers Studio.
Configuration
1. Activer la fonctionnalité gemini-vertex
Compilez le backend Vertex avec celle-ci — sans elle, l’indicateur ne peut pas être pris en compte :
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-vertex"] }
Ou utilisez le préréglage de la plateforme, qui l’inclut :
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }
2. Définir les indicateurs d’environnement
export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_CLOUD_LOCATION=us-central1
Supprimez GOOGLE_API_KEY et GEMINI_API_KEY de l’environnement de déploiement par défense en profondeur — lorsque l’indicateur est véridique, ils ne sont jamais consultés, mais leur suppression élimine entièrement le chemin résiduel.
3. Configurer les identifiants d’application par défaut
Le chemin Vertex s’authentifie avec ADC, et non avec une clé API :
# Local development
gcloud auth application-default login
# Service accounts (CI, containers)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
Sur GKE et Cloud Run, Workload Identity fournit ADC sans fichier de clé.
4. Construire le modèle à partir de l’environnement
use adk_model::gemini::GeminiModel;
// The Vertex path builds Application Default Credentials, which requires a
// current Tokio runtime.
#[tokio::main]
async fn main() -> adk_core::Result<()> {
// Vertex AI when a flag is truthy; errors instead of falling back to
// Studio when the Vertex configuration is incomplete.
let model = GeminiModel::from_env("gemini-3.7-flash")?;
Ok(())
}
Ou via la détection automatique du fournisseur sur le crate englobant :
use adk_rust::provider_from_env;
#[tokio::main]
async fn main() -> adk_rust::Result<()> {
let model = provider_from_env()?;
Ok(())
}
Vérifier l’absence de trafic Studio
Au moment de la compilation — l’indicateur génère une erreur au lieu de dégrader silencieusement le comportement :
GeminiModel::from_envavec un indicateur véridique et sans fonctionnalitégemini-vertexrenvoie une erreur indiquant le nom de la fonctionnalité.- Un indicateur véridique avec
GOOGLE_CLOUD_PROJECTouGOOGLE_CLOUD_LOCATIONmanquant renvoie une erreur indiquant le nom de la variable manquante.
À l’exécution — surveillez l’avertissement de garde-fou. provider_from_env l’émet chaque fois qu’un indicateur Vertex est véridique, mais que la fonctionnalité gemini-vertex n’est pas compilée et que la détection se rabat sur les clés API :
WARN vertex backend requested via environment but the gemini-vertex feature is not compiled; api-key detection may select the gemini studio endpoint (generativelanguage.googleapis.com)
Un déploiement exclusivement Vertex doit considérer cet avertissement comme une erreur de déploiement : cela signifie que le binaire a été compilé sans la fonctionnalité gemini-vertex. Configurez une alerte à ce sujet dans l’agrégation des journaux.
Réseau — pour les périmètres VPC Service Controls, bloquez la sortie vers generativelanguage.googleapis.com. Lorsque l’indicateur est truthy et que la fonctionnalité est compilée, aucun chemin de code ne construit de client Studio ; le blocage ne se déclenche donc jamais pour le trafic ADK.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
Erreur nommant GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION | Indicateur évalué à vrai, cible Vertex incomplète | Définir les deux variables |
Erreur nommant la fonctionnalité gemini-vertex | Indicateur évalué à vrai, fonctionnalité non compilée | Ajouter gemini-vertex (ou gemini-agent-platform) aux fonctionnalités adk-rust |
| L’avertissement du garde-fou s’affiche | provider_from_env a utilisé les clés API comme solution de secours | Reconstruisez avec gemini-vertex ; supprimez les clés API de Studio de l’environnement |
| Erreurs d’authentification au moment de la requête | ADC n’est pas configuré | Exécutez gcloud auth application-default login ou définissez GOOGLE_APPLICATION_CREDENTIALS |