Kostenpflichtige Organisation ohne VPC-Peering bereitstellen

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

Apigee Edge-Dokumentation aufrufen

In diesem Dokument wird beschrieben, wie Sie Apigee über die Befehlszeile ohne VPC-Peering installieren und konfigurieren. Diese Schritte gelten sowohl für Abo- als auch für „Pay as you go“-Preismodelle für bezahlte Organisationen mit oder ohne aktiviertem Datenstandort.

Weitere Informationen finden Sie unter Bereitstellungsoptionen.

Beschränkungen

Für die Nicht-VPC-Peering-Installationsoption, die in diesem Dokument beschrieben wird, gelten einige Einschränkungen:

Eine vollständige Liste der Features und Netzwerkansätze, die für das Nicht-VPC-Peering unterstützt und nicht unterstützt werden, finden Sie unter Netzwerkoption auswählen.

Zusammenfassung der Schritte

Dazu sind folgende Schritte erforderlich:

Schritt 1: Umgebungsvariablen definieren

Richten Sie gcloud ein und definieren Sie Umgebungsvariablen zur Verwendung in späteren Schritten:

  1. Prüfen Sie, ob die unter Vorbereitung aufgeführten Einrichtungsanforderungen erfüllt sind.
  2. Das Cloud SDK muss installiert sein. Weitere Informationen zur Installation finden Sie unter Cloud SDK installieren.
  3. Initialisieren Sie das Cloud SDK, wie unter gcloud CLI initialisieren beschrieben, oder achten Sie darauf, dass das unter Voraussetzungen erstellte Google Cloud-Projekt das Standardprojekt für gcloud ist.
  4. Definieren Sie in Ihrem Befehlsterminal die folgenden Umgebungsvariablen: Wählen Sie den Tab aus, der dem Typ der benötigten Organisation entspricht: Kein Datenstandort oder Datenstandort

    Kein Datenstandort

    AUTH="$(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
    BILLING_TYPE="YOUR_BILLING_TYPE"

    Wobei:

    • AUTH definiert den Header Authentication 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.
    • PROJECT_ID ist die Cloud-Projekt-ID, die Sie als eine der Voraussetzungen erstellt haben.
    • PROJECT_NUMBER ist die Cloud-Projektnummer, die Sie unter Voraussetzungen erstellt haben.
    • RUNTIME_LOCATION ist der physische Standort, an dem sich die Apigee-Instanz befindet, die Sie später erstellen. Eine Liste der verfügbaren Laufzeitstandorte finden Sie unter Apigee-Standorte.

    • ANALYTICS_REGION ist der physische Standort, an dem Apigee-Analysedaten gespeichert werden. Eine Liste der verfügbaren Apigee API Analytics-Regionen finden Sie unter Apigee-Standorte.

      RUNTIME_LOCATION und ANALYTICS_REGION können sich zwar auf dieselbe Region beziehen, müssen aber nicht identisch sein.

    • BILLING_TYPE ist der Abrechnungstyp für die von Ihnen erstellte Organisation. Gültige Werte sind:

    Datenstandort

    AUTH="$(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    BILLING_TYPE="YOUR_BILLING_TYPE"

    Wobei:

    • AUTH definiert den Header Authentication 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.
    • PROJECT_ID ist die Cloud-Projekt-ID, die Sie als eine der Voraussetzungen erstellt haben.
    • PROJECT_NUMBER ist die Cloud-Projektnummer, die Sie unter Voraussetzungen erstellt haben.
    • RUNTIME_LOCATION ist der physische Standort, an dem sich die Apigee-Instanz befindet, die Sie später erstellen. Eine Liste der verfügbaren Laufzeitstandorte finden Sie unter Apigee-Standorte.

      Der Laufzeitstandort muss sich innerhalb des Speicherorts der Steuerungsebene befinden.
    • CONTROL_PLANE_LOCATION ist der physische Standort, an dem die Daten der Apigee-Steuerungsebene gespeichert werden. Eine Liste der verfügbaren Standorte der Steuerungsebene finden Sie unter Apigee-Standorte.
    • CONSUMER_DATA_REGION ist eine Unterregion der Region der Steuerungsebene. Sie müssen sowohl die CONTROL_PLANE_LOCATION als auch die CONSUMER_DATA_REGION angeben. Eine Liste der verfügbaren Regionen für Nutzerdaten finden Sie unter Apigee-Standorte.
    • BILLING_TYPE ist der Abrechnungstyp für die von Ihnen erstellte Organisation. Gültige Werte sind:

  5. (Optional) Um Ihre Arbeit zu testen, rufen Sie die soeben festgelegten Werte ab. Wenn Sie in Ihren Befehlen eine Variable verwenden möchten, stellen Sie dem Variablennamen ein Dollarzeichen ($) voran.

    Kein Datenstandort

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    echo $BILLING_TYPE
    

    Die Antworten auf Ihre echo-Befehle sollten etwa so aussehen:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us-west1
    SUBSCRIPTION
    

    Datenstandort

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $CONTROL_PLANE_LOCATION
    echo $CONSUMER_DATA_REGION
    echo $BILLING_TYPE
    

    Die Antworten auf Ihre echo-Befehle sollten etwa so aussehen:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us
    us-west1
    SUBSCRIPTION
    

Schritt 2: APIs aktivieren

  1. Für Apigee müssen Sie mehrere Google Cloud APIs aktivieren. Aktivieren Sie diese mit dem folgenden Befehl services enable:

    gcloud services enable apigee.googleapis.com \
        compute.googleapis.com \
        cloudkms.googleapis.com --project=$PROJECT_ID
  2. (Optional) Rufen Sie zum Prüfen Ihrer Arbeit mit dem Befehl services list alle aktivierten APIs auf:

    gcloud services list

    In der Antwort werden alle aktivierten Dienste angezeigt, einschließlich der APIs, die Sie gerade aktiviert haben.

Schritt 3: Apigee-Dienstidentität erstellen

  1. Erstellen Sie die Apigee-Dienstidentität:

    gcloud beta services identity create --service=apigee.googleapis.com \
      --project=$PROJECT_ID
  2. Überprüfen Sie, ob der Agent erfolgreich erstellt wurde. Die Antwort sollte den Namen des Agents im folgenden Format enthalten: service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com. Beispiel:

    Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com

Schritt 4: Organisation erstellen

