Bereitstellungen ausschließlich über Vertex

Stellen Sie sicher, dass der Gemini-Datenverkehr ausschließlich Vertex AI ({location}-aiplatform.googleapis.com) erreicht und niemals den Gemini-API-Studio-Endpunkt (generativelanguage.googleapis.com). Für regulierte Workloads – HIPAA, Datenresidenz und VPC Service Controls – ist dies erforderlich: Der Studio-Endpunkt ist nicht durch ein Google Cloud BAA abgedeckt, Vertex AI hingegen schon.

Endpunktentscheidung

GeminiModel::from_env und provider_from_env prüfen vor jedem API-Schlüssel zwei Umgebungsvariablen. Ein Flag gilt als wahr, wenn sein Wert 1 oder ein von der Groß- und Kleinschreibung unabhängiges true ist.

FlagStatusHinweise
GOOGLE_GENAI_USE_ENTERPRISEAktuellHat Vorrang, wenn beide gesetzt sind
GOOGLE_GENAI_USE_VERTEXAIVeraltetWird weiterhin aus Gründen der Parität mit adk-python berücksichtigt; es wird keine Veraltungswarnung ausgegeben
Vertex-Flaggemini-vertex-FunktionErgebnis
WahrKompiliertVertex AI über Application Default Credentials (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION)
Wahr, Projekt oder Standort fehltKompiliertFehler mit Angabe der fehlenden Variable – kein Studio-Fallback
WahrNicht kompiliertGeminiModel::from_env-Fehler; provider_from_env gibt eine tracing-Warnung aus und fährt mit der API-Schlüsselerkennung fort, die möglicherweise Studio auswählt
Nicht wahrGemini API (Studio) über GOOGLE_API_KEY oder GEMINI_API_KEY

Wichtig: Die Flags haben Vorrang vor jedem API-Schlüssel, einschließlich ANTHROPIC_API_KEY und OPENAI_API_KEY in provider_from_env. Ein verwaister API-Schlüssel kann eine an Vertex gebundene Bereitstellung nicht zu Studio umleiten.

Einrichtung

1. Die gemini-vertex-Funktion aktivieren

Kompilieren Sie das Vertex-Backend mit — andernfalls kann das Flag nicht berücksichtigt werden:

[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-vertex"] }

Oder verwenden Sie die Plattformvoreinstellung, die diese Funktion enthält:

[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }

2. Die Umgebungs-Flags festlegen

export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_CLOUD_LOCATION=us-central1

Heben Sie die Einstellung von GOOGLE_API_KEY und GEMINI_API_KEY in der Bereitstellungsumgebung auf, um eine zusätzliche Schutzebene zu schaffen — bei gesetztem Flag werden sie niemals abgefragt, aber durch ihr Entfernen wird der verbleibende Pfad vollständig beseitigt.

3. Application Default Credentials konfigurieren

Der Vertex-Pfad authentifiziert sich mit ADC, nicht mit einem API-Schlüssel:

# Local development
gcloud auth application-default login

# Service accounts (CI, containers)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json

Auf GKE und Cloud Run stellt Workload Identity ADC ohne Schlüsseldatei bereit.

4. Das Modell aus der Umgebung erstellen

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(())
}

Oder per automatischer Provider-Erkennung über das Umbrella-Crate:

use adk_rust::provider_from_env;

#[tokio::main]
async fn main() -> adk_rust::Result<()> {
    let model = provider_from_env()?;
    Ok(())
}

Keinen Studio-Datenverkehr überprüfen

Zur Build-Zeit — das Flag führt zu einem Fehler, anstatt stillschweigend zurückzufallen:

  • GeminiModel::from_env mit einem gesetzten Flag und ohne gemini-vertex-Funktion gibt einen Fehler zurück, der die Funktion nennt.
  • Ein gesetztes Flag mit fehlendem GOOGLE_CLOUD_PROJECT oder GOOGLE_CLOUD_LOCATION gibt einen Fehler zurück, der die fehlende Variable nennt.

Zur Laufzeit — achten Sie auf die Warnung der Schutzvorrichtung. provider_from_env gibt sie immer dann aus, wenn ein Vertex-Flag gesetzt ist, aber die gemini-vertex-Funktion nicht kompiliert wurde und die Erkennung auf API-Schlüssel zurückfällt:

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)

Eine reine Vertex-Bereitstellung muss diese Warnung als Bereitstellungsfehler behandeln: Sie bedeutet, dass das Binary ohne die gemini-vertex-Funktion erstellt wurde. Richten Sie dafür eine Überwachung in der Protokollaggregation ein.

Netzwerk — für VPC Service Controls-Perimeter den ausgehenden Datenverkehr zu generativelanguage.googleapis.com blockieren. Wenn das Flag einen Wahrheitswert hat und das Feature kompiliert wurde, erstellt kein Codepfad einen Studio-Client, sodass die Sperre bei ADK-Datenverkehr nie greift.

Fehlerbehebung

SymptomUrsacheBehebung
Fehler mit Nennung von GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATIONFlag ist wahr, Vertex-Ziel unvollständigBeide Variablen setzen
Fehler mit Nennung des Features gemini-vertexFlag ist wahr, Feature nicht kompiliertgemini-vertex (oder gemini-agent-platform) zu den Features von adk-rust hinzufügen
Die Guardrail-Warnung wird angezeigtprovider_from_env ist auf API-Schlüssel zurückgefallenMit gemini-vertex neu erstellen; Studio-API-Schlüssel aus der Umgebung entfernen
Authentifizierungsfehler zum Zeitpunkt der AnfrageADC nicht konfiguriertgcloud auth application-default login ausführen oder GOOGLE_APPLICATION_CREDENTIALS festlegen