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 Service Extensions unterstützt.
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 von 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 Konfiguration der wichtigsten Elemente des Apigee Extension Processor geführt:
- Load-Balancer für einen Backend-Dienst konfigurieren
- Apigee Extension Processor konfigurieren
- Traffic-Erweiterung konfigurieren
- Richtlinien mit dem Extension Processor verwenden
Hinweise
Bevor Sie mit der Einrichtung des Apigee Extension Processor beginnen, führen Sie die folgenden Aufgaben aus:
- 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. 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 updateaus, um die neuesten gcloud-Komponenten abzurufen.Stellen Sie eine Apigee-Instanz mit Version
1-15-0-apigee-2oder höher bereit, falls noch nicht geschehen.Auf der Seite Instanzdetails der Apigee-UI in der Google Cloud Console können Sie die Instanzversionen aufrufen. Rufen Sie in der Google Cloud Console die Seite Instanzen auf, um eine Instanz auszuwählen und ihre Details anzusehen:
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) in der Organisation -
Diensterweiterungen erstellen und verwalten:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin) in der Organisation -
Netzwerk-Endpunktgruppen (NEGs) erstellen und verwalten:
Compute-Instanzadministrator (
roles/compute.instanceAdmin) in der Organisation -
Netzwerkressourcen erstellen und verwalten:
Compute-Netzwerkadministrator (
roles/compute.networkAdmin) für die Organisation -
Backend-Dienste erstellen und verwalten:
Administrator für Compute-Load-Balancer (
roles/compute.loadBalancerAdmin) für die Organisation -
Apigee-Ressourcen erstellen und verwalten:
Apigee Org Admin (
roles/apigee.admin) in der Organisation -
Traffic-Erweiterungen erstellen und verwalten:
Apigee APIM Service Extension Admin (
roles/apigee.apimServiceExtensionAdmin) für die Organisation -
Traffic-Erweiterungen ansehen:
Apigee APIM Service Extension Viewer (
roles/apigee.apimServiceExtensionViewer) für die Organisation -
Lang andauernde Vorgänge verwalten:
Apigee APIM Service Extension Service Agent (
roles/apigee.apimServiceExtensionServiceAgent) für den Dienst-Agent im Google Cloud -Projekt PROJECT_IDist die ID des Projekts mit Ihrer Apigee-Instanz.REGIONist die Google Cloud Region Ihrer Apigee-Instanz.INSTANCEist der Name Ihrer Apigee-Instanz.VPC_NETWORK_NAMEist der Name des VPC-Netzwerk in Ihrem Google Cloud Projekt, das Sie für den Apigee Extension Processor verwenden möchten.SUBNETist 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
- Zielproxy erstellen
- Globale Weiterleitungsregel erstellen
- Konfigurieren Sie
gcloudfü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
Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-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.ioerstellt 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, der Erweiterungstraffic verarbeitet.
- 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 No target-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. Dieser Name dient als Kennzeichnung für den Erweiterungsprozessor.
- 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 Proxy für vom Server gesendete Ereignisse 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
EventFlowim 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.
- Erstellen Sie die Traffic-Erweiterung mit der Extension Processor Provisioning API.
- Senden Sie eine Anfrage an den Load-Balancer.
- TRAFFIC_EXT_NAME ist der Name der Traffic-Erweiterung, die Sie erstellen.
- LB_FORWARDING_RULE ist der Name der Weiterleitungsregel, die Sie in einem früheren Schritt erstellt haben.
- NETWORK ist der Name des Netzwerks, das Sie in einem früheren Schritt erstellt haben.
- TARGET_PROXY_NAME ist der Name des Proxys, der Erweiterungstraffic verarbeitet.
- CEL_EXPRESSION ist der CEL-Ausdruck (Common Expression Language), den Sie für die Traffic-Erweiterung verwenden möchten. Weitere Informationen zur CEL-Syntax finden Sie in der CEL-Matcher-Sprachreferenz.
- FAIL_OPEN ist ein boolescher Wert, der angibt, ob die Verkehrserweiterung offen oder geschlossen ist. Gültige Werte sind
trueundfalse. - ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe, die Sie in einem früheren Schritt erstellt haben.
networkConfigs: Aktualisierungen der Felderregionundsubnet.extensions: Aktualisiert die Feldername,matchCondition,failOpen,hostnameundsupportedEvents.extensionProcessor: Aktualisiert das FeldextensionProcessor.- TRAFFIC_EXT_NAME ist der Name der Erweiterung für den Extension Processor-Traffic, die aktualisiert werden soll.
- REGION ist die Region der aktualisierten Region.
- SUBNET ist das neue Subnetz des Netzwerks.
- TRAFFIC_EXT_NAME ist der Name der Erweiterung für den Extension Processor-Traffic, die aktualisiert werden soll.
- TARGET_PROXY_NAME ist der Name des Proxys, der Erweiterungstraffic verarbeitet.
- NEW_CEL_EXPRESSION ist der aktualisierte CEL-Ausdruck.
- NEW_FAIL_OPEN ist der aktualisierte boolesche Wert für „Fail-Open“.
- NEW_ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe.
- TRAFFIC_EXT_NAME ist der Name der Erweiterung für den Extension Processor-Traffic, die aktualisiert werden soll.
- NEW_TARGET_PROXY_NAME ist der neue Name des Proxys, der Erweiterungstraffic verarbeitet.
- TRAFFIC_EXT_NAME ist der Name der Erweiterung für den Extension Processor-Traffic, die aktualisiert werden soll.
- TARGET_PROXY_NAME ist der Name des Proxys, der Erweiterungstraffic verarbeitet.
- NEW_CEL_EXPRESSION ist der aktualisierte CEL-Ausdruck.
- NEW_FAIL_OPEN ist der aktualisierte boolesche Wert für „Fail-Open“.
- NEW_ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe.
- NEW_TARGET_PROXY_NAME ist der neue Name des Proxys, der Erweiterungstraffic verarbeitet.
- 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 im Extension Processor-Proxy 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 nach Belieben 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:
/getmit Methode:GET - Pfad:
/TARGET_PROXY_NAMEmit Methode:GETTARGET_PROXY_NAME ist der Name des Proxys, der Erweiterungstraffic verarbeitet.
- 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 Abschnitt 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 Abschnitt Anmeldedaten im Listenfeld Ablaufdatum 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 Assign Message (Mitteilung zuweisen) die erforderlichen Felder in den Abschnitten Name (Name) und Display name (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 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, mit dem folgenden Befehl Umgebungsvariablen fest:
export PROJECT_ID=PROJECT_IDexport ORG_NAME=$PROJECT_IDexport REGION=REGIONexport INSTANCE=INSTANCEexport VPC_NETWORK_NAME=VPC_NETWORK_NAMEexport 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 wird beschrieben, wie Sie einen globalen externen Application Load Balancer für einen Backend-Dienst einrichten. 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, damit er Traffic von Dienst-Erweiterungen verarbeiten kann:
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 wird beschrieben, wie Sie den Apigee Extension Processor einrichten:
Apigee-Umgebung erstellen
Proxy für 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 Proxy mit vom Server gesendeten Ereignissen (Server-Sent Events, SSE) 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:
Traffic-Erweiterung mit der Extension Processor Provisioning API erstellen
In diesem Schritt erstellen Sie mit der Extension Processor Provisioning API eine Traffic-Diensterweiterung für Ihren Extension Processor.
Erstellen Sie die Traffic-Erweiterung mit dem folgenden Befehl, um die Extension Processor Provisioning API aufzurufen:
curl -X POST -H "Authorization: Bearer $TOKEN" \ https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions?apimServiceExtensionId=TRAFFIC_EXT_NAME \ -H "Content-Type:application/json" -d \ '{ "extensionProcessor": "TARGET_PROXY_NAME" "lbForwardingRule": "LB_FORWARDING_RULE", "network" : "NETWORK", "networkConfigs": [ { "region": "$REGION", "subnet": "project/my-project/regions/$REGION/subnetworks/$SUBNET" } ], "extensions": [ { "name": "TARGET_PROXY_NAME", "matchCondition": "CEL_EXPRESSION", "failOpen": FAIL_OPEN, "hostname": "ENV_GROUP_HOSTNAME", "supportedEvents": [ "REQUEST_HEADERS", "RESPONSE_HEADERS" ] } ] }'
Wobei:
Dieser Vorgang kann einige Minuten dauern.
Details zur Traffic-Erweiterung abrufen
Mit dem folgenden Befehl können Sie prüfen, ob die Erweiterung für den Traffic-Dienst erfolgreich erstellt wurde:
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions/TRAFFIC_EXT_NAME"
Ersetzen Sie TRAFFIC_EXT_NAME durch den Namen der Traffic-Erweiterung, die Sie gerade erstellt haben.
Die Antwort sieht in etwa so aus:
{ "name": "my-traffic-extension", "extensionProcessor": "my-extension-processor", "lbForwardingRule": "https://www.googleapis.com/compute/v1/projects/my-project/global/forwardingRules/my-forwarding-rule", "network": "projects/my-project/global/networks/my-network", "networkConfigs": [ { "region": "us-west1", "subnet": "projects/my-project/regions/us-west1/subnetworks/my-subnet" } ], "extensions": [ { "name": "organizations/my-org/apis/my-api-proxy", "matchCondition": "request.url.contains('1234567890')", "failOpen": true, "hostname": "my-hostname.apigee.net", "supportedEvents": [ "REQUEST_HEADERS", "RESPONSE_HEADERS" ] } ] }
Traffic-Erweiterung aktualisieren
Mit dem Parameter updateMask können Sie die Traffic-Erweiterung aktualisieren. Wenn Sie den Parameter updateMask verwenden, geben Sie die Attribute der Ressource an, die Sie aktualisieren möchten, indem Sie eine durch Kommas getrennte Liste bereitstellen.
Die unterstützten Attribute für updateMask sind:
Verwenden Sie zum Aktualisieren einer Traffic-Erweiterung den Befehl curl mit der Methode PATCH. Sie können mehrere Attribute aktualisieren, indem Sie sie als durch Kommas getrennten String in den Abfrageparameter updateMask einfügen (z.B. ?updateMask=extensions,extensionProcessor).
Hier sind einige Beispiele:
networkConfigs aktualisieren (Global LB)
Verwenden Sie den folgenden Befehl, um die Attribute von networkConfigs zu aktualisieren:
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions/TRAFFIC_EXT_NAME?updateMask=networkConfigs \ -H "Content-Type:application/json" -d \ '{ "networkConfigs": [ { "region": "REGION", "subnet": "projects/$PROJECT/regions/REGION/subnetworks/SUBNET" } ] }'
Wobei:
extensions aktualisieren
Verwenden Sie den folgenden Befehl, um die Attribute von extensions zu aktualisieren:
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions/TRAFFIC_EXT_NAME?updateMask=extensions \ -H "Content-Type:application/json" -d \ '{ "extensions": [ { "name": "TARGET_PROXY_NAME", "matchCondition": "NEW_CEL_EXPRESSION", "failOpen": NEW_FAIL_OPEN "hostname": "NEW_ENV_GROUP_HOSTNAME", "supportedEvents": [ "REQUEST_HEADERS", "RESPONSE_HEADERS" ] } ] }'
Wobei:
extensionProcessor aktualisieren
Verwenden Sie den folgenden Befehl, um die Attribute von extensionProcessor zu aktualisieren:
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions/TRAFFIC_EXT_NAME?updateMask=extensionProcessor \ -H "Content-Type:application/json" -d \ '{ "extensionProcessor": "NEW_TARGET_PROXY_NAME" }'
Wobei:
Mehrere Attribute aktualisieren (globaler Load Balancer)
Verwenden Sie den folgenden Befehl, um die Attribute extensions und extensionProcessor gleichzeitig zu aktualisieren:
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ https://apigee.googleapis.com/v1/organizations/$ORG_NAME/apimServiceExtensions/TRAFFIC_EXT_NAME?updateMask=extensions,extensionProcessor \ -H "Content-Type:application/json" -d \ '{ "extensions": [ { "name": "TARGET_PROXY_NAME", "matchCondition": "NEW_CEL_EXPRESSION", "failOpen": NEW_FAIL_OPEN, "hostname": "NEW_ENV_GROUP_HOSTNAME", "supportedEvents": [ "REQUEST_HEADERS", "RESPONSE_HEADERS" ] } ], "extensionProcessor": "NEW_TARGET_PROXY_NAME" }'
Wobei:
Anfrage an den Load Balancer senden
Senden Sie eine Anfrage an den Load Balancer, um die Einrichtung des Load Balancers und des Extension Processors zu testen:
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 sieht in etwa so aus:
{"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 konfigurieren Sie eine VerifyAPIKey- und eine AssignMessage-Richtlinie für den Erweiterungsprozessor. Mit diesen Richtlinien werden API-Schlüssel validiert, die in Anfragen an Apigee enthalten sind, und ein Google-Token wird in Anfrageheadern für Aufrufe eines Back-End-Dienstes eingefügt. 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 -Authentifizierungstokens 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:
Anfrage mit dem API-Schlüssel an den Load-Balancer senden
So testen Sie die Validierung des API-Schlüssels: 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 schlägt ohne API-Schlüssel fehl.
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 weist auf eine erfolgreiche Autorisierung für den Endpunkt hin. Das bedeutet, dass der Erweiterungsprozessor den API-Schlüssel validiert hat und der Apigee-Proxy die Anfrage jetzt verarbeiten 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 generiert Google Zugriffstokens und fügt sie in den Anfrageheader für API-Aufrufe an Google Backend-Dienste ein.
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 sieht in etwa so aus:
{ ... "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" }, ... }
Die Antwort zeigt, dass das Google -Authentifizierungstoken erfolgreich in den Anfrageheader eingefügt wurde.
Nach erfolgreicher Anwendung der AssignMessage-Richtlinie wird die erfolgreiche Anfrage des Clients (mit dem API-Schlüssel) an Apigee im Beispielszenario so geändert, dass sie einen Google-Authentifizierungstoken im Anfrageheader enthält, wie es vom Google-authentifizierten Back-End-Dienst erforderlich ist.