Für das Erstellen einer Organisation müssen Sie einen Schlüsselbund und einen Schlüssel für die Verschlüsselung der Laufzeitdatenbank anlegen (siehe Schritt 1) und, wenn Sie Datenstandort verwenden, Schlüsselbunde und Schlüssel für die Verschlüsselung der Steuerungsebene (siehe Schritt 2) Diese Cloud KMS-Schlüssel verschlüsseln Daten, die an Laufzeit- und Steuerungsebenenstandorten gespeichert und repliziert werden. Apigee verwendet diese Entitäten zum Verschlüsseln von Anwendungsdaten wie KVMs, Cache- und Clientschlüssel, die dann in der Datenbank gespeichert werden. Weitere Informationen finden Sie unter Apigee-Verschlüsselungsschlüssel.

  1. Erstellen Sie einen Schlüsselbund und Schlüssel für die Verschlüsselung der Laufzeitdatenbank:

    1. Definieren Sie für den Speicherort von Schlüsselbund und Schlüssel zur Verschlüsselung Ihrer Laufzeitdatenbank eine Umgebungsvariable. Dies sorgt für Konsistenz bei der Erstellung und hilft Ihnen beim Befolgen der Dokumentation.

      Der Wert ist der physische Standort, an dem der Schlüsselbund und der Schlüssel der Laufzeitdatenbank gespeichert sind.

      Einzelne Region

      Konfigurationen für eine einzelne Region (in denen Sie nur eine Instanz in einer Region haben): Wählen Sie einen der unterstützten regionalen KMS-Standorte aus.

      Beispiel:

      RUNTIMEDBKEY_LOCATION="us-west1"

      Der Wert kann mit Ihrer $RUNTIME_LOCATION (auch eine Region) identisch sein, muss es aber nicht. Unter Umständen verbessert die Übereinstimmung aber die Leistung.

      Mehrere Regionen

      Multiregionale Konfigurationen: Wählen Sie einen unterstützten multiregionalen Standort (z. B. usoder europe) oder einen dual-regionalen Standort aus.

      Beispiel:

      RUNTIMEDBKEY_LOCATION="us"

      Wenn Sie eine Konfiguration mit mehreren Regionen in den USA haben, empfehlen wir die Verwendung von us für Ihren Standort, sofern möglich. Verwenden Sie andernfalls nam4.

    2. Definieren Sie Umgebungsvariablen für den Schlüsselbund und den Schlüsselnamen der Datenbank.

      Der Name des Schlüsselbunds muss für Ihre Organisation eindeutig sein. Wenn Sie eine zweite oder nachfolgende Region erstellen, darf der Name nicht mit den Namen anderer Schlüsselbunde übereinstimmen.

      RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
      RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
    3. (Optional) Um Ihre Arbeit zu testen, rufen Sie die soeben festgelegten Werte ab. Wenn Sie in Ihren Befehlen eine Variable verwenden möchten, stellen Sie dem Variablennamen ein Dollarzeichen ($) voran.
      echo $RUNTIMEDBKEY_LOCATION
      echo $RUNTIMEDB_KEY_RING_NAME
      echo $RUNTIMEDB_KEY_NAME
    4. Erstellen Sie einen neuen Schlüsselbund:
      gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \
        --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID

      Der Speicherort des Verschlüsselungsschlüssels für die Apigee-Laufzeitdatenbank unterstützt alle Cloud KMS-Standorte, die Cloud HSM und Cloud EKM unterstützen.

    5. Schlüssel erstellen:

      gcloud kms keys create $RUNTIMEDB_KEY_NAME \
        --keyring $RUNTIMEDB_KEY_RING_NAME \
        --location $RUNTIMEDBKEY_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Dieser Befehl erstellt den Schlüssel und fügt ihn dem Schlüsselbund hinzu.

      Rufen Sie die Schlüssel-ID ab:

      gcloud kms keys list \
        --location=$RUNTIMEDBKEY_LOCATION \
        --keyring=$RUNTIMEDB_KEY_RING_NAME \
        --project=$PROJECT_ID

      Die Schlüssel-ID hat die folgende Syntax (ähnlich einem Dateipfad):

      projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
    6. Fügen Sie die Schlüssel-ID in eine Umgebungsvariable ein. Sie verwenden diese Variable in einem späteren Befehl:

      RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
    7. Gewähren Sie dem Apigee-Dienst-Agent Zugriff auf den neuen Schlüssel:

      gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \
        --location $RUNTIMEDBKEY_LOCATION \
        --keyring $RUNTIMEDB_KEY_RING_NAME \
        --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID

      Mit diesem Befehl wird der Schlüssel an den Apigee-Dienst-Agent gebunden.

      Nach dem erfolgreichen Abschluss dieser Anfrage gibt gcloud etwa folgende Antwort zurück:

      Updated IAM policy for key [runtime].
      bindings:
      - members:
        - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
        role: roles/cloudkms.cryptoKeyEncrypterDecrypter
      etag: BwWqgEuCuwk=
      version: 1

      Wenn Sie einen Fehler wie folgenden erhalten:

      INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

      Achten Sie darauf, dass Sie die Projektnummer und nicht den Projektnamen in der E-Mail-Adresse des Dienstkontos verwendet haben.

  2. Wenn Sie den Datenstandort verwenden, erstellen Sie einen Schlüsselbund und Schlüssel zur Verschlüsselung der Steuerungsebene. Wenn Sie keinen Datenstandort verwenden, fahren Sie mit Schritt 3 fort.
  3. Führen Sie die folgenden Schritte aus, um einen Schlüsselbund und einen Schlüssel der Steuerungsebene zu erstellen.

    1. Definieren Sie eine Umgebungsvariable für den Speicherort des Schlüsselbunds und Schlüssels für die Verschlüsselung der Steuerungsebene.
      CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
      CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGION

      Wobei:

      • CONTROL_PLANE_LOCATION ist der physische Standort, an dem die Daten der Apigee-Steuerungsebene gespeichert werden. Eine Liste der verfügbaren Standorte der Steuerungsebene finden Sie unter Apigee-Standorte.
      • CONSUMER_DATA_REGION ist eine Unterregion der Region der Steuerungsebene. Sie müssen sowohl die CONTROL_PLANE_LOCATION als auch die CONSUMER_DATA_REGION angeben. Eine Liste der verfügbaren Regionen für Nutzerdaten finden Sie unter Apigee-Standorte.
    2. Definieren Sie Umgebungsvariablen für den Schlüsselbund und den Schlüsselnamen der Datenbank der Steuerungsebene.

      Der Name des Schlüsselbunds muss für Ihre Organisation eindeutig sein.

      CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
      CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAME
      CONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAME
      CONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAME

      Wobei:

      • CONTROL_PLANE_KEY_RING_NAME ist der Name des Schlüsselbunds, mit dem Sie den Schlüsselbund der Verschlüsselung Ihrer Steuerungsebene identifizieren.
      • CONTROL_PLANE_KEY_NAME ist der Name des Schlüssels, mit dem Sie den Verschlüsselungsschlüssel Ihrer Steuerungsebene identifizieren.
      • CONSUMER_DATA_KEY_RING_NAME ist der Name des Schlüsselbunds, mit dem Sie Ihren Verschlüsselungs-Schlüsselbund des Speicherorts für Nutzerdaten identifizieren.
      • CONSUMER_DATA_KEY_NAME ist der Name des Schlüssels, mit dem Sie Ihren Verschlüsselungsschlüssel des Speicherorts für Nutzerdaten identifizieren.
    3. Erstellen Sie einen neuen Schlüsselbund:
      gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --project $PROJECT_ID
      gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \
        --location $CONSUMER_DATA_REGION \
        --project $PROJECT_ID
    4. Schlüssel erstellen:
      gcloud kms keys create $CONTROL_PLANE_KEY_NAME \
        --keyring $CONTROL_PLANE_KEY_RING_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID
      gcloud kms keys create $CONSUMER_DATA_KEY_NAME \
        --keyring $CONSUMER_DATA_KEY_RING_NAME \
        --location $CONSUMER_DATA_REGION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Dieser Befehl erstellt den Schlüssel und fügt ihn dem Schlüsselbund hinzu.

      Rufen Sie die Schlüssel-ID ab:

      gcloud kms keys list \
      --location=$CONTROL_PLANE_LOCATION \
      --keyring=$CONTROL_PLANE_KEY_RING_NAME \
      --project=$PROJECT_ID
      gcloud kms keys list \
      --location=$CONSUMER_DATA_REGION \
      --keyring=$CONSUMER_DATA_KEY_RING_NAME \
      --project=$PROJECT_ID

      Die Schlüssel-ID hat die folgende Syntax (ähnlich einem Dateipfad):

      projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
      projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
    5. Fügen Sie die Schlüssel-ID in eine Umgebungsvariable ein. Sie verwenden diese Variable in einem späteren Befehl:
      CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
      
      CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
    6. Gewähren Sie dem Apigee-Dienst-Agent Zugriff auf den neuen Schlüssel:
      gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \
        --location $CONTROL_PLANE_LOCATION \
        --keyring $CONTROL_PLANE_KEY_RING_NAME \
        --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID
      
      gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \
       --location $CONSUMER_DATA_REGION \
       --keyring $CONSUMER_DATA_KEY_RING_NAME \
       --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
       --project $PROJECT_ID
      

      Mit diesem Befehl wird der Schlüssel an den Apigee-Dienst-Agent gebunden. Nach dem erfolgreichen Abschluss dieser Anfrage gibt gcloud etwa folgende Antwort zurück:

      Updated IAM policy for key [runtime].
      bindings:
      - members:
        - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
        role: roles/cloudkms.cryptoKeyEncrypterDecrypter
      etag: BwWqgEuCuwk=
      version: 1
      

      Wenn Sie einen Fehler wie folgenden erhalten:

      INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
      

      Achten Sie darauf, dass Sie die Projektnummer und nicht den Projektnamen in der E-Mail-Adresse des Dienstkontos verwendet haben.

    Weitere Informationen finden Sie unter CMEK-Fehlerbehebung.

  4. Erstellen Sie die Organisation, indem Sie die folgende Anfrage an die Apigee Organizations API senden:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"  \
      -H "Authorization: Bearer $AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$PROJECT_ID"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'",
        "runtimeType":"CLOUD",
        "billingType":"'"$BILLING_TYPE"'",
        "disableVpcPeering":"true",
        "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'"
      }'

    Wobei:

    • -d definiert die Datennutzlast für die Anfrage. Diese Nutzlast muss Folgendes enthalten:
      • name gibt Ihre neue Organisation an. Der Wert muss mit Ihrer Projekt-ID identisch sein.

      • analyticsRegion gibt den physischen Speicherort an, an dem Ihre Analysedaten gespeichert werden.

      • runtimeType: Setzen Sie diesen Wert auf CLOUD.
      • billingType: Gibt den Abrechnungstyp der erstellten Organisation an.
      • disableVpcPeering: Setzen Sie diese Option auf true, wenn Sie kein VPC-Peering verwenden möchten. Standardeinstellung: false
      • runtimeDatabaseEncryptionKeyName: Die ID des Verschlüsselungsschlüssels der Anwendung, den Sie im vorherigen Schritt erstellt haben. Denken Sie daran, dass die ID wie ein Dateipfad strukturiert ist. Beispiel:
        projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    Datenstandort

    Erstellen Sie eine Organisation mit der API:

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"  \
      -H "Authorization: Bearer $AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$PROJECT_ID"'",
        "runtimeType":"CLOUD",
        "billingType":"'"$BILLING_TYPE"'",
        "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'",
        "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'",
        "disableVpcPeering":"true",
        "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'"
      }'

    Wobei:

    -d definiert die Datennutzlast für die Anfrage. Diese Nutzlast muss Folgendes enthalten:

    • name gibt Ihre neue Organisation an. Der Wert muss mit Ihrer Projekt-ID identisch sein.
    • runtimeType: Setzen Sie diesen Wert auf CLOUD.
    • billingType: Gibt den Abrechnungstyp der erstellten Organisation an.
    • controlPlaneEncryptionKeyName: ist die Schlüssel-ID der Steuerungsebene.
    • apiConsumerDataLocation: Sie müssen auch eine Unterregion für die Verwendung durch interne Ressourcen angeben. Unterstützte Werte finden Sie unter Datenstandortregionen.
    • apiConsumerDataEncryptionKeyName: Ist die Schlüssel-ID der Nutzerdatenregion.
    • disableVpcPeering: Setzen Sie diese Option auf true, wenn Sie kein VPC-Peering verwenden möchten. Standardeinstellung: false
    • runtimeDatabaseEncryptionKeyName: Die ID des Verschlüsselungsschlüssels der Anwendung, den Sie im vorherigen Schritt erstellt haben. Denken Sie daran, dass die ID wie ein Dateipfad strukturiert ist. Beispiel:
      projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    Nach Ausführung dieses Befehls startet Apigee einen Vorgang mit langer Ausführungszeit, der ein paar Minuten dauern kann.

    Wenn ein Fehler zurückgegeben wird, prüfen Sie, ob die Variablenwerte in der Datennutzlast in Anführungszeichen eingeschlossen wurden. Achten Sie darauf, dass die Variable $PROJECT_ID zwischen doppelten Anführungszeichen steht, wie im Folgenden dargestellt:

    "'"$PROJECT_ID"'"

    Wenn Sie einfache Strings (keine Umgebungsvariablen) für Abfragewerte verwenden, können Sie diese in doppelte Anführungszeichen innerhalb des in einfachen Anführungszeichen stehenden Nutzlaststrings setzen, wie das folgende Beispiel zeigt:

    '{ "name":"my-gcp-project", ... }'
  5. Warten Sie ein paar Minuten.
  6. Um den Status Ihrer Erstellungsanfrage zu prüfen, können Sie eine GET-Anfrage an die Apigee List Organizations API wie im folgendem Beispiel senden:

    Kein Datenstandort

    curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Datenstandort

    curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Wenn diese Antwort angezeigt wird, ist die Erstellung der Organisation noch nicht abgeschlossen:

    {
      "error": {
        "code": 403,
        "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)",
        "status": "PERMISSION_DENIED"
      }
    }

    Bei Erfolg gibt das Antwortobjekt "state": "ACTIVE" an und Sie können mit dem nächsten Schritt fortfahren.

    Wenn Apigee eine HTTP-Fehlerantwort zurückgibt, lesen Sie Apigee-Organisation erstellen.

