Anleitung und Anforderungen für Lab-Einrichtung
Schützen Sie Ihr Konto und Ihren Fortschritt. Verwenden Sie immer den privaten Modus und Lab-Anmeldedaten, um dieses Lab auszuführen.

APIs mit Apigee X veröffentlichen

Lab 45 Minuten universal_currency_alt 5 Guthabenpunkte show_chart Mittelstufe
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Dieser Inhalt ist noch nicht für Mobilgeräte optimiert.
Die Lernumgebung funktioniert am besten, wenn Sie auf einem Computer über einen per E‑Mail gesendeten Link darauf zugreifen.

GSP843

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

APIs sind für die Nutzung durch App-Entwickler konzipiert, die APIs verwenden, um ihren Nutzern einzigartige Erlebnisse zu bieten. Mit der Apigee API-Plattform von Google Cloud können Sie APIs veröffentlichen und für App-Entwickler zur Nutzung bereitstellen.

In diesem Lab erstellen Sie einen Apigee API-Proxy, der eine Überprüfung des API-Schlüssels erfordert, um den Zugriff auf die API einzuschränken.

Sie erstellen API-Produkte, um interne und externe Anwendungsentwickler mit unterschiedlichen Service-Levels zu versorgen. Sie verwenden eine Kontingentrichtlinie, um die Anzahl der Aufrufe für jede bestimmte Anwendung zu begrenzen. Sie erstellen eine CORS-Richtlinie, um der API die Funktion „Cross-Origin Resource Sharing“ hinzuzufügen, damit sie von Webanwendungen aufgerufen werden kann. Anschließend erstellen Sie ein Entwicklerportal und veröffentlichen die API-Produkte zur Nutzung durch App-Entwickler.

Lerninhalte

Aufgaben in diesem Lab:

  • API-Schlüssel bestätigen, um den Zugriff auf eine API einzuschränken und die Anwendungsnutzung zu verfolgen
  • API-Produkte erstellen, um verschiedenen Arten von App-Entwicklern unterschiedliche Zugriffsebenen zu ermöglichen
  • Mit Kontingentrichtlinie die Anzahl der Aufrufe für eine bestimmte Anwendung basierend auf dem angehängten API-Produkt begrenzen
  • CORS-Funktionen (Cross-Origin Resource Sharing) zu einer API hinzufügen, um Cross-Origin-API-Aufrufe von Webanwendungen zu ermöglichen
  • Entwicklerportal erstellen und API-Produkte veröffentlichen

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange Google Cloud-Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich „Details zum Lab“ mit diesen Informationen:

    • Schaltfläche „Google Cloud Console öffnen“
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite „Anmelden“ geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich „Details zum Lab“.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein. Symbol für das Navigationsmenü und Suchfeld

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

  2. Klicken Sie sich durch die folgenden Fenster:

    • Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
    • Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.

Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Apigee-Konsole öffnen

So öffnen Sie die Apigee-Konsole:

  • Geben Sie in der Google Cloud Console in das Feld Suchen Apigee ein und klicken Sie dann in den Suchergebnissen auf Apigee API Management.

Die Apigee-Konsole wird geöffnet und auf der Landingpage werden Quick Links zu häufig verwendeten Standorten angezeigt.

  • Klicken Sie im Navigationsmenü (Navigationsmenü) neben Apigee auf Favorisieren (Favoritensymbol).

Apigee wurde dem Navigationsmenü als Favorit hinzugefügt.

Aufgabe 1: Backend-Dienst mit einem Apigee API-Proxy weiterleiten

In dieser Aufgabe erstellen Sie einen Apigee API-Proxy, der als Fassade für einen Backend-Dienst fungiert. Der API-Proxy verwendet ein Dienstkonto, damit er OpenID Connect-Identitätstokens für den Cloud Run-Dienst präsentieren kann.

Ein Backend-Dienst mit dem Namen simplebank-rest wurde bereits erstellt und in Cloud Run bereitgestellt.

Apigee-Proxy erstellen

  1. Verwenden Sie in Cloud Shell den folgenden Befehl, um die URL für den Backend-Dienst abzurufen:
gcloud run services describe simplebank-rest --platform managed --region {{{project_0.default_region |REGION}}} --format 'value(status.url)'

Speichern Sie diese URL. Sie wird beim Erstellen des API-Proxys verwendet.

  1. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus.

  2. Wenn Sie einen neuen Proxy mit dem Proxy-Assistenten erstellen möchten, klicken Sie auf +Erstellen.

    Sie erstellen einen Reverse-Proxy für Ihren Backend-Dienst.

  3. Wählen Sie für Proxy-Vorlage die Option Allgemeine Vorlage > Reverse-Proxy (häufigste Option) aus.

    Hinweis: Verwenden Sie im Abschnitt OpenAPI-Spezifikationsvorlage nicht die Option Reverse-Proxy (häufigste Option).
  4. Geben Sie für die Proxydetails Folgendes an:

    Attribut Wert
    Proxy-Name bank-v1
    Basispfad /bank/v1
    Ziel (vorhandene API) Backend-URL
    Hinweis: Prüfen Sie, ob Sie „/bank/v1“ für den Basispfad verwenden und nicht „/bank-v1“.

    Das Ziel sollte die Backend-URL sein, die Sie zuvor in der Aufgabe abgerufen haben. Sie sollte in etwa so aussehen:

    https://simplebank-rest-mtdtzt7yzq-ue.a.run.app
  5. Klicken Sie auf Weiter.

  6. Lassen Sie die Einstellungen unter Bereitstellen (optional) unverändert und klicken Sie auf Erstellen.

Aufgabe 2: VerifyAPIKey-Richtlinie hinzufügen

In diesem Schritt fügen Sie dem API-Proxy die Richtlinie VerifyAPIKey hinzu. Alle Anfragen, die keinen gültigen API-Schlüssel enthalten, werden abgelehnt.

Mit der VerifyAPIKey-Richtlinie wird die Überprüfung von API-Schlüsseln zur Laufzeit erzwungen, sodass nur Anwendungen mit genehmigten API-Schlüsseln auf die API zugreifen können. Die Richtlinie sorgt dafür, dass der API-Schlüssel gültig ist, nicht widerrufen wurde und für die Nutzung der angeforderten Ressource freigegeben wurde.

