Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Auf dieser Seite wird beschrieben, wie Sie den Apigee Extension Processor konfigurieren, um die Durchsetzung von API-Richtlinien für API-Traffic mit einem Load Balancer zu ermöglichen, der für Service Extensions aktiviert ist.
Weitere Informationen zu den vorgeschlagenen Anwendungsfällen und Vorteilen der Verwendung des Apigee Extension Processor für die API-Verwaltung finden Sie unter Apigee Extension Processor – Übersicht.
Der Apigee Extension Processor ist eine Traffic-Erweiterung (eine Art Diensterweiterung), mit der Sie Cloud Load Balancing verwenden können, um Callouts vom Datenverarbeitungspfad des Application Load Balancer an den Apigee Extension Processor zu senden. Nachdem der Load-Balancer und die Traffic-Erweiterung konfiguriert wurden, wird der API-Traffic vom Load-Balancer verarbeitet. Die Richtlinien im Apigee Extension Processor werden auf API-Traffic angewendet, der die Traffic-Erweiterungs-Callouts verwendet.
In den folgenden Abschnitten werden Sie durch die Schritte geführt, die zum Konfigurieren der Schlüsselelemente des Apigee Extension Processor erforderlich sind:
Hinweise
Bevor Sie mit der Einrichtung des Apigee Extension Processor beginnen, müssen Sie die folgenden Aufgaben ausführen:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Installieren Sie die Google Cloud CLI.
Führen Sie nach der Installation der Google Cloud CLI den Befehl
gcloud components update
aus, um die neuesten gcloud-Komponenten abzurufen.Stellen Sie eine Apigee-Instanz mit Version
1-15-0-apigee-2
oder höher bereit, falls Sie dies noch nicht getan haben.Sie können Instanzversionen in der Apigee-UI in der Google Cloud Console auf der Seite Instanzdetails ansehen. Rufen Sie in der Google Cloud Console die Seite Instanzen auf, um eine Instanz auszuwählen und ihre Details aufzurufen:
Sie können Extension Processor mit einer Abo- oder Pay-as-you-go-Apigee-Organisation verwenden. Wenn Sie sich nicht sicher sind, ob Sie ein Abo oder eine „Pay as you go“-Apigee-Organisation verwenden, wenden Sie sich an den Administrator Ihrer Apigee-Organisation. Weitere Informationen zum Bereitstellen von kostenpflichtigen Apigee-Instanzen finden Sie unter Vorbereitung.
- Prüfen Sie, ob in der Apigee-Instanz, die Sie verwenden möchten, ein VPC-Netzwerk und ein Subnetz aktiviert sind. Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf:
-
Dienstkonten erstellen und verwalten:
Service Account Admin (
roles/iam.serviceAccountAdmin
) -
Diensterweiterungen erstellen und verwalten:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin
) -
Netzwerk-Endpunktgruppen (NEGs) erstellen und verwalten:
Compute-Instanzadministrator (
roles/compute.instanceAdmin
) -
Netzwerkressourcen erstellen und verwalten:
Compute Network Admin (
roles/compute.networkAdmin
) -
Backend-Dienste erstellen und verwalten:
Administrator für Compute-Load-Balancer (
roles/compute.loadBalancerAdmin
) -
Apigee-Ressourcen erstellen und verwalten:
Apigee Org Admin (
roles/apigee.admin
) PROJECT_ID
ist die ID des Projekts mit Ihrer Apigee-Instanz.REGION
ist die Google Cloud Region Ihrer Apigee-Instanz.INSTANCE
ist der Name Ihrer Apigee-Instanz.VPC_NETWORK_NAME
ist der Name des VPC-Netzwerk in Ihrem Google Cloud -Projekt, das Sie für den Apigee Extension Processor verwenden möchten.SUBNET
ist der Name des Subnetzes in Ihrem Google Cloud -Projekt, das Sie für den Apigee Extension Processor verwenden möchten.- Globalen externen Application Load Balancer erstellen
- Netzwerk-Endpunktgruppe (NEG) erstellen
- Back-End-Dienst erstellen
- URL-Zuordnung erstellen
- Ziel-Proxy erstellen
- Globale Weiterleitungsregel erstellen
- Konfigurieren Sie
gcloud
für die Verwendung Ihres aktuellen Projekts:gcloud config set project PROJECT_ID
Dabei ist PROJECT_ID die ID des Projekts mit Ihrer Apigee-Instanz.
- So erstellen Sie eine globale statische IP-Adresse:
gcloud compute addresses create IP_ADDRESS --ip-version=IPV4 --global
Dabei ist IP_ADDRESS der Name der IP-Adresse, die Sie erstellen möchten. Der Name muss dem regulären Ausdruck
(?:a-z?)
entsprechen. - Rufen Sie die IP-Adresse ab und speichern Sie sie als Umgebungsvariable:
IP=$(gcloud compute addresses describe IP_ADDRESS --format="get(address)" --global)
Dabei ist IP_ADDRESS der Name der IP-Adresse, die Sie im vorherigen Schritt erstellt haben.
- Erstellen Sie ein TLS-Zertifikat für
nip.io
, einen Drittanbieterdienst, der Platzhalter-DNS-Einträge für IP-Adressen bereitstellt:gcloud compute ssl-certificates create SSL_CERT_NAME \ --domains="nip.io"
Dabei ist SSL_CERT_NAME der Name des Zertifikats, das Sie erstellen möchten.
- NEG erstellen:
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=INTERNET_FQDN_PORT \ --default-port=443 \ --global
Dabei ist NEG_NAME der Name der NEG, die Sie erstellen möchten.
- Fügen Sie der NEG den Endpunkt für httpbin.org hinzu:
gcloud compute network-endpoint-groups update NEG_NAME \ --add-endpoint=fqdn=httpbin.org,port=443 \ --global
Dabei ist NEG_NAME der Name der NEG, die Sie im vorherigen Schritt erstellt haben.
- Erstellen Sie den Back-End-Dienst:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Dabei ist BACKEND_SERVICE_NAME der Name des Back-End-Dienstes, den Sie erstellen möchten.
- Fügen Sie dem Backend die NEG hinzu:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --global-network-endpoint-group \ --global
Wobei:
- BACKEND_SERVICE_NAME ist der Name des Back-End-Dienstes, den Sie im vorherigen Schritt erstellt haben.
- NEG_NAME ist der Name der NEG, die Sie in einem vorherigen Schritt erstellt haben.
- URL_MAP_NAME ist der Name der URL-Zuordnung, die Sie erstellen möchten.
- BACKEND_SERVICE_NAME ist der Name des Back-End-Dienstes, den Sie in einem vorherigen Schritt erstellt haben.
- TARGET_PROXY_NAME ist der Name des Zielproxys, den Sie erstellen möchten.
- URL_MAP_NAME ist der Name der URL-Zuordnung, die Sie in einem vorherigen Schritt erstellt haben.
- SSL_CERT_NAME ist der Name des SSL-Zertifikats, das Sie in einem vorherigen Schritt für
nip.io
erstellt haben. - FORWARDING_RULE_NAME ist der Name der Weiterleitungsregel, die Sie erstellen möchten.
- IP_ADDRESS ist der Name der IP-Adresse des NEG-Endpunkts, den Sie in einem vorherigen Schritt erstellt haben.
- TARGET_PROXY_NAME ist der Name des Zielproxys, den Sie in einem vorherigen Schritt erstellt haben.
- Erstellen Sie mit dem folgenden Befehl eine Apigee-Umgebung:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments" -H "Content-Type:application/json" -d \ '{ "name": "ENV_NAME", "displayName": "ENV_NAME", "state": "ACTIVE", "deploymentType": "PROXY", "apiProxyType": "PROGRAMMABLE", "type": "COMPREHENSIVE", "properties": {"property": [ { "name": "apigee-service-extension-enabled", "value": "true" } ] } }'
Dabei ist ENV_NAME der Name der Umgebung, die Sie erstellen. Der Name muss zwischen 2 und 32 Zeichen lang sein. Kleinbuchstaben, Zahlen und Bindestriche sind zulässig. Der Name muss mit einem Buchstaben beginnen und darf nicht mit einem Bindestrich enden. Der Name muss sich von jedem anderen Umgebungsnamen in Ihrer Organisation unterscheiden.
Prüfen Sie, ob die Umgebung erstellt wurde:
curl -i -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
Die Liste der Umgebungen sollte die Umgebung enthalten, die Sie gerade erstellt haben.
- Hängen Sie die neu erstellte Umgebung an Ihre Apigee-Instanz an:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances/$INSTANCE/attachments" -H "Content-Type:application/json" -d \ '{ "environment": "ENV_NAME" }'
Dabei ist ENV_NAME der Name der Umgebung, die Sie im vorherigen Schritt erstellt haben.
Dieser Vorgang kann bis zu 10 Minuten dauern.
- Erstellen Sie die Apigee-Umgebungsgruppe:
curl -H "Authorization: Bearer $TOKEN" -X POST \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups" -H "Content-Type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "hostnames": ["ENV_GROUP_HOSTNAME"] }'
Wobei:
- ENV_GROUP_NAME ist der Name der Umgebungsgruppe, die Sie erstellen.
- ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe, die Sie erstellen. Der Hostname muss ein voll qualifizierter Domainname (FQDN) sein.
- Hängen Sie die neue Umgebung an die neue Umgebungsgruppe an:
curl -H "Authorization: Bearer $TOKEN" -X POST\ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/ENV_GROUP_NAME/attachments" -H "content-type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "environment": "ENV_NAME" }'
Wobei:
- ENV_GROUP_NAME ist der Name der Umgebungsgruppe, die Sie erstellen.
- ENV_NAME ist der Name der Umgebung, die Sie in einem früheren Schritt erstellt haben.
- Folgen Sie der Anleitung unter API-Proxy erstellen, um einen Kein Ziel-Proxy mit den folgenden Spezifikationen zu erstellen:
- Proxy-Vorlage: Wählen Sie Kein Ziel aus.
- Proxyname: Geben Sie einen Namen für den Proxy ein.
- Basispfad: Legen Sie einen beliebigen Basispfad fest. Der Pfad wird nicht verwendet.
Die XML-Spezifikation für den Proxy sollte in etwa so aussehen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <APIProxy revision="1" name="extproc-sample"> <DisplayName/> <Description/> <CreatedAt>1739581781912</CreatedAt> <LastModifiedAt>1739582447868</LastModifiedAt> <BasePaths>/</BasePaths> <Policies></Policies> <ProxyEndpoints> <ProxyEndpoint>default</ProxyEndpoint> </ProxyEndpoints> </APIProxy>
- Folgen Sie der Anleitung unter API-Proxy bereitstellen, um den Proxy in der zuvor erstellten Umgebung bereitzustellen.
- Folgen Sie der Anleitung unter API-Proxy erstellen, um einen Server-Sent Events-Proxy mit den folgenden Spezifikationen zu erstellen:
- Proxy-Vorlage: Wählen Sie Kein Ziel aus.
- Proxyname: Geben Sie einen Namen für den Proxy ein.
- Basispfad: Legen Sie einen beliebigen Basispfad fest. Der Pfad wird nicht verwendet.
Die XML-Spezifikation für den Proxy sollte in etwa so aussehen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <APIProxy revision="1" name="extproc-sample"> <DisplayName/> <Description/> <CreatedAt>1739581781912</CreatedAt> <LastModifiedAt>1739582447868</LastModifiedAt> <BasePaths>/</BasePaths> <ProxyEndpoints> <ProxyEndpoint>default</ProxyEndpoint> </ProxyEndpoints> </APIProxy>
- Konfigurieren Sie
EventFlow
im Proxy:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <APIProxy revision="1" name="extproc-sample"> <DisplayName/> <Description/> <CreatedAt>1739581781912</CreatedAt> <LastModifiedAt>1739582447868</LastModifiedAt> <BasePaths>/</BasePaths> <ProxyEndpoints> <ProxyEndpoint>default</ProxyEndpoint> <EventFlow name="EventFlow" content-type="text/event-stream"> <Response/> </EventFlow> <HTTPProxyConnection> <Properties/> <URL>https://httpbin.org/sse</URL> </HTTPProxyConnection> </ProxyEndpoints> </APIProxy>
- Folgen Sie der Anleitung unter API-Proxy bereitstellen, um den Proxy in der zuvor erstellten Umgebung bereitzustellen.
- Netzwerk-Endpunktgruppe von Apigee Private Service Connect erstellen
- Load-Balancer-Diensterweiterung erstellen
- Senden Sie eine Anfrage an den Load-Balancer.
- Rufen Sie den Apigee PSC-Dienstanhang ab:
PSC_ATTACHMENT=$(curl -s -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances" \ | jq -r '.instances[] | select(.name = "'$INSTANCE'") | .serviceAttachment' \ )
So rufen Sie den Dienstanhang auf:
echo $PSC_ATTACHMENT
Die Antwort sollte in etwa so aussehen:
projects/apigee-psc-autopush/regions/us-west1/serviceAttachments/apigee-us-west1-1234567890-psc-service-attachment
- Erstellen Sie die PSC-NEG in derselben Region wie Ihre Apigee-Instanz:
gcloud compute network-endpoint-groups create apigee-neg-$REGION \ --network-endpoint-type=private-service-connect \ --psc-target-service=$PSC_ATTACHMENT \ --region=$REGION \ --network=$VPC_NETWORK_NAME \ --subnet=$SUBNET
Die Antwort sollte in etwa so aussehen:
projects/ab123456cd78ef910g-tp/regions/asia-northeast1/serviceAttachments/apigee-asia-northeast1-abcd
- Erstellen Sie einen
HTTP/2
-Backend-Dienst, der auf die PSC-NEG verweist, falls noch keiner vorhanden ist:gcloud compute backend-services create PSC_NEG_BACKEND_SERVICE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP2 \ --global
Dabei ist PSC_NEG_BACKEND_SERVICE der Name des Back-End-Dienstes, den Sie erstellen möchten.
- Fügen Sie den PSC-NEG-Backend-Dienst hinzu:
gcloud compute backend-services add-backend PSC_NEG_BACKEND_SERVICE \ --network-endpoint-group=apigee-neg-$REGION \ --network-endpoint-group-region=$REGION \ --global
Dabei ist PSC_NEG_BACKEND_SERVICE der Name des Back-End-Dienstes, den Sie in einem vorherigen Schritt erstellt haben.
- Aktivieren Sie das Logging für den Backend-Dienst:
gcloud compute backend-services update PSC_NEG_BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1.0
Dabei ist PSC_NEG_BACKEND_SERVICE der Name des Back-End-Dienstes, den Sie in einem vorherigen Schritt erstellt haben.
- EXT_PROC_NAME Dieser Name muss mit dem Namen des API-Proxy übereinstimmen, den Sie in einem früheren Schritt erstellt haben.
- FORWARDING_RULE_NAME ist der Name der Weiterleitungsregel, die Sie in einem früheren Schritt erstellt haben.
- ENV_GROUP_HOSTNAME ist der Domainname, der für die Umgebungsgruppe verwendet wird.
- PSC_NEG_BACKEND_SERVICE ist der Name des Backend-Dienstes, den Sie in einem früheren Schritt erstellt haben.
- Hängen Sie die VerifyAPIKey-Richtlinie an den Extension Processor an.
- API-Produkt erstellen
- Entwickler-App und App-Anmeldedaten erstellen.
- Senden Sie mit dem API-Schlüssel eine Anfrage an den Load Balancer.
Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.
- Wählen Sie den Extension Processor-Proxy aus, den Sie im Abschnitt Extension Processor erstellen erstellt haben.
- Klicken Sie auf den Tab Entwickeln.
- Klicken Sie im Navigationsbereich im Abschnitt Richtlinien auf .
- Wählen Sie im Dialogfeld Richtlinie erstellen in der Liste der Richtlinien die Option VerifyAPIKey aus.
- Füllen Sie im Bereich VerifyAPIKey die erforderlichen Felder in den Abschnitten Name und Display name mit den folgenden Werten aus:
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
VA-verify-api-key
. - Anzeigename: Geben Sie den Namen der Richtlinie ein, der in der Benutzeroberfläche verwendet werden soll. Beispiel:
VA-verify-api-key
.
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
- Klicken Sie auf Erstellen.
Die XML-Spezifikation für die VerifyAPIKey-Richtlinie, die im Extension Processor-Proxy enthalten ist, sollte in etwa so aussehen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <VerifyAPIKey continueOnError="false" enabled="true" name="VA-verify-api-key"> <DisplayName>VA-verify-api-key</DisplayName> <Properties/> <APIKey ref="request.queryparam.x-api-key"/> </VerifyAPIKey>
- Stellen Sie die neue Proxy-Überarbeitung bereit.
- Folgen Sie der Anleitung unter API-Produkt erstellen, um ein API-Produkt für Ihren Dienst zu erstellen. Sie können die Produktdetails für das API-Produkt beliebig konfigurieren.
- Folgen Sie der Anleitung unter Vorgänge, um dem API-Produkt einen API-Vorgangssatz hinzuzufügen. Beachten Sie dabei die folgenden Spezifikationen:
- Quelle:
Rufen Sie in der Google Cloud Console die Seite Verteilung > API-Produkte auf.
Wählen Sie das API-Produkt aus, das Sie in einem vorherigen Schritt erstellt haben. - Vorgang: Klicken Sie auf Bearbeiten und konfigurieren Sie die folgenden Pfade und Methoden:
- Pfad:
/get
mit Methode:GET
- Pfad:
/PROXY_NAME
mit Methode:GET
PROXY_NAME ist der Name des Proxys, den Sie in einem früheren Schritt erstellt haben.
- Pfad:
- Quelle:
Rufen Sie in der Google Cloud Console die Seite Apigee API-Verwaltung auf:
- Entwickler erstellen:
- Wählen Sie Vertrieb > Entwickler aus.
- Klicken Sie auf der Seite Entwickler auf + Erstellen.
- Füllen Sie auf der Seite Entwickler hinzufügen die erforderlichen Felder mit beliebigen Werten aus.
- Klicken Sie auf Hinzufügen.
- App erstellen:
- Wählen Sie Vertrieb> Apps aus.
- Klicken Sie auf der Seite Apps auf + Erstellen.
- Füllen Sie auf der Seite App erstellen die erforderlichen Felder im Bereich App-Details mit den folgenden Werten aus:
- App-Name: Geben Sie einen Namen für die App ein, z. B.
ext-proc-app
. - Entwickler: Wählen Sie den Entwickler aus, den Sie im vorherigen Schritt erstellt haben, oder einen anderen Entwickler aus der Liste.
- App-Name: Geben Sie einen Namen für die App ein, z. B.
- Klicken Sie im Abschnitt App-Anmeldedaten auf + Anmeldedaten hinzufügen.
- Wählen Sie im Bereich Anmeldedaten im Listenfeld Ablauf die Option Nie aus.
- Klicken Sie im Bereich Produkte auf + Produkte hinzufügen, um den Bereich Produkte hinzufügen aufzurufen.
- Wählen Sie das API-Produkt aus, das Sie im vorherigen Schritt erstellt haben.
- Klicken Sie auf OK.
- Klicken Sie auf Hinzufügen, um den Bereich Produkte hinzufügen zu schließen.
- Klicken Sie auf Erstellen.
- Klicken Sie auf der Seite App Details im Abschnitt Credential auf
visibility_off, um den Wert des Key anzuzeigen.
Kopieren Sie den Wert
Key
. Mit diesem Schlüssel führen Sie in einem späteren Schritt API-Aufrufe an Ihren Dienst aus. - Klicken Sie auf der Seite App-Details im Abschnitt Anmeldedaten auf visibility_off, um den Wert des App-Secrets aufzurufen.
- LB_DOMAIN_NAME ist der Domainname, den Sie für den Load-Balancer und das SSL-Zertifikat verwendet haben.
- API_KEY ist der API-Schlüssel aus den Anmeldedaten der Entwickler-App, die in einem früheren Schritt angezeigt wurden.
- Hängen Sie die AssignMessage-Richtlinie an den Proxy an.
- Anfrage an den Load-Balancer senden, um die Token-Einfügung zu testen
Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.
- Wählen Sie den Extension Processor-Proxy aus, den Sie im Abschnitt Extension Processor erstellen erstellt haben.
- Klicken Sie auf den Tab Entwickeln.
- Klicken Sie im Navigationsbereich im Abschnitt Richtlinien auf .
- Wählen Sie im Dialogfeld Richtlinie erstellen in der Liste der Richtlinien die Option AssignMessage aus.
- Füllen Sie im Bereich Mitteilung zuweisen die erforderlichen Felder in den Abschnitten Name und Anzeigename mit den folgenden Werten aus:
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
AM-auth
. - Anzeigename: Geben Sie einen Richtliniennamen ein, der in der Benutzeroberfläche angezeigt werden soll. Beispiel:
AM-auth
.
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
- Klicken Sie auf Erstellen.
- Fügen Sie unter dem
<Set>
-Element die folgenden untergeordneten Elemente hinzu:<Set> <Authentication> <HeaderName>Authorization</HeaderName> <GoogleAccessToken> <Scopes> <Scope>https://www.googleapis.com/auth/cloud-platform</Scope> </Scopes> </GoogleAccessToken> </Authentication> </Set>
- Klicken Sie auf Speichern.
- Stellen Sie die neue Überarbeitung mit einem Google -Dienstkonto bereit.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Installieren des Apigee Extension Processor benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Umgebungsvariablen festlegen
Legen Sie im Google Cloud -Projekt, das Ihre Apigee-Instanz enthält, Umgebungsvariablen mit dem folgenden Befehl fest:
export PROJECT_ID=PROJECT_ID
export ORG_NAME=$PROJECT_ID
export REGION=REGION
export INSTANCE=INSTANCE
export VPC_NETWORK_NAME=VPC_NETWORK_NAME
export SUBNET=SUBNET
Wobei:
Führen Sie den folgenden Befehl aus und prüfen Sie die Ausgabe, um zu bestätigen, dass die Umgebungsvariablen richtig festgelegt sind:
echo $PROJECT_ID $ORG_NAME $REGION $INSTANCE $VPC_NETWORK_NAME $SUBNET
Authentifizierungstoken konfigurieren
Führen Sie den folgenden Befehl aus, um ein Authentifizierungstoken zu konfigurieren:
export TOKEN=$(gcloud auth print-access-token)
echo $TOKEN
Load-Balancer für einen Backend-Dienst konfigurieren
In den folgenden Abschnitten werden die Schritte beschrieben, die zum Einrichten eines globalen externen Application Load Balancers für einen Backend-Dienst erforderlich sind. Als Beispiel wird httpbin.org verwendet:
Globalen externen Application Load Balancer erstellen
So erstellen Sie das Lastenausgleichsmodul:
Netzwerk-Endpunktgruppe (NEG) erstellen
So erstellen Sie die Netzwerk-Endpunktgruppe (NEG) für Ihren Load-Balancer:
Backend-Dienst erstellen
So erstellen Sie den Back-End-Dienst, der vom Load-Balancer bereitgestellt wird:
URL-Zuordnung erstellen
Verwenden Sie den folgenden Befehl, um eine URL-Zuordnung zwischen dem Load Balancer und dem Backend-Dienst zu erstellen:
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE_NAME \ --global
Wobei:
Zielproxy erstellen
Verwenden Sie den folgenden Befehl, um einen Zielproxy für den Load Balancer zu erstellen:
gcloud compute target-https-proxies create TARGET_PROXY_NAME \ --global \ --ssl-certificates SSL_CERT_NAME \ --global-ssl-certificates \ --url-map URL_MAP_NAME \ --global-url-map
Wobei:
Globale Weiterleitungsregel erstellen
Verwenden Sie den folgenden Befehl, um eine globale Weiterleitungsregel für den Load Balancer zu erstellen:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=IP_ADDRESS \ --target-https-proxy=TARGET_PROXY_NAME \ --ports=443 \ --global
Wobei:
Apigee Extension Processor konfigurieren
In den folgenden Abschnitten werden die Schritte beschrieben, die zum Einrichten des Apigee Extension Processor erforderlich sind:
Apigee-Umgebung erstellen
Proxy für den Erweiterungsprozessor erstellen
Der Extension Processor-Proxy ist ein Apigee-API-Proxy, der verwendet wird, um API-Verwaltungsrichtlinien auf den Load-Balancer-Traffic anzuwenden. Sie können einen Proxy ohne Ziel oder einen SSE-Proxy (Server-Sent Events) erstellen. Weitere Informationen zur Verwendung von SSE mit Apigee finden Sie unter Server-sent events.
So erstellen Sie einen Apigee-API-Proxy für die Verwendung mit dem Extension Processor-Load Balancer:
Kein Ziel-Proxy
SSE-fähiger Proxy
Traffic-Erweiterung konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie die Traffic-Diensterweiterung für Ihren Extension Processor konfigurieren. Gehen Sie dazu so vor:
Netzwerk-Endpunktgruppe von Apigee Private Service Connect erstellen
In diesem Abschnitt erstellen Sie eine Apigee Private Service Connect-Netzwerk-Endpunktgruppe (PSC-NEG), die zum Herstellen einer Verbindung zu Ihrer Apigee-Instanz verwendet wird. Weitere Informationen zu PSC finden Sie unter Southbound-Netzwerkmuster.
So erstellen Sie eine Apigee-PSC-NEG:
Load-Balancer-Diensterweiterung erstellen
Wenn Sie eine Load-Balancer-Diensterweiterung erstellen, können Sie das Verhalten des Erweiterungsprozessor-Proxys anpassen, indem Sie die Werte verschiedener Felder ändern, die die Erweiterung beschreiben. Das geht so:
Körperbearbeitung | Unterstützte Ereignisse | Metadaten | Sendemodus |
---|---|---|---|
Verarbeitung von Anfrage- und Antworttext |
|
|
|
Nur Anfragetextverarbeitung |
|
|
|
Nur Antworttextverarbeitung |
|
|
|
In diesem Schritt erstellen Sie eine Load-Balancer-Diensterweiterung, die die Verarbeitung von Anfrage- und Antworttext unterstützt:
curl -X POST "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions?lbTrafficExtensionId=global-xlb-httpbin-apim-policy" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "global-xlb-httpbin-apim-policy", "forwardingRules": [ "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME" ], "extensionChains": [ { "name": "httpbin-apigee-extension-chain", "matchCondition": { "celExpression": "true" }, "extensions": [ { "name": "httpbin-apigee-extension", "authority": "ENV_GROUP_HOSTNAME", "service": "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/backendServices/PSC_NEG_BACKEND_SERVICE", "supportedEvents": [ "REQUEST_HEADERS", "REQUEST_BODY", "REQUEST_TRAILERS", "RESPONSE_HEADERS", "RESPONSE_BODY", "RESPONSE_TRAILERS" ], "timeout": "1s", "requestBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED", "responseBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED" } ] } ], "loadBalancingScheme": "EXTERNAL_MANAGED", "metadata": { "apigee-extension-processor": "EXT_PROC_NAME", "apigee-request-body": "true", "apigee-response-body": "true" } }'
Wobei:
Dieser Vorgang kann einige Minuten dauern.
Verwenden Sie den folgenden Befehl, um zu bestätigen, dass die Dienst-Extension erstellt wurde:
curl "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions/httpbin-apigee-extension" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
Die Antwort sollte in etwa so aussehen und die Weiterleitungsregel und den Backend-Dienst enthalten:
createTime: '2025-03-22T00:29:16.056719825Z' extensionChains: - extensions: - authority: extension-processor-test.hybrid.e2e.apigeeks.net name: httpbin-apigee-extension service: https://www.googleapis.com/compute/v1/projects/123456789012/global/backendServices/ep-test-psc-neg-bes supportedEvents: - REQUEST_HEADERS - REQUEST_BODY - REQUEST_TRAILERS - RESPONSE_HEADERS - RESPONSE_BODY - RESPONSE_TRAILERS timeout: 1s matchCondition: celExpression: 'true' name: httpbin-apigee-extension-chain forwardingRules: - https://www.googleapis.com/compute/v1/projects/123456789012/global/forwardingRules/ep-test-fw-rule loadBalancingScheme: EXTERNAL_MANAGED metadata: apigee-extension-processor: ep-test-proxy apigee-request-body: true apigee-response-body: true name: projects/extension-processor-test/locations/global/lbTrafficExtensions/global-xlb-httpbin-apim-policy updateTime: '2025-03-22T00:29:31.183275055Z'
Anfrage an den Load Balancer senden
So testen Sie den Load Balancer und die Einrichtung des Extension Processors:
curl "https://LB_DOMAIN_NAME/get"
Dabei ist LB_DOMAIN_NAME der Domainname, den Sie für den Load-Balancer und das SSL-Zertifikat verwendet haben. Wenn Sie nip.io
verwendet haben, sieht der Domainname in etwa so aus: IP_ADDRESS.nip.io
.
Die Antwort sollte in etwa so aussehen:
{"status": 200, { "args": {}, "headers": { ... }, "origin": "173.93.50.108", "url": "https://httpbin.org/get" } }
Richtlinien mit dem Extension Processor verwenden
In diesem Abschnitt wird beschrieben, wie Sie Richtlinien mit dem Extension Processor verwenden.
In diesem Beispiel sind eine VerifyAPIkey- und eine AssignMessage-Richtlinie für den Erweiterungsprozessor konfiguriert. Diese Richtlinien werden verwendet, um API-Schlüssel zu validieren, die in Anfragen an Apigee enthalten sind, und um ein Google-Token in Anfrageheadern für Aufrufe eines Back-End-Dienstes einzufügen. Dieses Szenario ist nützlich für API-Anbieter, die den Apigee Extension Processor verwenden, um Anfragen an ihre Apigee-Dienste zu autorisieren und zu authentifizieren und die für einen Backend-Dienst wie Vertex AI erforderlichen Google auth-Tokens nahtlos einzufügen.
VerifyAPIKey-Richtlinie für die API-Schlüsselvalidierung hinzufügen
In den folgenden Abschnitten wird beschrieben, wie Sie die VerifyAPIKey-Richtlinie verwenden, um API-Schlüssel für Aufrufe Ihres Back-End-Dienstes mit dem Extension Processor zu validieren:
VerifyAPIKey-Richtlinie an den Proxy anhängen
So hängen Sie eine VerifyAPIKey-Richtlinie an den Extension Processor-Proxy an:
API-Produkt erstellen
So erstellen Sie ein API-Produkt und konfigurieren die API-Vorgangsmenge für Ihren Dienst:
Entwickler-App und App-Anmeldedaten erstellen
So erstellen Sie eine Entwickler-App und App-Anmeldedaten für das neu erstellte API-Produkt:
Senden Sie mit dem API-Schlüssel eine Anfrage an den Load-Balancer.
So testen Sie die API-Schlüsselvalidierung: Senden Sie eine Anfrage mit dem API-Schlüssel an den Load Balancer:
curl "https://LB_DOMAIN_NAME/get"
Dabei ist LB_DOMAIN_NAME der Domainname, den Sie für den Load-Balancer und das SSL-Zertifikat verwendet haben.
Die Antwort sollte ohne API-Schlüssel fehlschlagen.
Senden Sie eine weitere Anfrage an den Load-Balancer und verwenden Sie dabei den API-Schlüssel in der Anfrage:
curl "https://LB_DOMAIN_NAME/get?key=API_KEY"
Wobei:
Die Antwort sollte eine erfolgreiche Autorisierung für den Endpunkt angeben. Dies gibt an, dass der Erweiterungsprozessor den API-Schlüssel validiert hat und die Anfrage jetzt vom Apigee-Proxy verarbeitet werden kann.
AssignMessage-Richtlinie für die Google Authentifizierung hinzufügen
Wenn Sie Ihren Extension Processor verwenden möchten, um die API-Verwaltung für einen von Google authentifizierten Dienst bereitzustellen, können Sie mit der AssignMessage-Richtlinie ein Google-Zugriffstoken oder ein Google-ID-Token in Anfragen einfügen, die an den Back-End-Dienst gesendet werden.
In den folgenden Abschnitten wird beschrieben, wie Sie mit der AssignMessage-Richtlinie ein Google -Authentifizierungstoken in Anfragen einfügen, die mit dem Extension Processor an den Back-End-Dienst gesendet werden:
AssignMessage-Richtlinie an den Proxy anhängen
So fügen Sie Ihrem Proxy die AssignMessage-Richtlinie hinzu:
Das Dienstkonto wird verwendet, um Google Zugriffstokens zu generieren und in den Anfrageheader für API-Aufrufe an Google Backend-Dienste einzufügen.
Anfrage an den Load Balancer senden, um die Token-Einfügung zu testen
Senden Sie eine Anfrage an den Load Balancer, um zu bestätigen, dass die Token-Einfügung funktioniert:
curl "https://LB_DOMAIN_NAME/get"
Dabei ist LB_DOMAIN_NAME der Domainname, den Sie für den Load-Balancer und das SSL-Zertifikat verwendet haben.
Die Antwort sollte in etwa so aussehen:
{ ... "headers": { "Accept": "*/*", "Authorization": "Bearer ya29.c.c0ASRK0Gbw03y9cfvxL11DxaRYBQUU18SmUP4Vu63OckHI5cX7wJ4DmGMG2vbDDS69HXJHqMj-lak4tcqOsJGmE65crn2gNuJLanXidwM8", "First": "1.0", "Host": "apigee-ext-proc-test.apigee.net", "Second": "1.0", "Sum": "2", "User-Agent": "curl/8.7.1", "X-Api-Key": "McYcHGR3PTSGLXExvKADwQ1JJeCjgPDUvAakCl0rJKCFaX0Y", "X-Cloud-Trace-Context": "0fd3dadc2a3c328fa968d5f5f1434c29/18300783092696918345" }, ... }
In der Antwort sollte die erfolgreiche Einfügung des Google -Authentifizierungstokens in den Anfrage-Header zu sehen sein.
Nach erfolgreicher Anwendung der AssignMessage-Richtlinie wird die erfolgreiche Anfrage des Clients (mit dem API-Schlüssel) an Apigee im Beispielszenario weiter modifiziert, um einen Google-Authentifizierungstoken im Anfrageheader einzufügen, wie es vom Google-authentifizierten Back-End-Dienst erforderlich ist.