Schritt 5: Laufzeitinstanz erstellen

Eine Laufzeitinstanz, in der Ihr Apigee-Projekt und die zugehörigen Dienste gespeichert sind. Sie stellt den nutzerseitigen Endpunkt für Ihre Dienste bereit. So erstellen Sie eine neue Laufzeitinstanz:

  1. Prüfen Sie, ob Apigee das Erstellen Ihrer Organisation abgeschlossen hat. Sie haben in Apigee-Organisation erstellen eine Anfrage zum Erstellen einer neuen Organisation gesendet, müssen diese jedoch prüfen, bevor Sie fortfahren.

    Senden Sie dazu die folgende Anfrage an die Organizations API:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Wenn die Organisation vorhanden ist und Sie die entsprechenden Berechtigungen zu deren Anzeige haben, gibt Apigee Details dazu zurück. Wenn Apigee mit einem Fehler antwortet, warten Sie einige Minuten und senden Sie die Anfrage noch einmal.

  2. Ähnlich wie in der vorherigen Aufgabe, in der Sie einen Verschlüsselungsschlüssel für die Datenbank erstellt haben, müssen Sie jetzt einen Cloud KMS-Schlüssel erstellen, mit dem Daten auf der Serverseite verschlüsselt werden. Definieren Sie zuerst die folgenden Umgebungsvariablen:
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    RUNTIME_LOCATION=YOUR_RUNTIME_LOCATION
    DISK_KEY_RING_NAME=YOUR_DISK_KEY_RING_NAME
    DISK_KEY_NAME=YOUR_DISK_KEY_NAME
  3. Wobei:

    • INSTANCE_NAME: Der Name Ihrer 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.
    • RUNTIME_LOCATION ist der physische Standort, an dem der Cluster gehostet wird. Gültige Werte sind alle Standorte, die von Compute Engine zugelassen werden. Weitere Informationen finden Sie unter Verfügbare Regionen und Zonen. In diesem Beispiel wird us-west1 verwendet.
    • DISK_KEY_RING_NAME ist der Name des Laufwerksschlüsselbunds.
    • DISK_KEY_NAME ist der Name des Laufwerksverschlüsselungsschlüssels.
  4. Laufwerkverschlüsselungsschlüssel erstellen:
    1. Erstellen Sie einen neuen Laufwerkschlüsselbund:
      gcloud kms keyrings create $DISK_KEY_RING_NAME \
        --location $RUNTIME_LOCATION \
        --project $PROJECT_ID

      Der Schlüsselbund des Laufwerks muss auf den gleichen Standort wie die Instanz eingestellt werden. Jede Instanz und jeder Schlüsselbund müssen einen eigenen Standort haben.

    2. Erstellen Sie einen neuen Laufwerksschlüssel:
      gcloud kms keys create $DISK_KEY_NAME \
        --keyring $DISK_KEY_RING_NAME \
        --location $RUNTIME_LOCATION \
        --purpose "encryption" \
        --project $PROJECT_ID

      Auf den Schlüssel kann über seinen Schlüsselpfad verwiesen werden. Der Schlüsselpfad lässt sich mit folgendem Befehl abrufen:

      gcloud kms keys list \
        --location=$RUNTIME_LOCATION \
        --keyring=$DISK_KEY_RING_NAME \
        --project=$PROJECT_ID

      Der Schlüsselpfad sieht in etwa so aus:

      projects/PROJECT_ID/locations/RUNTIME_LOCATION/keyRings/my-disk-key-ring/cryptoKeys/my-disk-key
    3. Fügen Sie den Schlüsselpfad in eine Umgebungsvariable ein. Sie verwenden diese Variable in einem späteren Befehl:

      DISK_KEY_ID=YOUR_DISK_KEY_ID

      Beispiel: DISK_KEY_ID=projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    4. Gewähren Sie dem Apigee-Dienst-Agent Zugriff auf den neuen Schlüssel:

      gcloud kms keys add-iam-policy-binding $DISK_KEY_NAME \
        --location $RUNTIME_LOCATION \
        --keyring $DISK_KEY_RING_NAME \
        --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project $PROJECT_ID

      Mit diesem Befehl wird der Schlüssel an den Apigee-Dienst-Agent gebunden.

    Weitere Informationen finden Sie unter Apigee-Verschlüsselungsschlüssel.

  5. Erstellen Sie eine neue Laufzeitinstanz für Ihr Projekt. Senden Sie dazu eine POST-Anfrage an die Instances API von Apigee:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
      -X POST -H "Authorization: Bearer $AUTH" \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$INSTANCE_NAME"'",
        "location":"'"$RUNTIME_LOCATION"'",
        "diskEncryptionKeyName":"'"$DISK_KEY_ID"'",
        "consumerAcceptList":["'"$PROJECT_ID"'"]
      }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \
      -X POST -H "Authorization: Bearer $AUTH" \
      -H "Content-Type:application/json" \
      -d '{
        "name":"'"$INSTANCE_NAME"'",
        "location":"'"$RUNTIME_LOCATION"'",
        "diskEncryptionKeyName":"'"$DISK_KEY_ID"'",
        "consumerAcceptList":["'"$PROJECT_ID"'"]
      }'

    Wobei:

    • consumerAcceptList(Optional) Gibt eine Liste von Google Cloud-Projekt-IDs an, die eine private Verbindung zum Dienstanhang der Apigee-VPC herstellen können. Der Dienstanhang ist eine Entität, die mit Google Cloud Private Service Connect verwendet wird, um es Diensterstellern (in diesem Fall Apigee) zu ermöglichen, Dienste für Nutzer verfügbar zu machen (in diesem Fall ein oder mehrere Cloud-Projekte, die Ihnen gehören). Standardmäßig verwenden wir das Cloud-Projekt, das bereits Ihrer Apigee-Organisation zugeordnet ist. Beispiel: "consumerAcceptList": ["project1", "project2", "project3"]

      Beachten Sie, dass Sie auch die Liste der akzeptierten Projekte in der Instanz-UI festlegen und ändern können. Weitere Informationen finden Sie unter Instanzen verwalten.

    Diese Anfrage kann bis zu 20 Minuten dauern, da Apigee einen neuen Kubernetes-Cluster erstellen und starten, die Apigee-Ressourcen in diesem Cluster installieren und den Lastenausgleich einrichten muss.

    Wenn Apigee einen Fehler zurückgibt, finden Sie weitere Informationen unter Neue Instanz erstellen.

  6. Führen Sie den folgenden Befehl aus, um den Status Ihrer Anfrage zur Erstellung einer Laufzeitinstanz zu prüfen. Wenn der Status ACTIVE lautet, können Sie mit dem nächsten Schritt fortfahren.

    Kein Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"

    Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"

