API-Proxy nur mit internem Zugriff aufrufen

Diese Seite gilt für Apigee, aber nicht für Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

In diesem Dokument erfahren Sie, wie Sie API-Proxys von Clients aufrufen, die in Ihrem internen Netzwerk ausgeführt werden. Diese Schritte sind nützlich, um die Einrichtung zu testen, wenn Apigee für das interne Netzwerk-Routing bereitgestellt wird. Sie können die Schritte in diesem Dokument ausführen, wenn Apigee mit einer der folgenden Netzwerkrouting-Konfigurationen bereitgestellt wurde:

Bereitstellungsoption Netzwerkoption Bereitstellungsschritte
Kostenpflichtiges Abo Mit VPC-Peering Internes Routing (VPC)
Internes Routing (PSC)
Pay as you go Mit VPC-Peering Internes Routing (VPC)
Internes Routing (PSC)
Bewertung Mit VPC-Peering Routing konfigurieren (intern)
Bewertung Ohne VPC-Peering Internes Routing (PSC)

Siehe auch Netzwerkoptionen.

Hinweise

Führen Sie die folgenden vorbereitenden Einrichtungsschritte aus:

  1. Initialisieren Sie, sofern noch nicht geschehen, das Cloud SDK wie unter Cloud CLI initialisieren beschrieben oder prüfen Sie andernfalls, ob das unter Voraussetzungen erstellte Google Cloud-Projekt Standardprojekt für gcloud ist.
  2. Definieren Sie die folgenden lokalen Umgebungsvariablen:

    export PROJECT_ID=YOUR_PROJECT_ID
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export SUBNET=NETWORK_NAME
    export INSTANCE_NAME=INSTANCE_NAME
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

    Wobei:

    • PROJECT_ID ist die Cloud-Projekt-ID, die Sie im Rahmen der Voraussetzungen erstellt haben.
    • AUTH definiert den Authentication-Header mit einem Inhabertoken. Dieser Header wird beim Aufrufen von Apigee APIs verwendet. Beachten Sie, dass das Token nach einer gewissen Zeit abläuft. Wenn dies der Fall ist, können Sie es einfach mit demselben Befehl neu generieren. Weitere Informationen finden Sie auf der Referenzseite für den Befehl print-access-token.
    • SUBNET ist das während der Bereitstellung angegebene Subnetz. Beispiel: default.
    • INSTANCE_NAME ist der Name der neuen Instanz Beispiel: my-runtime-instance. Dieser Name muss mit einem Kleinbuchstaben beginnen und kann bis zu 32 Zeichen lang sein. Er darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. Er kann nicht mit einem Bindestrich beginnen oder enden und muss aus mindestens 2 Zeichen bestehen.
    • PROJECT_NUMBER ist die Cloud-Projekt-ID, die Sie im Rahmen der Voraussetzungen erstellt haben. In diesem Beispiel wird der gcloud-Befehl ausgegeben, um die Projektnummer für Sie abzurufen.
  3. Rufen Sie den Wert des Attributs location aus der Apigee-Instanz ab. Dieser Wert ist die Region, in der sich die Instanz befindet, z. B. us-west1:
    curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances
  4. Wählen Sie eine Zone innerhalb der Instanzregion aus und fügen Sie den Zonennamen in eine Variable ein. Die Zone muss sich in der Instanz befinden. Beispiel:
    export VM_ZONE="us-west1-b"

    Wenn Sie Hilfe bei der Identifizierung einer Zone innerhalb der Instanzregion benötigen, können Sie diesen gcloud-Befehl verwenden, um einen Zonennamen für die konfigurierte Laufzeitregion zurückzugeben. Beispiel:

    VM_ZONE=$(gcloud compute zones list | grep "us-west1" | head -n 1 | awk '{print $1}')

VM erstellen und API-Proxy aufrufen

