Erste Schritte mit dem Apigee Extension Processor

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:

Hinweise

Bevor Sie mit der Einrichtung des Apigee Extension Processor beginnen, führen Sie die folgenden Aufgaben aus:

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. 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.

  9. Stellen Sie eine Apigee-Instanz mit Version 1-15-0-apigee-2 oder 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:

    Zur Seite „VM-Instanzen“

    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.

  10. 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:

    Zur Seite VPC-Netzwerke

  11. 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_ID
    export ORG_NAME=$PROJECT_ID
    export REGION=REGION
    export INSTANCE=INSTANCE
    export VPC_NETWORK_NAME=VPC_NETWORK_NAME
    export SUBNET=SUBNET

    Wobei:

    • 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.

    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:

    1. Globalen externen Application Load Balancer erstellen
    2. Netzwerk-Endpunktgruppe (NEG) erstellen
    3. Back-End-Dienst erstellen
    4. URL-Zuordnung erstellen
    5. Zielproxy erstellen
    6. Globale Weiterleitungsregel erstellen

    Globalen externen Application Load Balancer erstellen

    So erstellen Sie das Lastenausgleichsmodul:

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    Netzwerk-Endpunktgruppe (NEG) erstellen

    So erstellen Sie die Netzwerk-Endpunktgruppe (NEG) für Ihren Load-Balancer:

    1. 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.

    2. 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.

    Backend-Dienst erstellen

    So erstellen Sie den Back-End-Dienst, der vom Load-Balancer bereitgestellt wird:

    1. 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.

    2. 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-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:

    • 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.

    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:

    • 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.

    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:

    • 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.

    Apigee Extension Processor konfigurieren

    In den folgenden Abschnitten wird beschrieben, wie Sie den Apigee Extension Processor einrichten:

    1. Apigee-Umgebung erstellen
    2. Proxy für den Erweiterungsprozessor erstellen

    Apigee-Umgebung erstellen

    1. 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.

    2. 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.

    3. 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.
    4. 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.

    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

    1. 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>
    2. Folgen Sie der Anleitung unter API-Proxy bereitstellen, um den Proxy in der zuvor erstellten Umgebung bereitzustellen.

    SSE-fähiger Proxy

    1. 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>
    2. 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>
    3. Folgen Sie der Anleitung unter API-Proxy bereitstellen, um den Proxy in der zuvor erstellten Umgebung bereitzustellen.

    Traffic-Erweiterung konfigurieren

    In diesem Abschnitt wird beschrieben, wie Sie die Traffic-Diensterweiterung für Ihren Extension Processor konfigurieren. Gehen Sie dazu so vor:

    1. Erstellen Sie die Traffic-Erweiterung mit der Extension Processor Provisioning API.
    2. Senden Sie eine Anfrage an den Load-Balancer.

    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:

    • 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 true und false.
    • ENV_GROUP_HOSTNAME ist der Hostname der Umgebungsgruppe, die Sie in einem früheren Schritt erstellt haben.

    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:

    • networkConfigs: Aktualisierungen der Felder region und subnet.
    • extensions: Aktualisiert die Felder name, matchCondition, failOpen, hostname und supportedEvents.
    • extensionProcessor: Aktualisiert das Feld extensionProcessor.

    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:

    • 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.

    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:

    • 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.

    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:

    • 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.

    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:

    • 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.

    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:

    1. Hängen Sie die VerifyAPIKey-Richtlinie an den Extension Processor an.
    2. API-Produkt erstellen
    3. Entwickler-App und App-Anmeldedaten erstellen
    4. Senden Sie mit dem API-Schlüssel eine Anfrage an den Load Balancer.

    VerifyAPIKey-Richtlinie an den Proxy anhängen

    So hängen Sie eine VerifyAPIKey-Richtlinie an den Extension Processor-Proxy an:

    1. Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.

      Zu „API-Proxys“

    2. Wählen Sie den Extension Processor-Proxy aus, den Sie im Abschnitt Extension Processor erstellen erstellt haben.
    3. Klicken Sie auf den Tab Entwickeln.
    4. Klicken Sie im Navigationsbereich im Abschnitt Richtlinien auf .
    5. Wählen Sie im Dialogfeld Richtlinie erstellen in der Liste der Richtlinien die Option VerifyAPIKey aus.
    6. 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.
    7. 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>
    8. Stellen Sie die neue Proxy-Überarbeitung bereit.

    API-Produkt erstellen

    So erstellen Sie ein API-Produkt und konfigurieren die API-Vorgangsmenge für Ihren Dienst:

    1. 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.
    2. 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.

        Zu „API-Produkte“

        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: /TARGET_PROXY_NAME mit Methode: GET

          TARGET_PROXY_NAME ist der Name des Proxys, der Erweiterungstraffic verarbeitet.

    Entwickler-App und App-Anmeldedaten erstellen

    So erstellen Sie eine Entwickler-App und App-Anmeldedaten für das neu erstellte API-Produkt:

    1. Rufen Sie in der Google Cloud Console die Seite Apigee API-Verwaltung auf:

      API-Verwaltung mit Apigee

    2. Entwickler erstellen:
      1. Wählen Sie Vertrieb > Entwickler aus.
      2. Klicken Sie auf der Seite Entwickler auf + Erstellen.
      3. Füllen Sie auf der Seite Entwickler hinzufügen die erforderlichen Felder mit beliebigen Werten aus.
      4. Klicken Sie auf Hinzufügen.
    3. App erstellen:
      1. Wählen Sie Vertrieb> Apps aus.
      2. Klicken Sie auf der Seite Apps auf + Erstellen.
      3. 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.
      4. Klicken Sie im Abschnitt App-Anmeldedaten auf + Anmeldedaten hinzufügen.
      5. Wählen Sie im Abschnitt Anmeldedaten im Listenfeld Ablaufdatum die Option Nie aus.
      6. Klicken Sie im Bereich Produkte auf + Produkte hinzufügen, um den Bereich Produkte hinzufügen aufzurufen.
      7. Wählen Sie das API-Produkt aus, das Sie im vorherigen Schritt erstellt haben.
      8. Klicken Sie auf OK.
      9. Klicken Sie auf Hinzufügen, um den Bereich Produkte hinzufügen zu schließen.
      10. Klicken Sie auf Erstellen.
    4. Klicken Sie auf der Seite App Details im Abschnitt Credential auf , 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.

    5. Klicken Sie auf der Seite App-Details im Abschnitt Anmeldedaten auf , um den Wert des App-Secrets aufzurufen.

    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:

    • 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.

    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:

    1. Hängen Sie die AssignMessage-Richtlinie an den Proxy an.
    2. Anfrage an den Load-Balancer senden, um die Token-Einfügung zu testen

    AssignMessage-Richtlinie an den Proxy anhängen

    So fügen Sie Ihrem Proxy die AssignMessage-Richtlinie hinzu:

    1. Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.

      Zu „API-Proxys“

    2. Wählen Sie den Extension Processor-Proxy aus, den Sie im Abschnitt Extension Processor erstellen erstellt haben.
    3. Klicken Sie auf den Tab Entwickeln.
    4. Klicken Sie im Navigationsbereich im Abschnitt Richtlinien auf .
    5. Wählen Sie im Dialogfeld Richtlinie erstellen in der Liste der Richtlinien die Option AssignMessage aus.
    6. 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.
    7. Klicken Sie auf Erstellen.
    8. 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>
    9. Klicken Sie auf Speichern.
    10. Stellen Sie die neue Überarbeitung mit einem Google -Dienstkonto bereit.

    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.