Schritt 6: Umgebung erstellen

So erstellen Sie eine Umgebung und hängen sie der Laufzeit über die Befehlszeile an:

  1. Definieren Sie Umgebungsvariablen für diesen Abschnitt. Welche Umgebungsvariablen Sie erstellen, hängt davon ab, ob Sie eine Umgebung für eine Abo- oder eine Pay as you go-Organisation erstellen.

    Abo

    Erstellen Sie für eine Abo-Umgebung die folgenden Variablen:

    ENVIRONMENT_NAME="YOUR_ENV_NAME"
    ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"
    ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"

    Wobei:

    • ENVIRONMENT_NAME ist ein Stringname. Beispiel: test
    • ENV_GROUP_NAME ist ein Stringname. Beispiel: test-group
    • ENV_GROUP_HOSTNAME ist ein gültiger Domain-Hostname. Beispiel: foo.example.com

    Pay as you go

    Erstellen Sie für eine „Pay as you go“-Umgebung die folgenden Variablen:

    ENVIRONMENT_NAME="YOUR_ENV_NAME"
    ENVIRONMENT_TYPE="YOUR_ENV_TYPE"
    ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"
    ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"

    Wobei:

    • ENVIRONMENT_NAME ist ein Stringname. Beispiel: test
    • ENVIRONMENT_TYPE ist der Umgebungstyp für diese Umgebung und gilt nur für „Pay as you go“-Nutzer. Diese müssen einen der folgenden Werte angeben: BASE, INTERMEDIATE oder COMPREHENSIVE. Andere Nutzer sollten den Umgebungstyp weglassen.
    • ENV_GROUP_NAME ist ein Stringname. Beispiel: test-group
    • ENV_GROUP_HOSTNAME ist ein gültiger Domain-Hostname. Beispiel: foo.example.com
  2. Neue Umgebung mit der Environments API erstellen Welche Befehle Sie verwenden, hängt davon ab, ob Sie eine Umgebung für eine Abo- oder eine Pay as you go-Organisation erstellen.

    Abo

    Verwenden Sie für eine neue Abo-Umgebung den folgenden Befehl:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'"
      }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'"
      }'

    Apigee erstellt eine neue Umgebung.

    Pay as you go

    Verwenden Sie für eine neue „Pay as you go“-Umgebung den folgenden Befehl:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name":"'"$ENVIRONMENT_NAME"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    Apigee erstellt eine neue Umgebung.

  3. Bevor Sie fortfahren, prüfen Sie, ob Apigee die neue Umgebung erstellt hat. Rufen Sie dazu die Environments API auf:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"

    Apigee antwortet mit einer Liste der verfügbaren Umgebungen. Wenn Ihr Umgebungsname beispielsweise test lautet, antwortet Apigee mit Folgendem:

    [
      "test"
    ]
  4. Hängen Sie die neue Umgebung an die Laufzeitinstanz an:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \
        -X POST -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
        }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \
        -X POST -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
        }'

    Dieser Vorgang kann einige Minuten dauern. Führen Sie folgenden Befehl aus, um zu prüfen, ob der Anhang abgeschlossen ist:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"

    Wenn die Ausgabe so aussieht, können Sie mit dem nächsten Schritt fortfahren:

    {
      "attachments": [
        {
          "name": "ed628782-c893-4095-b71c-f4731805290a",
          "environment": "test",
          "createdAt": "1641604447542"
        }
      ]
    }
  5. Erstellen Sie mit dem folgenden Befehl eine neue Umgebungsgruppe. Weitere Informationen finden Sie unter Umgebungen und Umgebungsgruppen.

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name": "'"$ENV_GROUP_NAME"'",
          "hostnames":["'"$ENV_GROUP_HOSTNAME"'"]
      }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \
        -H "Authorization: Bearer $AUTH" \
        -X POST \
        -H "Content-Type:application/json" \
        -d '{
          "name": "'"$ENV_GROUP_NAME"'",
          "hostnames":["'"$ENV_GROUP_HOSTNAME"'"]
      }'
  6. Warten Sie, bis der Vorgang abgeschlossen ist. Sie können dann den Status der neuen Gruppe mithilfe einer Anfrage wie der folgenden prüfen:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"
  7. Hängen Sie die neue Umgebung mit dem folgenden Befehl an die neue Umgebungsgruppe an:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \
        -X POST \
        -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
      }'

    Datenstandort

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \
        -X POST \
        -H "Authorization: Bearer $AUTH" \
        -H "content-type:application/json" \
        -d '{
          "environment":"'"$ENVIRONMENT_NAME"'"
      }'
  8. Rufen Sie diese API auf, um den Status des Vorgangs zu überprüfen:

    Kein Datenstandort

    curl -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"

    Datenstandort

    curl -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"