VerifyAPIKey-Richtlinie hinzufügen

  1. Klicken Sie auf den Tab Entwickeln.

  2. Klicken Sie im Navigationsmenü für den Proxy im Bereich Proxy-Endpunkte auf PreFlow.

    Die VerifyAPIKey-Richtlinie sollte sehr früh im API-Proxy platziert werden. Der Abfrage-PreFlow im Standard-Proxyendpunkt ist der erste Ablauf, der ausgeführt wird, wenn eine Anfrage im API-Proxy eingeht.

  3. Klicken Sie im Bereich Flow rechts oben über dem Anfrage-Flow auf die Schaltfläche + Richtlinienschritt hinzufügen.

  4. Wählen Sie Neue Richtlinie erstellen aus und wählen Sie im Abschnitt Sicherheit unter Richtlinie auswählen die Option API-Schlüssel überprüfen aus. Legen Sie dann Anzeigename und Name auf VAK-VerifyKey fest.

  5. Klicken Sie auf Hinzufügen.

  6. Klicken Sie auf den Namen VAK-VerifyKey.

    Die VerifyAPIKey-Konfiguration wird im Bereich Code unter Richtlinien angezeigt.

    Das APIKey-Element gibt an, wo der API-Schlüssel in der Anfrage angegeben wird.

  7. Ersetzen Sie im Element APIKey den Wert request.queryparam.apikey durch request.header.apikey.

    Wenn ein API-Schlüssel in einem Header angegeben wird, wird er mit geringerer Wahrscheinlichkeit protokolliert oder im Browserverlauf gespeichert.

Ziel so ändern, dass ein OpenID Connect-Identitätstoken gesendet wird

Der Backend-Dienst wird so bereitgestellt, dass authentifizierter Zugriff erforderlich ist. Sie können den Dienst also nicht ohne ein gültiges OpenID Connect-Identitätstoken aufrufen.

Mit HTTPTargetConnection wird das Backend-Ziel für den Dienst angegeben.

  1. Klicken Sie im Navigationsmenü des Proxys im Bereich Zielendpunkte auf PreFlow.

  2. Suchen Sie den folgenden Code (Ihre URL ist anders):

    <HTTPTargetConnection> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> </HTTPTargetConnection>
Hinweis: Wenn der Abschnitt „HTTPTargetConnection“ nicht angezeigt wird, haben Sie möglicherweise im Abschnitt „Zielendpunkte“ auf „PreFlow“ geklickt und nicht im Abschnitt „Proxyendpunkte“.
  1. Fügen Sie unter der URL einen Abschnitt Authentifizierung hinzu, der so aussieht:
<Authentication> <GoogleIDToken> <Audience>AUDIENCE</Audience> </GoogleIDToken> </Authentication>
  1. Ersetzen Sie AUDIENCE durch den URL-Wert, der bereits im Abschnitt HTTPTargetConnection enthalten ist. Ihr Code sollte jetzt so aussehen, wobei die URL- und Audience-Elemente Ihre spezifische URL enthalten:
<TargetEndpoint name="default"> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows/> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> <Authentication> <GoogleIDToken> <Audience>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</Audience> </GoogleIDToken> </Authentication> </HTTPTargetConnection> </TargetEndpoint>
  1. Klicken Sie auf Speichern.

Prüfen, ob die Laufzeitinstanz verfügbar ist

  1. Fügen Sie in Cloud Shell die folgenden Befehle ein und führen Sie sie aus:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; if [ -z "${GOOGLE_CLOUD_PROJECT}" ]; then echo "Error: GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it to your project ID."; else export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\" or (.environment | endswith(\"/${ENV_NAME}\"))) | .environment" --raw-output); [[ -n "${ATTACHMENT_DONE}" ]] && break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached"; echo "***ORG IS READY TO USE***"; fi

    Diese Befehlsreihe verwendet die Apigee API, um festzustellen, wann die Apigee-Laufzeitinstanz erstellt und die Testumgebung angehängt wurde.

  2. Warten Sie, bis die Instanz bereit ist.

    Wenn der Text ***ORG IS READY TO USE*** angezeigt wird, ist die Instanz bereit. Die Apigee-Organisation (org) wurde möglicherweise vor dem Start des Labs erstellt. Sie müssen also vielleicht nicht warten, bis die Instanz erstellt wird.

    Wenn Sie darauf warten, dass die Organisation bereit ist, können Sie sich über API-Produkte, CORS (Cross-Origin Resource Sharing) und Entwicklerportale informieren.

Den API-Proxy erstellen

  1. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.

  2. Klicken Sie auf Bereitstellen.

  3. Wählen Sie für Umgebung die Option eval aus.

  4. Geben Sie für Dienstkonto die E-Mail-Adresse des Dienstkontos an:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  5. Klicken Sie auf Bereitstellen und dann auf Bestätigen.

  6. Warten Sie, bis der Bereitstellungsstatus von eval anzeigt, dass der Proxy bereitgestellt wurde.

Klicken Sie auf Fortschritt prüfen. Apigee-Proxy erstellen und VerifyAPIKey-Richtlinie hinzufügen

Den API-Proxy testen

Sie können die Testumgebung in der Apigee-Organisation über den Hostnamen eval.example.com aufrufen. Der DNS-Eintrag für diesen Hostnamen wurde in Ihrem Projekt erstellt und wird der IP-Adresse der Apigee-Laufzeitinstanz zugeordnet. Dieser DNS-Eintrag wurde in einer privaten Zone erstellt. Das heißt, er ist nur im internen Netzwerk sichtbar.

