Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.
Auf dieser Seite erfahren Sie, wie Sie einen API-Proxy als Apigee-Featurevorlage in YAML definieren und mit der Google Cloud CLI bereitstellen. Zuerst erstellen Sie einen einfachen Proxy und dann ein vollständigeres Beispiel, das einem Gemini-Modell vorangestellt ist.
Hintergrundinformationen finden Sie unter Proxy mit YAML konfigurieren. Das vollständige Schema finden Sie in der Referenz zur YAML-Konfiguration von API -Proxys.
Hinweis
- Aktivieren Sie die Vertex AI API in Ihrem Google Cloud-Projekt, damit der Proxy mit Gemini-Modellen kommunizieren kann.
gcloud services enable aiplatform.googleapis.com
- Installieren und initialisieren Sie das Google Cloud CLI.
- Installieren Sie die gcloud-Betakomponente, um auf die in dieser Anleitung verwendeten Befehle zuzugreifen:
gcloud components install beta
- Sie benötigen eine Apigee-Organisation und mindestens eine Umgebung. Notieren Sie sich die Namen der Organisation und der Umgebung. In den Beispielen werden ORG und ENV als Platzhalter verwendet. Für das KI-Gateway in Teil 2 ist außerdem eine Zwischenphasen oder Umfassende-Umgebung erforderlich (keine Basis-Umgebung). Weitere Informationen finden Sie unter Apigee Umgebungstypen.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben:
- Zum Importieren (Erstellen) eines API-Proxy: die Rolle API-Administrator
(
roles/apigee.apiAdmin) oder eine entsprechende Rolle, dieapigee.proxies.creategewährt. - Zum Bereitstellen eines API-Proxy: Umgebungsadministrator (
roles/apigee.environmentAdmin) in der Zielumgebung und API-Leser (roles/apigee.apiReaderV2) auf Projektebene. - Zum Erstellen des API-Produkts, des Entwicklers und der App, die den API-Schlüssel erzeugen
in Teil 2, Schritt 6: API-Administrator
(
roles/apigee.apiAdmin) und Entwickleradministrator (roles/apigee.developerAdmin). Die vollständige Liste der Rollen finden Sie unter Apigee Rollen.
- Zum Importieren (Erstellen) eines API-Proxy: die Rolle API-Administrator
(
Teil 1: Einfachen API-Proxy erstellen
In diesem Abschnitt erstellen Sie einen Proxy, der Anfragen an den Apigee-Mock-Zieldienst weiterleitet und ein Ratenlimit erzwingt.
Schritt 1: Vorlage erstellen
Eine Vorlage ist die Datei, die Sie bereitstellen. Sie definiert den Basispfad, die Routen und das Backend-Ziel Ihres Proxys und listet die einzuschließenden Features auf.
Erstellen Sie ein Verzeichnis für Ihren Proxy und dann eine Datei mit dem Namen hello-proxy.yaml:
gateway: apigee schemaVersion: 1.0.0 name: hello-proxy type: template description: A simple proxy to the Apigee mock target, protected by a rate limit. features: - spike-arrest.yaml endpoints: - name: default basePath: /hello routes: - name: default target: default targets: - name: default url: https://mocktarget.apigee.net
Diese Vorlage definiert:
- Einen Endpunkt mit dem Basispfad
/hello. Clients rufen den Proxy unter diesem Pfad auf. - Eine Route , die Anfragen an das Ziel mit dem Namen
defaultsendet. - Ein Ziel , das auf die Backend-URL verweist.
- Ein Feature,
spike-arrest.yaml, das Sie als Nächstes erstellen.
Schritt 2: Feature erstellen
Ein Feature ist eine wiederverwendbare Konfigurationseinheit, die Richtlinien enthält. Eine Vorlage kann keine Richtlinien direkt enthalten. Daher befindet sich die Richtlinie zur Ratenbegrenzung in einem Feature.
Erstellen Sie im selben Verzeichnis wie die Vorlage eine Datei mit dem Namen spike-arrest.yaml:
gateway: apigee schemaVersion: 1.0.0 name: spike-arrest displayName: Spike Arrest type: feature description: Protects the backend by smoothing traffic spikes. categories: - traffic parameters: - name: RATE displayName: RATE description: Maximum request rate, for example 30ps (per second) or 100pm (per minute). default: 30ps examples: - 30ps - 100pm defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: SA-SpikeArrest policies: - name: SA-SpikeArrest type: SpikeArrest content: SpikeArrest: metadata: name: SA-SpikeArrest enabled: "true" continueOnError: "false" DisplayName: SA-SpikeArrest Rate: "{RATE}"
Dieses Feature:
- Definiert eine SpikeArrest\-Richtlinie, die die Anfragerate begrenzt.
- Verwendet
defaultEndpoint.flows, um die Richtlinie dem PreFlow der Anfrage hinzuzufügen, damit sie bei jeder Anfrage ausgeführt wird. - Deklariert einen Parameter,
RATE, dessen Standardwert (30ps) beim Kompilieren des Proxys durch{RATE}ersetzt wird.
Schritt 3: Proxy importieren
Importieren Sie die Vorlage, um eine API-Proxy-Überarbeitung zu erstellen. Führen Sie diesen Befehl im Verzeichnis mit Ihren Dateien aus:
gcloud beta apigee apis import hello-proxy \
--from-template=hello-proxy.yaml \
--organization=ORGDie CLI kompiliert die Vorlage und das Feature in ein API-Proxy-Bundle, lädt es hoch und gibt die neue Proxy-Version aus. Durch den Import wird eine Überarbeitung erstellt, aber nicht bereitgestellt.
Schritt 4: Proxy bereitstellen
Stellen Sie die Überarbeitung in einer Umgebung bereit:
gcloud apigee apis deploy \
--api=hello-proxy \
--environment=ENV \
--organization=ORGStandardmäßig wird mit diesem Befehl die neueste Überarbeitung bereitgestellt. Wenn Sie eine bestimmte
Überarbeitung bereitstellen möchten, übergeben Sie ihre Nummer als erstes Argument, z. B.
gcloud apigee apis deploy 1 --api=hello-proxy --environment=ENV.
Wenn bereits ein anderer Proxy mit demselben Basispfad bereitgestellt ist, fügen Sie --override hinzu, um ihn ohne Ausfallzeit zu ersetzen.
Schritt 5: Proxy aufrufen
Wenn Sie den bereitgestellten Proxy über das Netzwerk aufrufen möchten, muss Ihre Umgebung an eine Umgebungsgruppe angehängt sein, die einen routingfähigen Hostnamen hat. Wenn Sie Ihre Organisation gerade erst erstellt haben, prüfen Sie, ob dies eingerichtet ist, bevor Sie den Proxy aufrufen. Weitere Informationen finden Sie unter Umgebungen und Umgebungsgruppen.
Suchen Sie den Hostnamen einer Umgebungsgruppe, die Ihre Umgebung enthält:
- Gehen Sie in der Google Cloud -Console zu Apigee > Verwaltung > Umgebungen.
- Wählen Sie den Tab Umgebungsgruppen aus.
- Suchen Sie die Umgebungsgruppe, die Ihre Umgebung enthält, und kopieren Sie einen Wert aus der Spalte Hostnamen.
Rufen Sie den Proxy mit diesem Hostnamen und dem Basispfad aus Ihrer Vorlage auf:
curl https://HOSTNAME/hello
Ersetzen Sie HOSTNAME durch den kopierten Hostnamen. Eine erfolgreiche Antwort stammt vom Mock-Zieldienst.
Teil 2: KI-Gateway für Gemini erstellen
In diesem Abschnitt erstellen Sie einen vollständigeren Proxy: ein KI-Gateway, das Anfragen an ein Gemini-Modell in Vertex AI weiterleitet, ein Ratenlimit erzwingt und einen API-Schlüssel erfordert. Dazu werden eine Vorlage, drei Features und ein Dienstkonto verwendet.
Im Gegensatz zum einfachen Proxy in Teil 1 ruft dieser Proxy
einen Google Cloud-Dienst (Vertex AI) auf. Das Feature gemini-target verwendet auth: GoogleAccessToken, sodass Apigee jeder Anfrage an Vertex AI ein Google-OAuth-Token anhängt. Dieses Token wird für ein
Dienstkonto ausgestellt, das Sie erstellen und dann bei der Bereitstellung des
Proxys angeben. Daher wird in diesem Teil ein Schritt zum Erstellen dieses Dienstkontos hinzugefügt
(Schritt 3).
Schritt 1: Vorlage erstellen
Erstellen Sie eine Datei mit dem Namen ai-gateway.yaml:
gateway: apigee schemaVersion: 1.0.0 name: ai-gateway type: template description: AI gateway that fronts a Gemini model with throttling and API key enforcement. features: - spike-arrest.yaml - verify-api-key.yaml - gemini-target.yaml endpoints: - name: gemini basePath: /v1/gemini routes: - name: default target: gemini
Schritt 2: Features erstellen
Erstellen Sie im selben Verzeichnis die drei Featuredateien.
Verwenden Sie das spike-arrest.yaml Feature aus
Teil 1 wieder.
Erstellen Sie verify-api-key.yaml, um einen API-Schlüssel im Header x-api-key zu erfordern:
gateway: apigee schemaVersion: 1.0.0 name: verify-api-key displayName: Verify API Key type: feature description: Requires a valid API key in the x-api-key request header. categories: - security defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: VA-VerifyAPIKey policies: - name: VA-VerifyAPIKey type: VerifyAPIKey content: VerifyAPIKey: metadata: name: VA-VerifyAPIKey enabled: "true" continueOnError: "false" DisplayName: VA-VerifyAPIKey APIKey: metadata: ref: request.header.x-api-key
Erstellen Sie gemini-target.yaml, um Anfragen an ein Gemini-Modell weiterzuleiten, das mit einem Google-Zugriffstoken authentifiziert wurde:
gateway: apigee schemaVersion: 1.0.0 name: gemini-target displayName: Gemini Target type: feature description: Routes requests to a Gemini model on Vertex AI, authenticated with a Google access token. categories: - llm targets: - name: gemini url: https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/gemini-2.5-flash:generateContent auth: GoogleAccessToken scopes: - https://www.googleapis.com/auth/cloud-platform
Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID und REGION durch die Vertex AI-Region, die Sie verwenden (z. B. us-central1). Dieses Feature
verwendet auth: GoogleAccessToken, sodass Apigee jeder Anfrage an Vertex AI ein
Google-Zugriffstoken anhängt.
Modelle sind nicht an allen Standorten verfügbar und die URL hängt vom verwendeten Standort ab. Die vorherige URL ist die regionale Form, die für ein Modell funktioniert, das von einer bestimmten Region bereitgestellt wird, z. B. gemini-2.5-flash in us-central1. Andere Modelle werden nur über den globalen Endpunkt bereitgestellt, der einen anderen Host und locations/global verwendet:
url: https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL:generateContent
Informationen zu den Standorten, die von einem Modell unterstützt werden, finden Sie unter Generative AI an Vertex AI-Standorten.
Schritt 3: Dienstkonto für den Proxy erstellen
Da das Feature gemini-target auth: GoogleAccessToken verwendet, ruft der bereitgestellte Proxy Vertex AI als Dienstkonto auf. Erstellen Sie dieses Dienstkonto, gewähren Sie ihm Zugriff auf Vertex AI und lassen Sie es vom Apigee-Dienst-Agent verwenden. Sie geben dieses Dienst
konto an, wenn Sie den Proxy in Schritt 5 bereitstellen. Weitere Informationen finden Sie unter
Google-Authentifizierung
verwenden.
- Erstellen Sie ein nutzerverwaltetes Dienstkonto im selben Google Cloud Projekt wie
Ihre Apigee-Organisation. (Das Compute Engine-Standarddienstkonto
wird nicht akzeptiert.) Weitere Möglichkeiten zum Erstellen eines Dienstkontos finden Sie unter
Dienstkonten erstellen
und verwalten.
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID \ --display-name="Apigee AI gateway"Dadurch wird das Dienstkonto
SA_NAME@PROJECT_ID.iam.gserviceaccount.comerstellt. - Gewähren Sie dem Dienstkonto Zugriff auf das Backend, das es aufruft. Gewähren Sie für ein Vertex AI
Ziel die Rolle Vertex AI-Nutzer
(
roles/aiplatform.user):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"Wenn die IAM-Richtlinie Ihres Projekts bereits bedingte Rollenbindungen enthält, fügen Sie diesem Befehl
--condition=Nonehinzu. - Lassen Sie den Apigee-Dienst-Agent Tokens für das Dienstkonto erstellen, indem Sie ihm die Rolle „Ersteller von Dienstkonto-Tokens“ (
roles/iam.serviceAccountTokenCreator) für das Dienstkonto gewähren:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"Führen Sie
gcloud projects describe PROJECT_ID --format='value(projectNumber)'aus, um PROJECT_NUMBER zu ermitteln.
Schritt 4: Proxy importieren
Importieren Sie die Vorlage, um eine API-Proxy-Überarbeitung zu erstellen:
gcloud beta apigee apis import ai-gateway \
--from-template=ai-gateway.yaml \
--organization=ORGNotieren Sie sich die Überarbeitungsnummer in der Befehlsausgabe. Sie benötigen sie in
Schritt 5. Wenn Sie nur die Versionsnummer ausgeben möchten, fügen Sie dem Importbefehl --format="value(revision)" hinzu.
Schritt 5: Proxy mit dem Dienstkonto bereitstellen
Die Bereitstellung des KI-Gateways unterscheidet sich in zwei Punkten von der des einfachen Proxys in Teil 1:
- Sie müssen das in
Schritt 3 erstellte Dienstkonto angeben. Wenn Sie die Bereitstellung ohne Dienstkonto vornehmen, schlägt die
Bereitstellung mit dem
MISSING_SERVICE_ACCOUNTFehler fehl. - Sie müssen die Bereitstellung in einer Zwischenphasen- oder Umfassenden Umgebung vornehmen.
Dieser Proxy verwendet eine erweiterbare Richtlinie, die von einer Basis\-Umgebung nicht
unterstützt wird. Die Bereitstellung in einer solchen Umgebung schlägt mit dem Fehler
Extensible proxy can not be deployed to a base environment
fehl. Weitere Informationen finden Sie unter Apigee Umgebungstypen.
Apigee-Benutzeroberfläche:Stellen Sie den Proxy bereit und geben Sie bei der Aufforderung zur Eingabe eines Dienstkontos
ein
SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
Eine Anleitung finden Sie unter
API
Proxy bereitstellen.
Deployment API:Rufen Sie die
Deployments
API auf und übergeben Sie das Dienstkonto als serviceAccount Abfrage
parameter. Ersetzen Sie REVISION durch die Überarbeitungsnummer aus
Schritt 4:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments?serviceAccount=SA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Die Bereitstellungsanfrage wird sofort zurückgegeben. Die Bereitstellung erfolgt asynchron. Fragen Sie den Bereitstellungsstatus der Überarbeitung ab. Er lautet PROGRESSING, bis er READY wird:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments"
Wenn der Proxy kompiliert wird, fügen die Features spike-arrest und verify-api-key ihre Richtlinien dem PreFlow der Anfrage hinzu (zuerst Ratenbegrenzung, dann API-Schlüsselprüfung) und das Feature gemini-target fügt das Vertex AI-Backend hinzu. Nach Abschluss der Bereitstellung authentifiziert sich der Proxy bei Vertex AI als Ihr Dienstkonto.
Schritt 6: API-Schlüssel abrufen
Das Feature verify-api-key lehnt alle Anfragen ab, die keinen gültigen API-Schlüssel enthalten. Sie benötigen also einen Schlüssel, bevor Sie den Proxy aufrufen können. Ein API-Schlüssel ist ein Anmeldedaten einer Entwickler-App , die mit einem API-Produkt verknüpft ist, das diesen Proxy enthält. Führen Sie die folgenden Aufgaben aus, die
unter
Veröffentlichungen
Übersichtbeschrieben sind:
- Erstellen
Sie ein API-Produkt, das den
ai-gatewayProxy und die Umgebung enthält, in der Sie ihn bereitgestellt haben. - Registrieren Sie einen App-Entwickler.
- Registrieren Sie eine Entwickler-App, die mit diesem API-Produkt verknüpft ist.
Durch die Registrierung der App wird der Schlüssel generiert. Informationen zum Abrufen des Schlüssels finden Sie unter API-Schlüssel und -Secret aufrufen.
Schritt 7: Proxy aufrufen
Suchen Sie den Hostnamen Ihrer Umgebungsgruppe, wie in
Teil 1, Schritt 5 beschrieben, und rufen Sie dann den Proxy mit dem Basispfad
/v1/gemini auf. Übergeben Sie den API-Schlüssel im x-api-key Header,
und senden Sie einen Gemini
generateContent
Anfragetext:
curl -X POST https://HOSTNAME/v1/gemini \
-H "x-api-key: API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Say hello in one sentence."}]}]}'Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Umgebungsgruppe und
API_KEY durch den Schlüssel aus Schritt 6. Eine erfolgreiche Antwort ist die JSON-Ausgabe des Modells. Wenn Sie den Schlüssel weglassen, wird ein Autorisierungsfehler von der VerifyAPIKey-Richtlinie zurückgegeben. Dadurch wird bestätigt, dass das Feature verify-api-key aktiv ist. Weitere Möglichkeiten zum
Übergeben eines Schlüssels finden Sie unter
Anfrage mit einem gültigen API-Schlüssel senden.
Nächste Schritte
- Referenz zur YAML-Konfiguration von API Proxys
- Proxy mit YAML konfigurieren
- API -Proxys bereitstellen
- Veröffentlichungen – Übersicht