Schritt 7: Routing konfigurieren

In diesem Schritt konfigurieren Sie, wie Clientanwendungen mit Apigee kommunizieren. Client-zu-Apigee-Traffic wird auch als Northbound-Traffic bezeichnet. Zu den Konfigurationsoptionen für den Northbound-Traffic gehören die folgenden. Rufen Sie die Konfigurationsoption auf, die Sie verwenden möchten, und führen Sie die Schritte für diese Option aus:

Zugriffstyp Beschreibung des Konfigurations- und Bereitstellungsprozesses
Intern mit PSC (neu)

Erlauben Sie mit Private Service Connect (PSC) nur internen Zugriff auf die API-Proxys Ihrer Google Cloud-Projekte.

PSC ermöglicht eine private Verbindung zwischen einem Dienstersteller (Apigee) und einem Dienstnutzer (dem Peering-VPC-Projekt und/oder einem oder mehreren anderen Cloud-Projekten, über die Sie die Kontrolle haben). Bei dieser Methode werden Anfragen entweder über einen Dienst-Endpunkt oder einen regionalen internen Load Balancer an einen einzigen Anhangspunkt geleitet, der als Dienstanhang bezeichnet wird. Mit dieser Konfiguration können Ihre internen Clients Apigee API-Proxyanfragen von einem beliebigen netzwerkfähigen Computer senden.

Extern mit PSC (neu)

Erlaubt den externen Zugriff auf API-Proxys mithilfe von Private Service Connect (PSC).

Verwenden Sie Private Service Connect (PSC), um eine private Verbindung zwischen einem Dienstersteller (Apigee) und einem Dienstnutzer (dem Peering-VPC-Projekt und/oder einem oder mehreren anderen Cloud-Projekten zu ermöglichen, über die Sie die Kontrolle haben). Bei dieser Methode werden Anfragen entweder über einen globalen externen Load Balancer oder einen regionalen externen Load Balancer an einen einzelnen Zugriffspunkt namens Dienstanhang weitergeleitet. Mit dieser Konfiguration können Sie Apigee API-Proxy-Anfragen von jeder netzwerkfähigen Maschine aus senden.

Jeder dieser Routing-Ansätze wird in der folgenden Anleitung beschrieben.

Internes Routing (PSC)

In diesem Abschnitt wird erläutert, wie Sie mit Private Service Connect (PSC) nur internen Zugriff auf Ihre API-Proxys von Ihren Google Cloud-Projekten zulassen.

Sie haben folgende Optionen zum Konfigurieren des internen Zugriffs mit PSC:

  • Dienstendpunkt: Anfragen werden über einen Dienstendpunkt an einen einzelnen Punkt des Anhangs weitergeleitet, der als Dienstanhang bezeichnet wird.
  • Interner regionaler Load Balancer: Anfragen werden über einen regionalen internen HTTP(S)-Load-Balancer weitergeleitet. Siehe auch Globales oder regionales Load Balancing.

Wählen Sie unten den Tab für Ihre Konfiguration aus und folgen Sie der Anleitung:

Dienstendpunkt

PSC-Dienstendpunkt für den Dienstanhang erstellen

  1. Rufen Sie den Dienstanhang aus der zuvor erstellten Instanz ab:

    Kein Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    In der folgenden Beispielausgabe ist der Wert serviceAttachment fett dargestellt:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Erstellen Sie einen PSC-Dienstendpunkt, der auf den Dienstanhang verweist, den Sie im vorherigen Schritt aus dem Antworttext der Instanz erhalten haben, wie unter Private Service Connect-Endpunkt erstellen beschrieben.
  3. Die Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.

Internes regionales Load Balancing

Schritt 8a: Umgebungsvariablen einrichten

In der Anleitung in diesem Abschnitt werden Umgebungsvariablen verwendet, um auf wiederholt verwendete Strings zu verweisen. Achten Sie darauf, dass die Variablen unter Umgebungsvariablen definieren festgelegt werden.

Legen Sie außerdem die folgenden Umgebungsvariablen fest:

NEG_NAME=YOUR_NEG_NAME"
TARGET_SERVICE=YOUR_TARGET_SERVICE"
NETWORK_NAME=YOUR_NETWORK_NAME"
SUBNET_NAME=YOUR_SUBNET_NAME"