Cloud Shell befindet sich nicht im internen Netzwerk. Daher können Cloud-Shell-Befehle diesen DNS-Eintrag nicht zuordnen. Eine VM in Ihrer Organisation kann auf die DNS-Einträge der Organisation zugreifen. Eine virtuelle Maschine namens apigeex-test-vm wurde automatisch erstellt. Sie können den API-Proxy mithilfe dieser virtuellen Maschine aufrufen.

  1. Öffnen Sie in Cloud Shell eine SSH-Verbindung zu Ihrer Test-VM:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.

  3. Drücken Sie für jede in Cloud Shell gestellte Frage die Eingabetaste bzw. Zurück-Taste, um die Standardeingabe zu übernehmen.

    Ihre angemeldete Identität ist der Inhaber des Projekts. Daher ist eine SSH-Verbindung zu dieser Maschine zulässig.

    Ihre Cloud Shell-Sitzung wird jetzt in der VM ausgeführt.

  4. Rufen Sie den bereitgestellten API-Proxy bank-v1 in der Umgebung eval auf:

    curl -i -k -X GET "https://eval.example.com/bank/v1/customers"

    Die Option -k weist curl an, die Überprüfung des TLS-Zertifikats zu überspringen. In der Apigee-Laufzeit in diesem Lab wird ein selbst signiertes Zertifikat anstelle eines Zertifikats verwendet, das von einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority, CA) erstellt wurde.

    Hinweis: Sie sollten die Option -k nicht verwenden, um die Zertifikatsüberprüfung für Produktionsanwendungsfälle zu umgehen.

    Mit dieser API wird versucht, eine Liste von Kunden abzurufen. Es sollte nun eine 401 Unauthorized-Antwort ähnlich dieser angezeigt werden:

    HTTP/2 401 content-type: application/json x-request-id: 01e8da87-dc8c-4428-9cdf-8bea84e98860 content-length: 146 date: Tue, 07 Dec 2021 22:54:37 GMT via: 1.1 google {"fault":{"faultstring":"Failed to resolve API Key variable request.header.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    Diese Antwort gibt an, dass der API-Proxy den Zugriff auf den Backend-Dienst blockiert hat, weil der API-Schlüssel nicht angegeben wurde.

  5. Geben Sie den Befehl exit ein, um die SSH-Sitzung zu beenden und zu Cloud Shell zurückzukehren.

Aufgabe 3: API-Produkte und eine Anwendung hinzufügen

In dieser Aufgabe fügen Sie API-Produkte hinzu, die unterschiedliche Zugriffsebenen für Ihre API bieten. Anschließend erstellen Sie zwei Anwendungen und verknüpfen separate API-Produkte damit, um ihnen unterschiedlichen Zugriff zu gewähren.

Das erste API-Produkt erstellen

Das erste API-Produkt bietet vollen Zugriff auf den Dienst.

  1. Wählen Sie im Apigee-Navigationsmenü Verteilung > API-Produkte aus.

  2. Klicken Sie auf +ERSTELLEN, um ein neues API-Produkt zu erstellen.

  3. Geben Sie im Bereich Produktdetails Folgendes an:

    Attribut Wert
    Name bank-fullaccess
    Anzeigename bank (full access)
    Beschreibung ermöglicht uneingeschränkten Zugriff auf die Bank-API
    Umgebung select eval
    Zugriff Wählen Sie Öffentlich aus.

    Lassen Sie Zugriffsanfragen automatisch genehmigen ausgewählt.

  4. Klicken Sie unter Vorgänge auf +Vorgang hinzufügen.

    Mit Vorgängen wird angegeben, welche Anfragen in welchen API-Proxys für eine Anwendung zulässig sind, die dem API-Produkt zugeordnet ist.

    Hinweis: Achten Sie darauf, dass sich die Schaltfläche im Bereich „Vorgänge“ und nicht im Bereich „GraphQL-Vorgänge“ befindet.
  5. Geben Sie Folgendes an:

    Name Wert
    Quelle Wählen Sie den API-Proxy „bank-v1“ aus.
    Pfad /**
    Methoden GET, PATCH, POST, PUT und DELETE auswählen

    Der Pfadausdruck „/**“ gibt an, dass jeder Pfadsuffix beliebiger Tiefe mit dem Vorgang übereinstimmt.

    In einer Produktionsumgebung können Sie jede zulässige Operation einzeln hinzufügen, anstatt diesen Platzhalter-Pfadausdruck zu verwenden.

  6. Klicken Sie auf Speichern, um den Vorgang zu speichern.

  7. Klicken Sie im Bereich Benutzerdefinierte Attribute für das API-Produkt auf + Benutzerdefiniertes Attribut hinzufügen.

    Mit benutzerdefinierten Attributen können Sie beliebige Daten anhängen, die im Proxy verfügbar sein sollen, um den Zugriff zu steuern.

    Da es sich in diesem Fall um das API-Produkt mit Vollzugriff für Ihre Retail API handelt, erstellen Sie ein benutzerdefiniertes Attribut, das angibt, dass die Anwendung, die die API aufruft, Vollzugriff haben soll.

  8. Geben Sie Folgendes an:

    Attribut Wert
    Name full-access
    Wert yes
  9. Klicken Sie auf OK, um das benutzerdefinierte Attribut zu speichern.

  10. Klicken Sie oben auf der Seite auf Speichern, um das API-Produkt zu speichern.

  11. Kehren Sie zur Seite Verteilung > API-Produkte zurück. Das API-Produkt wird aufgeführt.

Klicken Sie auf Fortschritt prüfen. Fügen Sie API-Produkte und eine Anwendung hinzu

API-Produkt mit eingeschränktem Zugriff erstellen

Das zweite API-Produkt bietet schreibgeschützten Zugriff auf den Dienst.

  1. Klicken Sie auf +ERSTELLEN, um ein neues API-Produkt zu erstellen.

  2. Geben Sie im Bereich Produktdetails Folgendes an:

    Attribut Wert
    Name bank-readonly
    Anzeigename bank (schreibgeschützt)
    Beschreibung ermöglicht schreibgeschützten Zugriff auf die Bank-API
    Umgebung select eval
    Zugriff Wählen Sie Öffentlich aus.

    Lassen Sie Zugriffsanfragen automatisch genehmigen ausgewählt.

  3. Klicken Sie unter Vorgänge auf +Vorgang hinzufügen.

    Hinweis: Achten Sie darauf, dass sich die Schaltfläche im Bereich „Vorgänge“ und nicht im Bereich „GraphQL-Vorgänge“ befindet.
  4. Geben Sie Folgendes an:

    Attribut Wert
    Quelle Wählen Sie den API-Proxy „bank-v1“ aus.
    Pfad /**
    Methoden GET auswählen
  5. Klicken Sie auf Speichern, um den Vorgang zu speichern.

  6. Klicken Sie oben auf der Seite auf Speichern, um das API-Produkt zu speichern.

  7. Kehren Sie zur Seite Verteilung > API-Produkte zurück. Das API-Produkt wird aufgeführt.

App-Entwickler erstellen

Bevor Sie eine App erstellen können, müssen Sie einen App-Entwickler erstellen.

Hinweis: App-Entwickler werden in der Regel über ein Entwicklerportal erstellt. Sie erstellen Ihr Entwicklerportal später in diesem Lab. Verwenden Sie vorerst die Apigee-Konsole, um den Entwickler zu erstellen.
  1. Klicken Sie im Apigee-Navigationsmenü auf Verteilung > Entwickler.

  2. Klicken Sie auf +ERSTELLEN, um einen neuen App-Entwickler zu erstellen.

  3. Geben Sie Folgendes an:

    Attribut Wert
    Vorname Joe
    Nachname Developer
    E-Mail joe@example.com
    Nutzername joe
  4. Klicken Sie auf HINZUFÜGEN, um den App-Entwickler zu erstellen.

App mit Lesezugriff erstellen

  1. Klicken Sie im Apigee-Navigationsmenü auf Verteilung > Apps.

  2. Klicken Sie auf + ERSTELLEN, um eine neue App zu erstellen.

  3. Geben Sie im Bereich App-Details Folgendes an:

    Attribut Wert
    Name readonly-app
    Entwickler Wählen Sie „Joe Developer“ aus.
  4. Klicken Sie im Bereich Anmeldedaten auf + ANMELDEDATEN HINZUFÜGEN und dann auf + PRODUKTE HINZUFÜGEN. Wählen Sie bank (readonly) aus und klicken Sie dann auf Hinzufügen.

    Klicken Sie unter „Produkt“ das Kästchen neben bank (read-only) an und klicken Sie auf GENEHMIGEN.

  5. Klicken Sie auf Erstellen, um die App zu erstellen.

    Schlüssel und Secret sind jetzt für die App konfiguriert.

  6. Klicken Sie im Apigee-Navigationsmenü auf Verteilung > Apps > readonly-app.

  7. Klicken Sie unter „Anmeldedaten“ neben Schlüssel auf Anzeigen.

    Dies ist der API-Schlüssel, der zum Aufrufen der API verwendet wird. Sie könnten den Schlüssel kopieren, aber in den nächsten Schritten wird ein curl-Aufruf an die Apigee API verwendet, um den API-Schlüssel abzurufen.

App mit vollständigem Zugriff erstellen

  1. Klicken Sie im linken Navigationsmenü auf Verteilung > Apps.

  2. Klicken Sie auf + ERSTELLEN, um eine neue App zu erstellen.

  3. Geben Sie im Bereich App-Details Folgendes an:

    Attribut Wert
    Name fullaccess-app
    Entwickler Wählen Sie „Joe Developer“ aus.
  4. Klicken Sie im Bereich Anmeldedaten auf + ANMELDEDATEN HINZUFÜGEN und dann auf + PRODUKTE HINZUFÜGEN. Wählen Sie bank (full access) aus und klicken Sie dann auf Hinzufügen.

    Klicken Sie unter „Produkt“ auf das Kästchen neben bank (full access) und dann auf GENEHMIGEN.

  5. Klicken Sie auf Erstellen, um die App zu erstellen.

  6. Klicken Sie im Apigee-Navigationsmenü auf Verteilung > Apps > fullaccess-app.

  7. Klicken Sie unter „Anmeldedaten“ neben Schlüssel auf Anzeigen.

Klicken Sie auf Fortschritt prüfen. Erstellen Sie ein API-Produkt mit eingeschränktem Zugriff

Mit dem API-Schlüssel testen

  1. Öffnen Sie in Cloud Shell eine SSH-Verbindung zu Ihrer Test-VM:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.

    Ihre Cloud Shell-Sitzung wird jetzt in der VM ausgeführt.

  3. Führen Sie die folgenden Befehle aus, um den API-Schlüssel für die schreibgeschützte Anwendung abzurufen:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/readonly-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"

    Mit dem ersten Befehl wird die gcloud-Konfiguration gelesen, um das aktuelle Projekt abzurufen. Mit dem zweiten Befehl wird der API-Schlüssel über die Apigee API abgerufen. Die Anfrage wird autorisiert, weil Sie ein Zugriffstoken mit den Berechtigungen des angemeldeten Nutzers senden.

  4. Rufen Sie den bereitgestellten API-Proxy bank-v1 in der Umgebung eval mit einem fingierten API-Schlüssel auf:

    curl -i -k -X GET -H "apikey: ABC123" "https://eval.example.com/bank/v1/customers"

    Die Antwort ist 401 Unauthorized mit einem Fehler, der angibt, dass der API-Schlüssel ungültig war.

  5. Rufen Sie den bereitgestellten API-Proxy bank-v1 in der eval-Umgebung mit dem echten API-Schlüssel auf:

    curl -i -k -X GET -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    Die Anfrage ist zulässig und die Antwort enthält eine Liste von Kunden.

  6. Führen Sie einen weiteren Aufruf des bereitgestellten API-Proxys bank-v1 in der Umgebung eval aus. Verwenden Sie dazu wieder den echten API-Schlüssel:

    curl -i -k -X POST -H "apikey: ${API_KEY}" -H "Content-Type: application/json" "https://eval.example.com/bank/v1/customers" -d '{"firstName": "Julia", "lastName": "Dancey", "email": "julia@example.org"}'

    Dieses Mal ist die Antwort 401 Unauthorized mit einem Fehler, der angibt, dass der API-Schlüssel für die angegebene Ressource ungültig ist. Die Anfrage wurde abgelehnt, weil der angegebene API-Schlüssel mit dem schreibgeschützten API-Produkt verknüpft ist, das keine POST-Anfragen zulässt.

  7. Geben Sie exit ein, um die SSH-Sitzung der VM zu beenden.

Aufgabe 4: Kontingent erzwingen

In dieser Aufgabe fügen Sie eine Kontingentrichtlinie hinzu, die die Anzahl der Anfragen begrenzt, die pro Anwendung über einen bestimmten Zeitraum zulässig sind. Die Kontingentrichtlinie verwendet eine Kontingentkonfiguration, die in den API-Produkten angegeben wurde.

Kontingentrichtlinie hinzufügen

  1. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.

  2. Klicken Sie auf den Tab Entwickeln.

  3. Klicken Sie im Navigationsmenü für den Proxy im Bereich Proxy-Endpunkte auf PreFlow.

    Die Kontingentrichtlinie prüft, ob das Kontingent für eine bestimmte Anwendung überschritten wurde. Wenn das Limit erreicht wurde, gibt die Kontingentrichtlinie einen Fehler aus und die Anfrage wird abgebrochen. Wenn das Limit nicht erreicht wurde, wird die Anzahl der zulässigen Anfragen verringert.

    Die Kontingentrichtlinie bestimmt die aufrufende Anwendung anhand einer Variablen, die von der VerifyAPIKey-Richtlinie ausgefüllt wird. Daher muss die Kontingentrichtlinie nach der Richtlinie VerifyAPIKey platziert werden.

  4. Klicken Sie im Bereich Flow rechts oben über dem Anfrage-Flow auf die Schaltfläche + Richtlinienschritt hinzufügen.

  5. Wählen Sie Neue Richtlinie erstellen aus und wählen Sie im Bereich Trafficverwaltung unter Richtlinie auswählen die Option Kontingent aus. Legen Sie dann Anzeigename und Name auf Q-EnforceQuota fest.

  6. Klicken Sie auf Hinzufügen.

  7. Klicken Sie auf den Namen Q-EnforceQuota.

    Die Kontingentkonfiguration wird im Bereich Code angezeigt.

  8. Ändern Sie die Kontingentkonfiguration so:

    <Quota continueOnError="false" enabled="true" name="Q-EnforceQuota" type="calendar"> <Identifier ref="client_id"/> <UseQuotaConfigInAPIProduct stepName="VAK-VerifyKey"> <DefaultConfig> <Allow>2</Allow> <Interval>1</Interval> <TimeUnit>hour</TimeUnit> </DefaultConfig> </UseQuotaConfigInAPIProduct> <Distributed>true</Distributed> <Synchronous>true</Synchronous> <StartTime>2021-01-01 00:00:00</StartTime> </Quota>

    Sie verwenden das API-Produkt, um die zulässige Rate anzugeben. Der stepName im Element UseQuotaConfigInAPIProduct gibt an, in welchem Schritt das API-Produkt bestimmt wird.

    Wenn ein API-Schlüssel oder ein OAuth-Token validiert wird, kann er einer App zugeordnet werden, die einem API-Produkt zugeordnet ist. Mit diesen Richtlinieneinstellungen wird das API-Produkt durch den Schritt VerifyAPIKey mit dem Namen VAK-VerifyKey bestimmt. Die VerifyAPIKey-Richtlinie muss vor der Q-EnforceQuota-Richtlinie ausgeführt werden.

    Die in der Kontingentrichtlinie angegebenen Standardkonfigurationswerte legen maximal 2 Anfragen (Allow) pro 1 (Interval) Monat (TimeUnit) fest. Die Standardwerte werden nur verwendet, wenn die Werte nicht verfügbar sind. Das sollte nur der Fall sein, wenn die Kontingenteinstellungen für das API-Produkt, das dem API-Schlüssel zugeordnet ist, nicht festgelegt sind.

  9. Klicken Sie auf Speichern. Wenn Sie eine Benachrichtigung erhalten, dass der Proxy als neue Überarbeitung gespeichert wurde, klicken Sie auf ALS NEUE VERSION SPEICHERN.

  10. Klicken Sie auf Bereitstellen.

  11. Geben Sie für Dienstkonto die E-Mail-Adresse des Dienstkontos an:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  12. Klicken Sie auf Bereitstellen und dann auf Bestätigen.

  13. Klicken Sie auf den Tab Übersicht und warten Sie, bis der Bereitstellungsstatus von eval anzeigt, dass der Proxy bereitgestellt wurde.

Kontingentkonfiguration für das API-Produkt mit vollem Zugriff hinzufügen

  1. Wählen Sie im Apigee-Navigationsmenü Verteilung > API-Produkte aus und klicken Sie dann auf bank (Vollzugriff).
  2. Klicken Sie auf Bearbeiten.
  3. Klicken Sie in der Zeile „bank-v1“ im Bereich „Vorgänge“ auf das Menüsymbol Aktionen (Aktionsmenü) und wählen Sie Bearbeiten aus.
  4. Legen Sie das Kontingent des Vorgangs auf 5 Anfragen alle 1 Minute fest und klicken Sie auf Speichern, um den Vorgang zu speichern.
Hinweis: Achten Sie darauf, dass Sie das Kontingent bearbeiten, das für den Vorgang konfiguriert ist.
  1. Klicken Sie auf Speichern, um das API-Produkt zu speichern.

Klicken Sie auf Fortschritt prüfen. Erzwingen Sie ein Kontingent

Fehlerbehebungssitzung starten

Debug ist ein Tool zur Fehlerbehebung und zum Monitoring von API-Proxys, die auf Apigee ausgeführt werden. Mit dem Debug-Tool können Sie die Details jedes Schritts während eines API-Aufrufs untersuchen.

  1. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.

  2. Klicken Sie auf den Tab Debugging.

  3. Klicken Sie auf Debugging-Sitzung starten.

  4. Wählen Sie im Bereich Debugging-Sitzung starten im Drop-down-Menü für die Umgebung die Option eval aus.

  5. Klicken Sie auf Start.

    Es kann einige Zeit dauern, bis in der Debug-Sitzung Anfragen erfasst werden.

Hinweis: Wenn oben auf dem Bildschirm Fehlermeldungen in roten Kästen mit Beschreibungen wie „Fehler beim Abrufen von Debug-Transaktionen“ oder „Fehler bei der Transaktionsliste für die Debug-Sitzung“ angezeigt werden, funktioniert Ihre Debug-Sitzung möglicherweise trotzdem korrekt.

Sie stellen API-Anfragen und untersuchen dann die Debugging-Sitzung.

Kontingent testen

  1. Öffnen Sie in Cloud Shell eine SSH-Verbindung zu Ihrer Test-VM:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.

Ihre Cloud Shell-Sitzung wird jetzt in der VM ausgeführt.

  1. Führen Sie die folgenden Befehle aus, um beide API-Schlüssel abzurufen:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY_READONLY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/readonly-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY_READONLY=${API_KEY_READONLY}" export API_KEY_FULL=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY_FULL=${API_KEY_FULL}"
  2. Senden Sie diese Anfrage wiederholt, bis Sie einen Kontingentfehler erhalten:

    curl -i -k -X GET -H "apikey: ${API_KEY_READONLY}" "https://eval.example.com/bank/v1/customers" Hinweis: Wenn Sie einen Befehl in Cloud Shell oder einer SSH-Sitzung schnell wiederholen möchten, drücken Sie die Aufwärtspfeiltaste und dann die Eingabetaste.

    Die Benachrichtigung über den Verstoß gegen das Kontingent sieht in etwa so aus:

    {"fault":{"faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : bKSV3nOz2JS5Z58sWMh2RBnnwWeEeNK2N2G6HMCESgLGDLFI","detail":{"errorcode":"policies.ratelimit.QuotaViolation"}}}
  3. Kehren Sie zum Tab der Apigee-Benutzeroberfläche zurück.

    Sie sollten einige HTTP-200-Anfragen und eine HTTP-429-Anfrage sehen.

    Klicken Sie auf eine 200-Anfrage. Auf der Transaktionskarte wird rechts ein Fabriksymbol angezeigt, das darauf hinweist, dass das Backend aufgerufen wurde.

  4. Klicken Sie im Bereich „Debug-Sitzung“ links oben auf den Linkspfeil (<).

  5. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.

  6. Klicken Sie auf den Tab Debugging.

  7. Klicken Sie auf Debugging-Sitzung starten, um eine neue Debugging-Sitzung zu starten.

  8. Kehren Sie zur SSH-Sitzung zurück und senden Sie diese Anfrage wiederholt mit dem API-Schlüssel für den uneingeschränkten Zugriff, bis Sie einen Kontingentfehler erhalten:

    date; curl -i -k -X GET -H "apikey: ${API_KEY_FULL}" "https://eval.example.com/bank/v1/customers"

    Diesmal sollten Sie mindestens fünf Anfragen senden können, bevor Sie mit der Antwort 429 abgelehnt werden. Das Kontingent für das API-Produkt mit vollem Zugriff beträgt 5 Anfragen pro Minute. Das Kontingent wird zurückgesetzt, wenn der Sekundenanteil der Zeit auf null zurückgesetzt wird. Mit dem obigen Befehl wird die Zeit vor dem Aufrufen der API ausgegeben. Sie sollten also die ungefähre Zeit sehen können, zu der das Kontingent zurückgesetzt wird.

  9. Geben Sie exit ein, um die SSH-Sitzung der VM zu beenden.

  10. Kehren Sie zum Tab der Apigee-Benutzeroberfläche zurück.

    Wenn Sie eine Anfrage auswählen und auf das Kontingentsymbol klicken, sehen Sie, dass die Kontingentvariablen für VAK-VerifyKey jetzt 5 Anfragen pro Minute angeben.

Aufgabe 5: CORS zum API-Proxy hinzufügen

In dieser Aufgabe fügen Sie dem Proxy „bank-v1“ CORS (Cross-Origin Resource Sharing) hinzu.

CORS ist ein Protokoll, das HTTP-Header verwendet, um Browsern mitzuteilen, ob der Zugriff auf eingeschränkte Ressourcen von einer separaten Domain aus sicher ist. Standardmäßig sind domainübergreifende Anfragen durch die Same-Origin-Sicherheitsrichtlinie verboten. Die Same-Origin-Policy schützt Browsernutzer davor, Sitzungsinformationen unwissentlich mit böswilligen Akteuren zu teilen.

Die Same-Origin-Richtlinie bedeutet, dass eine Webseite, die von www.beispiel.de bereitgestellt wird, standardmäßig keinen Aufruf an APIs unter api.beispiel.de ausführen kann, da der Hostname unterschiedlich ist. CORS kann verwendet werden, um diese Art von ursprungsübergreifendem Zugriff zu ermöglichen.

Sie benötigen CORS in der Bank-API für das Entwicklerportal. Ein Apigee-Entwicklerportal hat den Domainnamen *.apigee.io und auf die API wird über eine andere Domain zugegriffen. Damit Sie die API über die Dokumentation aufrufen können, müssen Sie allen API-Antworten, einschließlich Fehlerantworten, CORS-Header hinzufügen.

CORS verwendet auch Preflight-Anfragen. Der Browser sendet eine Preflight-Anfrage mit dem OPTIONS-Verb, um herauszufinden, ob der nächste Aufruf zulässig ist.

Die CORS-Richtlinie kann die gesamte CORS-Funktionalität verarbeiten.

Weitere Informationen zu CORS finden Sie in der Apigee-CORS-Dokumentation.

CORS-Richtlinie hinzufügen

  1. Wählen Sie im Apigee-Navigationsmenü Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.

  2. Klicken Sie auf den Tab Entwickeln.

  3. Klicken Sie im Navigationsmenü für den Proxy im Bereich Proxy-Endpunkte auf PreFlow.

  4. Klicken Sie im Bereich Flow rechts oben über dem Anfrage-Flow auf die Schaltfläche + Richtlinienschritt hinzufügen.

  5. Wählen Sie Neue Richtlinie erstellen aus und wählen Sie im Abschnitt Sicherheit unter Richtlinie auswählen die Option CORS aus. Legen Sie dann den Anzeigenamen und den Namen auf CORS fest.

  6. Klicken Sie auf Hinzufügen.

    Die Konfiguration der CORS-Richtlinie wird unter dem Bereich „Flow“ angezeigt.

    In AllowOrigins sind die zulässigen Ursprünge aufgeführt. In der Standardkonfiguration ist jeder Ursprung zulässig, da der zulässige Ursprung dem Ursprung entspricht, der in der Anfrage übergeben wird. In einem typischen Produktionsanwendungsfall lassen Sie möglicherweise nur Anfragen von bestimmten Hostnamen zu.

    Mit AllowMethods werden die Methoden angegeben, die für die API zulässig sein sollen.

    AllowHeaders listet die Header auf, die in der Anfrage übergeben werden dürfen.

    ExposeHeaders gibt die Header in der Antwort an, die bei einem Aufruf mit einem Ursprung zulässig sein sollen. Mit dem Standardwert * werden keine Antwortheader aus der Antwort entfernt.

    MaxAge gibt an, wie lange eine Preflight-Antwort von einem Browser im Cache gespeichert werden darf (in Sekunden).

    AllowCredentials gibt an, ob Autorisierungsheader, TLS-Clientzertifikate oder Cookies in der Anfrage gesendet werden können.

    GeneratePreflightResponse gibt an, ob Preflight-Anfragen mit der Methode OPTIONS verarbeitet werden.

  7. Klicken Sie auf den Namen CORS.

  8. Ersetzen Sie die AllowHeaders-Konfiguration durch:

    <AllowHeaders>origin, x-requested-with, accept, content-type, apikey</AllowHeaders>

    Ihre API verwendet den Header apikey, um einen API-Schlüssel anzugeben. Er muss also hinzugefügt werden, damit die API über einen Browser aufgerufen werden kann.

  9. Ersetzen Sie den Wert für MaxAge durch -1.

    Dadurch wird das Caching der Preflight-Antwort durch den Browser deaktiviert, sodass Sie immer die Preflight-Anfrage sehen. In einem Produktionsanwendungsfall lassen Sie in der Regel das Caching der Antwort zu, um zwei Aufrufe pro Anfrage zu vermeiden.

  10. Klicken Sie im Navigationsmenü für den Proxy im Bereich Proxy-Endpunkte auf PreFlow.

    Als die CORS-Richtlinie hinzugefügt wurde, wurde sie automatisch am Ende des Ablaufs eingefügt. Für Preflight-Anfragen sollte jedoch kein API-Schlüssel erforderlich sein.

  11. Verschieben Sie die Richtlinie CORS vor die Richtlinie VAK-VerifyKey, indem Sie die PreFlow-Konfiguration bearbeiten. Ersetzen Sie:

    <PreFlow name="PreFlow"> <Request> <Step> <Name>VAK-VerifyKey</Name> </Step> <Step> <Name>Q-EnforceQuota</Name> </Step> <Step> <Name>CORS</Name> </Step> </Request> <Response/> </PreFlow>

    mit:

    <PreFlow name="PreFlow"> <Request> <Step> <Name>CORS</Name> </Step> <Step> <Name>VAK-VerifyKey</Name> </Step> <Step> <Name>Q-EnforceQuota</Name> </Step> </Request> <Response/> </PreFlow>
  12. Klicken Sie auf Speichern. Wenn Sie eine Benachrichtigung erhalten, dass der Proxy als neue Überarbeitung gespeichert wurde, klicken Sie auf ALS NEUE VERSION SPEICHERN.

  13. Klicken Sie auf Bereitstellen.

  14. Geben Sie für Dienstkonto die E-Mail-Adresse des Dienstkontos an:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  15. Klicken Sie auf Bereitstellen und dann auf Bestätigen.

  16. Klicken Sie auf den Tab Übersicht und warten Sie, bis der Bereitstellungsstatus von eval anzeigt, dass der Proxy bereitgestellt wurde.

Klicken Sie auf Fortschritt prüfen. Fügen Sie CORS zu API-Proxy hinzu

Fehlerbehebungssitzung starten

  1. Klicken Sie auf den Tab Debugging.

  2. Klicken Sie auf Debugging-Sitzung starten.

  3. Wählen Sie im Bereich Debugging-Sitzung starten im Drop-down-Menü für die Umgebung die Option eval aus.

  4. Klicken Sie auf Start.

    Es kann einige Zeit dauern, bis in der Debug-Sitzung Anfragen erfasst werden.

CORS-Funktionalität testen

  1. Öffnen Sie in Cloud Shell eine SSH-Verbindung zu Ihrer Test-VM:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.

    Ihre Cloud Shell-Sitzung wird jetzt in der VM ausgeführt.

  3. Führen Sie die folgenden Befehle aus, um einen API-Schlüssel zu erhalten:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"
  4. Stellen Sie eine Anfrage, um die Kundenliste abzurufen:

    curl -i -k -X GET -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    Es ist kein Ursprung vorhanden, daher wird die CORS-Funktion übersprungen. Prüfen Sie, ob der Header Access-Control-Allow-Origin nicht zurückgegeben wird.

  5. Stellen Sie eine weitere Anfrage, diesmal mit dem Origin-Header. Damit wird eine normale CORS-Anfrage getestet:

    curl -i -k -X GET -H "Origin: https://www.example.com" -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    Die access-control-*-Header werden zurückgegeben, weil der Ursprung angegeben wurde.

  6. So stellen Sie eine Preflight-Anfrage:

    curl -i -k -X OPTIONS -H "Origin: https://www.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: Content-Type,apikey" "https://eval.example.com/bank/v1/customers"

    Die CORS-Richtlinie legt die Preflight-Header in der Antwort fest und verhindert, dass die Anfrage an das Backend weitergeleitet wird.

    Wenn Sie zur Apigee-Benutzeroberfläche zurückkehren und sich den OPTIONS-Aufruf im Debugging-Tool ansehen, können Sie bestätigen, dass die CORS-Richtlinie nicht zugelassen hat, dass der Aufruf an den Backend-Dienst weitergeleitet wird.

  7. Geben Sie exit ein, um die SSH-Sitzung der VM zu beenden.

Aufgabe 6: OpenAPI-Spezifikation herunterladen und ändern

In dieser Aufgabe laden Sie eine OpenAPI-Spezifikation herunter und ändern sie, um die Schnittstelle für Ihren API-Proxy zu definieren.

Die OpenAPI-Spezifikation wird verwendet, wenn Sie Ihren API-Proxy in Ihrem Entwicklerportal veröffentlichen.

OpenAPI-Spezifikation herunterladen und bearbeiten

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die OpenAPI-Spezifikation für Ihren API-Proxy herunterzuladen:

    curl https://storage.googleapis.com/spls/shared/firestore-simplebank-data/dev-portal/simplebank-spec.yaml?$(date +%s) --output ~/simplebank-spec.yaml

    Mit diesem curl-Befehl wird eine Datei namens simplebank-spec.yaml heruntergeladen und in einer Datei mit demselben Namen im Home-Verzeichnis gespeichert.

Hinweis: Mit „?$(date +%s)“ wird der URL ein Suchparameter hinzugefügt, der eine Stringdarstellung des aktuellen Datums/der aktuellen Uhrzeit ist. Diese sich dynamisch ändernde Variable ändert die URL und zwingt curl, die aktuelle Version einer Datei abzurufen, auch wenn eine frühere Version im Cache gespeichert ist.
  1. Klicken Sie in Cloud Shell auf Editor öffnen und dann bei Bedarf auf In neuem Fenster öffnen.

    Schaltfläche „Cloud Shell-Editor“

  2. Wählen Sie im Editor die Datei simplebank-spec.yaml aus.

    Diese OpenAPI-Spezifikation gibt die Schnittstelle des API-Proxys an, den Sie in diesem Lab erstellt haben. Die Spezifikation wird verwendet, um eine Live-Dokumentation im Entwicklerportal bereitzustellen.

    Das Entwicklerportal greift über das externe Netzwerk auf den Apigee-Proxy zu. Der Hostname, den Sie verwendet haben (eval.example.com), ist nur im internen Netzwerk verfügbar.

    Ein Load Balancer wurde bereitgestellt, um externen Zugriff auf den API-Proxy zu ermöglichen. Für den externen Zugriff wird ein von nip.io bereitgestellter Hostname verwendet. nip.io ist ein Platzhalter-DNS-Anbieter.

    Der externe Hostname sieht etwa so aus:

    eval.60.70.80.90.nip.io

    Dieser Hostname wurde bereits als übereinstimmender Hostname für die Umgebungsgruppe eval-group angegeben.

  3. Verwenden Sie in Cloud Shell den folgenden Befehl, um die Einstellungen für eval-group abzurufen:

    curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/envgroups/eval-group"

    Das Array hostnames enthält zwei Hostnamen: einen ohne IP-Adresse (eval.example.com) und einen mit IP-Adresse (ähnlich wie eval.60.70.80.90.nip.io). Sie verwenden den Hostnamen mit der IP-Adresse in der OpenAPI-Spezifikation.

  4. Ersetzen Sie in Zeile 10 des Editors den Hostnamen:

    eval.<IPADDR>.nip.io

    Nachdem Sie den Hostnamen in der Server-URL ersetzt haben, sollte Zeile 10 so aussehen:

    - url: "https://eval.60.70.80.90.nip.io/bank/v1"
  5. Klicken Sie auf Datei > Speichern.

  6. Klicken Sie mit der rechten Maustaste auf simplebank-spec.yaml > Herunterladen.

    Dadurch wird die Datei auf Ihren lokalen Computer heruntergeladen. Sie verwenden die aktualisierte Spezifikation mit dem Entwicklerportal.

Aufgabe 7: Entwicklerportal erstellen und API darin veröffentlichen

In dieser Aufgabe erstellen Sie ein integriertes Entwicklerportal und veröffentlichen dann Ihre API darin.

Eingebundenes Entwicklerportal erstellen

  1. Wählen Sie im Apigee-Navigationsmenü Verteilung > Portale aus und klicken Sie auf + ERSTELLEN.

  2. Geben Sie bank als Namen ein und klicken Sie dann auf Erstellen.

    Das Erstellen kann eine Minute dauern. Danach sollte die Übersichtsseite des Portals geöffnet werden.

  3. Wenn die Meldung „Für die Betaversion der Funktionen zur Team- und Zielgruppenverwaltung registrieren“ angezeigt wird, klicken Sie auf Registrieren.

API im Portal veröffentlichen

  1. Wählen Sie im Apigee-Navigationsmenü Verteilung > Portale aus und klicken Sie auf bank.

  2. Klicken Sie auf + API.

  3. Wählen Sie Bank (Vollzugriff) als API-Produkt aus.

  4. Passen Sie die API-Details an:

    Attribut Wert
    Veröffentlicht (im Katalog aufgeführt) ausgewählt
    Angezeigter Titel SimpleBank
    Angezeigte Beschreibung SimpleBank API v1
    API-Sichtbarkeit „Öffentlich (für alle sichtbar)“ auswählen

    Wenn Sie eine API veröffentlichen, ist sie im Portal sichtbar. Wenn Sie die Sichtbarkeit auf öffentlich festlegen, ist sie auch dann sichtbar, wenn der Nutzer nicht im Portal angemeldet ist.

  5. Klicken Sie unter Anzeige-Image auf Auswählen und dann auf URL.

  6. Legen Sie die Bild-URL auf Folgendes fest:

    https://storage.googleapis.com/spls/shared/firestore-simplebank-data/dev-portal/piggy-bank.png

    Wenn Sie auf VORSCHAU klicken, sollte das Bild eines Sparschweins angezeigt werden.

  7. Klicken Sie auf Auswählen.

  8. Wählen Sie im Bereich API-Dokumentation die Option OpenAPI-Dokument aus.

  9. Klicken Sie unter Datei auswählen auf Auswählen.

  10. Klicken Sie auf Durchsuchen und wählen Sie die OpenAPI-Spezifikationsdatei aus, die Sie aus Cloud Shell heruntergeladen haben (simplebank-spec.yaml).

  11. Klicken Sie auf Auswählen.

  12. Klicken Sie auf Speichern.

  13. Wenn Sie das Entwicklerportal in einem neuen Tab öffnen möchten, klicken Sie oben rechts auf LIVE-PORTAL ANSEHEN.

Klicken Sie auf Fortschritt prüfen. Erstellen Sie ein Entwicklerportal und veröffentlichen Sie eine API darin

Fehlerbehebungssitzung starten

  1. Kehren Sie zum Apigee-Navigationsmenü zurück, wählen Sie Proxy-Entwicklung > API-Proxys aus und klicken Sie dann auf bank-v1.
  2. Klicken Sie auf den Tab Debugging.
  3. Wählen Sie im Bereich Debugging-Sitzung starten im Drop-down-Menü für die Umgebung die Option eval aus.
  4. Klicken Sie auf Start.

API über das Entwicklerportal testen

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um den API-Schlüssel mit vollem Zugriff abzurufen:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"

    Kopieren Sie den API-Schlüssel in die Zwischenablage.

  2. Kehren Sie zum Tab „Live-Portal“ zurück und klicken Sie auf APIs.

  3. Klicken Sie auf das Sparschwein.

    Die SimpleBank API wird angezeigt.

  4. Klicken Sie auf Autorisieren.

  5. Fügen Sie den API-Schlüssel als Schlüssel ein.

  6. Klicken Sie auf Autorisieren und dann auf OK.

    Der API-Schlüssel wird jetzt mit jeder Anfrage gesendet.

  7. Klicken Sie im Menü auf der linken Seite auf /customers POST.

  8. Geben Sie den folgenden Anfragetext an:

    { "email": "mina@example.com", "lastName": "Yu", "firstName": "Mina" }
  9. Klicken Sie auf Ausführen.

    Eine 200 OK-Antwort gibt an, dass der Kunde erstellt wurde.

  10. Klicken Sie im Menü auf der linken Seite auf /customers GET.

  11. Klicken Sie auf Ausführen.

    Der gerade erstellte Kunde wird zusammen mit den anderen Kunden in der Datenbank zurückgegeben.

    Wenn Sie zur Apigee-Benutzeroberfläche und zur Debug-Sitzung zurückkehren, sehen Sie, dass vor dem Senden beider Befehle automatisch eine OPTIONS-Anfrage (Preflight) vom Browser gesendet wurde. Vor dem GET-Befehl ist eine Preflight-Anfrage erforderlich, da der Browser nicht weiß, ob der apikey-Header zulässig sein soll.

Aufgabe 8: App-Entwickler im Portal erstellen (optional)

In dieser Aufgabe erstellen Sie im Entwicklerportal einen App-Entwickler.

Hinweis: Für diese Aufgabe müssen Sie Ihre E-Mail-Adresse eingeben, um eine Registrierungs-E-Mail zu erhalten. Die E‑Mail enthält einen Link, auf den geklickt werden muss, bevor sich das registrierte Konto im Entwicklerportal anmelden kann. Die E-Mail-Adresse wird nicht für andere Zwecke verwendet und gelöscht, wenn das Google Cloud-Projekt automatisch gelöscht wird.

App-Entwickler im Entwicklerportal registrieren

  1. Kehren Sie zum Live-Portal zurück und klicken Sie auf Anmelden.

  2. Klicken Sie auf Konto erstellen.

  3. Geben Sie einen Vornamen, einen Nachnamen, eine E‑Mail-Adresse und ein Passwort ein.

    Sie benötigen das Passwort, um sich im Entwicklerportal anzumelden. Wählen Sie daher ein Passwort, das Sie sich merken können.

  4. Klicken Sie das Kästchen an, um den Nutzungsbedingungen zuzustimmen.

    Die Seite mit den Nutzungsbedingungen wird von der Organisation angegeben, die die APIs für App-Entwickler bereitstellt.

  5. Klicken Sie auf Konto erstellen.

    Eine E-Mail wird an Ihre E-Mail-Adresse gesendet. Sie enthält einen Link, auf den geklickt werden muss, damit sich der Kontonutzer anmelden kann.

  6. Klicken Sie auf den Link in der E‑Mail.

    Ein Browsertab mit dem Entwicklerportal wird geöffnet.

  7. Klicken Sie auf Anmelden.

  8. Geben Sie die E‑Mail-Adresse und das Passwort ein und klicken Sie auf Anmelden.

App für den App-Entwickler erstellen

  1. Klicken Sie rechts oben auf die E‑Mail-Adresse und dann auf Apps.

  2. Klicken Sie auf + Neue Anwendung.

  3. Geben Sie MyApp als App-Name an.

  4. Klicken Sie im Abschnitt „APIs“ für SimpleBank auf Aktivieren.

  5. Klicken Sie auf Speichern.

    Die App ist registriert und der API-Schlüssel wird angezeigt. Dieser API-Schlüssel kann im Entwicklerportal verwendet werden. Der App-Entwickler und die App können angezeigt werden, indem Sie zur Apigee-Benutzeroberfläche zurückkehren und zu Veröffentlichen > Entwickler bzw. Veröffentlichen > Apps gehen.

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

In diesem Lab haben Sie den Zugriff auf die API mithilfe der API-Schlüsselüberprüfung eingeschränkt. Sie haben API-Produkte erstellt, um interne und externe App-Entwickler mit unterschiedlichen Service-Levels zu versorgen. Sie haben eine Kontingentrichtlinie verwendet, um die Anzahl der Aufrufe für jede App zu begrenzen, und eine CORS-Richtlinie hinzugefügt, um die Freigabe von Cross-Origin-Ressourcen in der API zu unterstützen. Sie haben ein Entwicklerportal erstellt und die API-Produkte für App-Entwickler veröffentlicht.

Weitere Informationen

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 05. August 2025 aktualisiert

Lab zuletzt am 05. August 2025 getestet

© 2026 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Am besten führen Sie dieses Lab in einem Inkognito- oder privaten Browserfenster aus. So vermeiden Sie Konflikte zwischen Ihrem privaten Konto und dem Teilnehmerkonto, die zusätzliche Kosten für Ihr privates Konto verursachen könnten.