Erstellen Sie mit dem Befehl gcloud beta compute eine neue VM in Ihrem VPC-Netzwerk. Die VM fungiert als Brücke, über die Sie Anfragen an die IP des internen Load-Balancers senden können. Nachdem die VM eingerichtet ist, können Sie einen bereitgestellten API-Proxy aufrufen:

  1. Im folgenden Beispiel wird eine neue VM mit einigen gängigen Optionen erstellt und die Umgebungsvariablen verwendet, die Sie zuvor als Eingaben definiert haben.
    gcloud beta compute --project=$PROJECT_ID \
      instances create $INSTANCE_NAME \
      --zone=$VM_ZONE \
      --machine-type=e2-micro \
      --subnet=$SUBNET \
      --network-tier=PREMIUM \
      --no-restart-on-failure \
      --maintenance-policy=TERMINATE \
      --preemptible \
      --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --scopes=https://www.googleapis.com/auth/cloud-platform \
      --tags=http-server,https-server \
      --image=debian-10-buster-v20210217 \
      --image-project=debian-cloud \
      --boot-disk-size=10GB \
      --boot-disk-type=pd-standard \
      --boot-disk-device-name=$INSTANCE_NAME \
      --no-shielded-secure-boot \
      --shielded-vtpm \
      --shielded-integrity-monitoring \
      --reservation-affinity=any
  2. Öffnen Sie eine sichere Verbindung zur neuen VM, die Sie gerade erstellt haben.

    gcloud compute ssh $INSTANCE_NAME --zone=$VM_ZONE --project=$PROJECT_ID
  3. Installieren Sie in der VM-Shell das Dienstprogramm jq. Sie wird in den folgenden Schritten verwendet:
    sudo apt-get update -y
    sudo apt-get install -y jq
    
  4. Erstellen Sie in der VM-Shell die folgenden Umgebungsvariablen, um das Kopieren und Einfügen der API-Proxy-Anfrage zu erleichtern:
    export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    export PROJECT_ID=YOUR_PROJECT_ID
    export ENV_GROUP_HOSTNAME=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups -s | jq -r '.environmentGroups[0].hostnames[0]')
    
  5. Prüfen Sie, ob die Variablen richtig eingestellt sind:
    echo $AUTH
    echo $PROJECT_ID
    echo $ENV_GROUP_HOSTNAME
  6. Einen API-Proxy aufrufen Wählen Sie unten eine Option aus, die der Konfiguration des Routings während der Apigee-Bereitstellung entspricht.

    Optionen für Installationen, die VPC-Peering verwenden

    • (TLS-Option 1) Wenn Sie in Ihrem Projekt einen internen Load-Balancer (ILB) konfiguriert haben, wie unter Internes Routing (VPC) erläutert, rufen Sie den Proxy mit der IP-Adresse dieses ILB auf. Diese Option verwendet CA-Zertifikate, die Sie steuern und die beim Erstellen des internen Load Balancers erstellt wurden:
      1. Rufen Sie die IP-Adresse des internen Load-Balancers in Ihrem Projekt ab, wie unter Internes HTTP(S)-Load-Balancing mit VM-Instanzgruppen-Back-Ends einrichten erläutert.
      2. Rufen Sie einen API-Proxy auf:
        curl -H "Host: $ENV_GROUP_HOSTNAME" \
          https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (TLS-Option 2) Verwenden Sie den standardmäßigen, vollständig qualifizierten Domainnamen, der in den internen Load-Balancer im Apigee-Projekt aufgelöst wird. Bei dieser Option wird TLS mit intern erstellten Apigee-signierten Zertifikaten verwendet. Sie haben keine Kontrolle über diese Zertifikate.
      1. Rufen Sie die IP-Adresse des internen Load-Balancers im Apigee-Projekt ab:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Rufen Sie das CA-Zertifikat ab, das während der Organisationserstellung erstellt wurde, mit dem folgenden Befehl:
        curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID | jq -r .caCertificate | base64 -d > cacert.crt
      3. Senden Sie die Anfrage an einen bereitgestellten API-Proxy, wobei example.$PROJECT_ID.apigee.internal der interne, standardmäßige, vollständig qualifizierte Domainname ist, der in den internen Load-Balancer aufgelöst wird.
        curl -is -H "Host: $ENV_GROUP_HOSTNAME" \
          https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \
          --cacert cacert.crt \
          --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
    • (Nicht-TLS-Option) Wenn Sie kein TLS benötigen, können Sie das Flag -k im Befehl curl verwenden, um TLS zu deaktivieren und SSL-Probleme zu vermeiden:
      1. Rufen Sie die IP-Adresse des internen Load-Balancers im Apigee-Projekt ab:
        export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
      2. Rufen Sie einen API-Proxy auf:
        curl -i -k \
          -H "Host: $ENV_GROUP_HOSTNAME" \
          https://$INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
    • (Dienstendpunktoption) Wenn Sie eine kostenpflichtige oder Evaluierungsorganisation mit PSC bereitgestellt und die Dienstendpunkt-Routingoption ausgewählt haben:
      1. Rufen Sie die IP-Adresse des Dienstendpunkts ab. Wie Sie die Endpunkt-IP-Adresse aufrufen, erfahren Sie unter Endpunkte auflisten.
      2. Rufen Sie einen API-Proxy auf:
        curl -i -k \
           -H "Host: $ENV_GROUP_HOSTNAME" \
           https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Beispiel:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Optionen für Installationen, die kein VPC-Peering verwenden

    • (Dienstendpunktoption) Wenn Sie eine kostenpflichtige oder Evaluierungsorganisation mit PSC bereitgestellt und die Dienstendpunkt-Routingoption ausgewählt haben:
      1. Rufen Sie die IP-Adresse des Dienstendpunkts ab. Wie Sie die Endpunkt-IP-Adresse aufrufen, erfahren Sie unter Endpunkte auflisten.
      2. Rufen Sie einen API-Proxy auf:
        curl -i -k \
            -H "Host: $ENV_GROUP_HOSTNAME" \
            https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH

        Beispiel:

        curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k

    Wenn in diesem Teil des Prozesses Fehler auftreten, achten Sie darauf, dass alle Umgebungsvariablen, die Sie erstellt und in Befehlen verwendet haben, gültige Werte haben. Siehe auch Fehlerbehebung.

    Nächster Schritt

    Versuchen Sie, einen Proxy zu erstellen, den Sie dann bereitstellen können, oder gehen Sie zu den Apigee-Anleitungen, in denen Sie die Funktionen von Apigee kennenlernen, z. B. Schutz vor unerwarteten Trafficspitzen oder eine detaillierte Ansicht des Anfrage-/Antwortablaufs.

    (Erweitert) Wenn Sie dies in eine Produktionsumgebung umwandeln möchten, können Sie einen Sicherheitsbereich für Ihren neuen Cluster und die zugehörigen Cloud-Dienste konfigurieren. Dies ist mit VPC Service Controls möglich.