Wobei:

  • NEG_NAME: Ein Name für die Netzwerk-Endpunktgruppe.
  • TARGET_SERVICE: Der Dienstanhang, mit dem Sie eine Verbindung herstellen möchten. Beispiel: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
  • NETWORK_NAME: (Optional) Name des Netzwerks, in dem die NEG erstellt wird. Wenn Sie diesen Parameter weglassen, wird das Projektnetzwerk default verwendet.
  • SUBNET_NAME: Name des Subnetzes, das für die private Verbindung zum Ersteller verwendet wird. Die Subnetzgröße kann klein sein: Die PSC NEG benötigt nur eine IP-Adresse aus dem Subnetz. Für Apigee ist nur eine PSC-NEG pro Region erforderlich. Das Subnetz kann von VMs oder anderen Entitäten gemeinsam genutzt und verwendet werden. Wenn kein Subnetz angegeben ist, können Netzwerkendpunkte zu einem Subnetzwerk in der Region gehören, in der die Netzwerk-Endpunktgruppe erstellt wird.

Schritt 8b: Nur-Proxy-Subnetz erstellen

gcloud compute networks subnets create testproxyonlysubnet \
--purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \
--range=100.0.0.0/24 --project=$PROJECT_ID

Schritt 8c: Netzwerk-Endpunktgruppe (NEG) erstellen

  1. Rufen Sie den Dienstanhang aus der zuvor erstellten Instanz ab:

    Kein Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
    "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    In der folgenden Beispielausgabe ist der Wert serviceAttachment fett dargestellt:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
      }
  2. Erstellen Sie eine Private Service Connect NEG, die auf den Dienstanhang verweist, den Sie im vorherigen Schritt aus dem Antworttext der Instanz abgerufen haben.

    gcloud compute network-endpoint-groups create $NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=$TARGET_SERVICE \
    --region=$RUNTIME_LOCATION \
    --project=$PROJECT_ID
    

    $PROJECT_ID Das Cloud-Projekt, das bereits mit Ihrer Apigee-Organisation verknüpft ist, oder ein Cloud-Projekt, das in consumerAcceptlist enthalten war, als die Apigee-Laufzeitinstanz erstellt wurde.

Schritt 8d: Regionalen internen Load Balancer konfigurieren

  1. Reservieren Sie eine interne IPv4-Adresse für den Load Balancer.
    gcloud compute addresses create ADDRESS_NAME \
    --ip-version=IPV4 --subnet=$SUBNET_NAME \
    --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ersetzen Sie ADDRESS_NAME durch einen Namen für die IP-Adressressource

    Führen Sie diesen Befehl aus, um die reservierte IP-Adresse aufzurufen:

    gcloud compute addresses describe ADDRESS_NAME \
    --format="get(address)" --region=$RUNTIME_LOCATION --project=$PROJECT_ID
  2. Erstellen Sie einen neuen Backend-Dienst für die NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTPS \
    --region=$RUNTIME_REGION \
    --project=$PROJECT_ID
  3. Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.

  4. Fügen Sie den Backend-Dienst zur NEG hinzu.
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=$NEG_NAME \
    --region=$RUNTIME_LOCATION \
    --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
    • BACKEND_SERVICE_NAME durch den Namen des Back-End-Dienstes.
  5. Zum Erstellen eines HTTPS-Load-Balancers benötigen Sie eine SSL-Zertifikatsressource, die im HTTPS-Proxy verwendet wird.

    Verwenden Sie diesen Befehl, um eine selbstverwaltete SSL-Zertifikatsressource zu erstellen. Zum Erstellen eines selbstverwalteten SSL-Zertifikats benötigen Sie eine lokale private Schlüsseldatei und eine lokale Zertifikatsdatei. Wenn Sie diese Dateien erstellen müssen, finden Sie weitere Informationen unter Schritt 1 der Verwendung selbstverwalteter SSL-Zertifikate.

    gcloud compute ssl-certificates create CERTIFICATE \
    --certificate LB_CERT \
    --private-key LB_PRIVATE_KEY
    --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • CERTIFICATE ist ein Name für das Zertifikat.
    • LB_CERT ist der Pfad zur Zertifikatsdatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.
    • LB_PRIVATE_KEY ist der Pfad zur privaten Schlüsseldatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.
  6. Erstellen Sie eine URL-Zuordnung für den Load-Balancer.

    Eine URL-Zuordnung muss auf einen Standard-Backend-Dienst verweisen. Legen Sie den Backend-Dienst fest, den Sie gerade als Standard erstellt haben.

    gcloud compute url-maps create URL_MAP_NAME \
    --default-service=DEFAULT_BACKEND_SERVICE_NAME \
    --global --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • URL_MAP_NAME ist ein Name für die URL-Zuordnung.
    • DEFAULT_BACKEND_SERVICE_NAME ist der Name des Standard-Backend-Dienstes des Load-Balancers. Die Standardeinstellung wird verwendet, wenn keine Hostregel mit dem angeforderten Hostnamen übereinstimmt.
  7. Verwenden Sie die SSL-Zertifikatsressource, um einen Ziel-HTTPS-Proxy zu erstellen.

    gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP_NAME \
    --ssl-certificates=CERTIFICATE \
    --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • PROXY_NAME ist ein Name für den Ziel-HTTPS-Proxy.
    • URL_MAP_NAME ist der Name der URL-Zuordnung.
    • CERTIFICATE ist der Name der Zertifikatsressource.
  8. Erstellen Sie die Weiterleitungsregel.
    gcloud compute forwarding-rules create FWD_RULE \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --address=ADDRESS_NAME \
    --target-https-proxy=PROXY_NAME \
    --ports=443 \
    --target-https-proxy-region=$RUNTIME_REGION \
    --region=$RUNTIME_REGION
    --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • FWD_RULE ist ein Name für die Weiterleitungsregel.
    • ADDRESS_NAME ist die IP-Adressressource, die Sie für die Weiterleitungsregel reserviert haben.
    • PROXY_NAME ist der Name des HTTPS-Ziel-Proxys.
  9. Die Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.

Externes Routing (PSC)

In diesem Abschnitt wird beschrieben, wie Sie das externe Routing mit Private Service Connect (PSC) konfigurieren, um die Kommunikation zwischen Apigee und Ihren verwalteten VPCs zu ermöglichen. Dies ist erforderlich, bevor eine Anfrage von einem externen Client an Ihre Apigee-Laufzeitinstanz gesendet werden kann.

Schritt 8b: NEG erstellen und Load Balancer konfigurieren

Sie können einen globalen oder regionalen Load Balancer erstellen.

Globaler externer Load Balancer

Konfigurieren Sie einen globalen externen HTTP(S)-Load-Balancer (das Load-Balancing-Schema ist auf EXTERNAL_MANAGED gesetzt).

Obwohl die Private Service Connect-NEG regional ist, sind alle anderen Load-Balancing-Komponenten in dieser Konfiguration global.

  1. Achten Sie darauf, dass die Umgebungsvariablen unter Umgebungsvariablen definieren festgelegt sind.
  2. Rufen Sie den Dienstanhang aus der zuvor erstellten Instanz ab:

    Kein Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    In der folgenden Beispielausgabe ist der Wert serviceAttachment fett dargestellt:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
    }
  3. Erstellen Sie eine Private Service Connect NEG, die auf den Dienstanhang verweist, den Sie im vorherigen Schritt aus dem Antworttext der Instanz abgerufen haben.

      gcloud compute network-endpoint-groups create NEG_NAME \
        --network-endpoint-type=private-service-connect \
        --psc-target-service=TARGET_SERVICE \
        --region=$RUNTIME_LOCATION \
        --network=NETWORK_NAME \
        --subnet=SUBNET_NAME \
        --project=$PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • NEG_NAME ist ein Name für die Netzwerk-Endpunktgruppe.
    • TARGET_SERVICE: Der Dienstanhang, mit dem Sie eine Verbindung herstellen möchten. Verwenden Sie den vom vorherigen Befehl zurückgegebenen Wert des Dienstanhangs. Zum Beispiel projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7.
    • NETWORK_NAME: (Optional) Name des Netzwerks, in dem die NEG erstellt wird. Wenn Sie diesen Parameter weglassen, wird das Projektnetzwerk default verwendet.
    • SUBNET_NAME: Name des Subnetzes, das für die private Verbindung zum Ersteller verwendet wird. Die Subnetzgröße kann klein sein: Die PSC NEG benötigt nur eine IP-Adresse aus dem Subnetz. Für Apigee ist nur eine PSC-NEG pro Region erforderlich. Das Subnetz kann von VMs oder anderen Entitäten gemeinsam genutzt und verwendet werden. Wenn kein Subnetz angegeben ist, können Netzwerkendpunkte zu einem Subnetzwerk in der Region gehören, in der die Netzwerk-Endpunktgruppe erstellt wird.
    • $PROJECT_ID Das Cloud-Projekt, das bereits mit Ihrer Apigee-Organisation verknüpft ist, oder ein Cloud-Projekt, das in consumerAcceptlist enthalten war, als die Apigee-Laufzeitinstanz erstellt wurde. Erstellen Sie, falls noch nicht geschehen, eine Umgebungsvariable für die Projekt-ID, da sie in den meisten folgenden Befehlen verwendet wird.
  4. Reservieren Sie eine globale externe IPv4-Adresse für den Load-Balancer.
    gcloud compute addresses create ADDRESS_NAME \
        --ip-version=IPV4 --global --project=$PROJECT_ID

    Ersetzen Sie ADDRESS_NAME durch einen Namen für die IP-Adressressource

    Führen Sie diesen Befehl aus, um die reservierte IP-Adresse aufzurufen:

    gcloud compute addresses describe ADDRESS_NAME \
        --format="get(address)" --global --project=$PROJECT_ID
  5. Erstellen Sie einen neuen Backend-Dienst für die NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global --project=$PROJECT_ID
  6. Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.

  7. Fügen Sie den Backend-Dienst zur NEG hinzu.
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=REGION \
        --global --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • BACKEND_SERVICE_NAME ist der Name des Backend-Dienstes.
    • NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
    • REGION ist die Region der Netzwerk-Endpunktgruppe.
  8. Erstellen Sie eine URL-Zuordnung für den Load-Balancer.

    Eine URL-Zuordnung muss auf einen Standard-Backend-Dienst verweisen. Legen Sie den Backend-Dienst fest, den Sie gerade als Standard erstellt haben.

    gcloud compute url-maps create URL_MAP_NAME \
        --default-service=DEFAULT_BACKEND_SERVICE_NAME \
        --global --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • URL_MAP_NAME ist ein Name für die URL-Zuordnung.
    • DEFAULT_BACKEND_SERVICE_NAME ist der Name des Standard-Backend-Dienstes des Load-Balancers. Die Standardeinstellung wird verwendet, wenn keine Hostregel mit dem angeforderten Hostnamen übereinstimmt.
  9. Erstellen Sie den Ziel-HTTPS-Proxy.

    Zum Erstellen eines HTTPS-Load-Balancers benötigen Sie eine SSL-Zertifikatsressource, die im HTTPS-Proxy verwendet wird. Sie können eine SSL-Zertifikatsressource entweder mit einem von Google verwalteten SSL-Zertifikat oder mit einem selbst verwalteten SSL-Zertifikat erstellen. Es empfiehlt sich, von Google verwaltete Zertifikate zu verwenden, da Google Cloud diese Zertifikate automatisch abruft, verwaltet und verlängert.

    Zum Erstellen eines von Google verwalteten Zertifikats benötigen Sie eine Domain.

    Verwenden Sie diesen Befehl, um eine von Google verwaltete SSL-Zertifikatsressource zu erstellen:

    gcloud compute ssl-certificates create CERTIFICATE \
        --domains DOMAIN --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • CERTIFICATE ist ein Name für das Zertifikat.
    • DOMAIN ist der Domainname des Load-Balancers

    Verwenden Sie diesen Befehl, um eine selbstverwaltete SSL-Zertifikatsressource zu erstellen. Zum Erstellen eines selbstverwalteten SSL-Zertifikats benötigen Sie eine lokale private Schlüsseldatei und eine lokale Zertifikatsdatei. Wenn Sie diese Dateien erstellen müssen, finden Sie weitere Informationen unter Schritt 1 der Verwendung selbstverwalteter SSL-Zertifikate.

    gcloud compute ssl-certificates create CERTIFICATE \
        --certificate LB_CERT \
        --private-key LB_PRIVATE_KEY --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • CERTIFICATE ist ein Name für das Zertifikat.
    • LB_CERT ist der Pfad zur Zertifikatsdatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.
    • LB_PRIVATE_KEY ist der Pfad zur privaten Schlüsseldatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.

    Verwenden Sie die SSL-Zertifikatsressource, um einen Ziel-HTTPS-Proxy zu erstellen.

    gcloud compute target-https-proxies create PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • PROXY_NAME ist ein Name für den Ziel-HTTPS-Proxy.
    • URL_MAP_NAME ist der Name der URL-Zuordnung.
    • CERTIFICATE ist der Name der Zertifikatsressource.
  10. Erstellen Sie die Weiterleitungsregel.
    gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=ADDRESS_NAME \
        --target-https-proxy=PROXY_NAME \
        --ports=443 \
        --global --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • FWD_RULE ist ein Name für die Weiterleitungsregel.
    • ADDRESS_NAME ist die IP-Adressressource, die Sie für die Weiterleitungsregel reserviert haben.
    • PROXY_NAME ist der Name des HTTPS-Ziel-Proxys.

Regionaler externer Load Balancer

Konfigurieren Sie einen regionalen externen HTTP(S)-Load Balancer. Weitere Informationen finden Sie unter Übersicht über externen HTTP(S)-Load Balancer.

  1. Achten Sie darauf, dass die Variablen unter Umgebungsvariablen definieren festgelegt werden.
  2. Erstellen Sie ein Nur-Proxy-Subnetz:
    gcloud compute networks subnets create SUBNET_NAME \
          --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \
          --region=$RUNTIME_LOCATION --network=NETWORK_NAME \
          --range=100.0.0.0/24 --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • SUBNET_NAME: der Name des Subnetzes.
    • (Optional) NETWORK_NAME: Name des Netzwerks, in dem das Subnetz erstellt wird. Wenn Sie diesen Parameter weglassen, wird das Standardprojektnetzwerk verwendet.
  3. Rufen Sie den Dienstanhang aus der zuvor erstellten Instanz ab:

    Kein Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Datenstandort

    curl -i -X GET -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    In der folgenden Beispielausgabe ist der Wert serviceAttachment fett dargestellt:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
    }
  4. Netzwerk-Endpunktgruppe erstellen
    gcloud compute network-endpoint-groups create NEG_NAME \
        --network-endpoint-type=private-service-connect \
        --psc-target-service=TARGET_SERVICE \
        --region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
    • TARGET_SERVICE: Der Name des Dienstanhangs, zu dem Sie eine Verbindung herstellen möchten. Beispiel: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
  5. Erstellen Sie einen neuen Backend-Dienst für die NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID
  6. Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.

  7. Fügen Sie den Backend-Dienst zur NEG hinzu.
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • BACKEND_SERVICE_NAME ist der Name des Backend-Dienstes.
    • NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
  8. Erstellen Sie eine URL-Zuordnung für den Load-Balancer.

    Eine URL-Zuordnung muss auf einen Standard-Backend-Dienst verweisen. Legen Sie den Backend-Dienst fest, den Sie gerade als Standard erstellt haben.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=DEFAULT_BACKEND_SERVICE_NAME \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • URL_MAP_NAME ist ein Name für die URL-Zuordnung.
    • DEFAULT_BACKEND_SERVICE_NAME ist der Name des Standard-Backend-Dienstes des Load-Balancers. Die Standardeinstellung wird verwendet, wenn keine Hostregel mit dem angeforderten Hostnamen übereinstimmt.
  9. Erstellen Sie den Ziel-HTTPS-Proxy.

    Zum Erstellen eines HTTPS-Load-Balancers benötigen Sie eine SSL-Zertifikatsressource, die im HTTPS-Proxy verwendet wird.

    Verwenden Sie diesen Befehl, um eine selbstverwaltete SSL-Zertifikatsressource zu erstellen. Zum Erstellen eines selbstverwalteten SSL-Zertifikats benötigen Sie eine lokale private Schlüsseldatei und eine lokale Zertifikatsdatei. Wenn Sie diese Dateien erstellen müssen, finden Sie weitere Informationen unter Schritt 1 der Verwendung selbstverwalteter SSL-Zertifikate.

    gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \
      --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • CERTIFICATE ist ein Name für das Zertifikat.
    • LB_CERT ist der Pfad zur Zertifikatsdatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.
    • LB_PRIVATE_KEY ist der Pfad zur privaten Schlüsseldatei im PEM-Format für Ihr selbstverwaltetes Zertifikat.

    Verwenden Sie die SSL-Zertifikatsressource, um einen Ziel-HTTPS-Proxy zu erstellen.

    gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \
      --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • PROXY_NAME ist ein Name für den Ziel-HTTPS-Proxy.
    • URL_MAP_NAME ist der Name der URL-Zuordnung.
    • CERTIFICATE ist der Name der Zertifikatsressource.
  10. Reservieren Sie eine regionale externe Adresse für den Load Balancer. Die Netzwerkstufe muss auf STANDARD festgelegt sein.
    gcloud compute addresses create ADDRESS_NAME \
          --region=$RUNTIME_LOCATION --network-tier=STANDARD \
          --project=$PROJECT_ID

    Ersetzen Sie ADDRESS_NAME durch einen Namen für die IP-Adressressource

    Führen Sie diesen Befehl aus, um die reservierte IP-Adresse aufzurufen:

    gcloud compute addresses describe ADDRESS_NAME \
          --format="get(address)" --region=$RUNTIME_LOCATION \
          --project=$PROJECT_ID
  11. Erstellen Sie die Weiterleitungsregel.
    gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=STANDARD \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443  --region=$RUNTIME_LOCATION \
      --target-https-proxy-region=$RUNTIME_LOCATION --project=$PROJECT_ID

    Ersetzen Sie Folgendes:

    • FWD_RULE ist ein Name für die Weiterleitungsregel.
    • ADDRESS_NAME ist die IP-Adressressource, die Sie für die Weiterleitungsregel reserviert haben.
    • PROXY_NAME ist der Name des HTTPS-Ziel-Proxys.

Die Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.

Schritt 8: Beispielproxy bereitstellen

  1. Laden Sie den Beispielproxy von GitHub herunter. Das Ziel des Proxys ist der Dienst httpbin.org, der ein gängiger, öffentlicher Anfrage- und Antwortdienst ist.
  2. Laden Sie das API-Proxy-Bundle mit der Apigee API apis in die Laufzeit hoch:

    Kein Datenstandort

    curl -i -X POST -H "Authorization: Bearer $AUTH" \
        -H "Content-Type:multipart/form-data" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \
        -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'

    Datenstandort

    curl -i -X POST -H "Authorization: Bearer $AUTH" \
        -H "Content-Type:multipart/form-data" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \
        -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'

    Dabei ist PATH_TO_ZIP_FILE der Pfad zum Verzeichnis mit der heruntergeladenen ZIP-Datei.

  3. Stellen Sie den API-Proxy in der zuvor erstellten Umgebung bereit:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" -X POST \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" -X POST \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"
  4. Prüfen Sie mit diesem API-Aufruf, ob die Bereitstellung erfolgreich abgeschlossen wurde:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"
  5. Den API-Proxy aufrufen

    Senden Sie von jeder netzwerkfähigen Maschine aus eine Anfrage an den API-Proxy, indem Sie den folgenden Befehl ausführen:

    curl -i -H "Host: ENV_GROUP_HOSTNAME" \
        "https://ENV_GROUP_HOSTNAME/httpbin/headers"

    Bei Bedarf können Sie mit dieser API den Wert ENV_GROUP_HOSTNAME abrufen:

    Kein Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"

    Datenstandort

    curl -i -H "Authorization: Bearer $AUTH" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"

    Wenn Sie einen Fehler wie diesen erhalten: CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure, prüfen Sie, ob das zuvor erstellte SSL-Zertifikat bereitgestellt wurde. Verwenden Sie diesen Befehl, um den Bereitstellungsstatus zu prüfen. Wenn das Zertifikat bereitgestellt wird, ist der Status ACTIVE.

    gcloud compute ssl-certificates describe CERTIFICATE \
        --global \
        --format="get(name,managed.status, managed.Status)"

    Bei Erfolg gibt der Beispiel-API-Proxy eine Antwort ähnlich der folgenden zurück:

    {
        "headers": {
          "Accept": "*/*",
          "Grpc-Trace-Bin": "AAD/8WC/I4AUSrMEch0E9yj+AYck1x9afwckAgA",
          "Host": "httpbin.org",
          "Traceparent": "00-fff160bf2380144ab304721d04f728fe-8724d71f5a7f0724-00",
          "User-Agent": "curl/7.77.0",
          "X-Amzn-Trace-Id": "Root=1-61d785ef-7613aa8a7fde7a910441fab9",
          "X-B3-Sampled": "0",
          "X-B3-Spanid": "8724d71f5a7f0724",
          "X-B3-Traceid": "fff160bf2380144ab304721d04f728fe",
          "X-Cloud-Trace-Context": "fff160bf2380144ab304721d04f728fe/9738144823944087332;o=0",
          "X-Envoy-Attempt-Count": "1"
        }
    }

Weitere Informationen zum Bereitstellen von Proxys und zusätzliche Informationen zur Fehlerbehebung finden Sie unter API-Proxy bereitstellen.