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:
- VPC Service Controls werden nicht unterstützt.
- Privates DNS-Peering wird nicht unterstützt.
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. Die Google Cloud CLI verwaltet Authentifizierung, lokale Konfiguration, Entwickler-Workflow und Interaktionen mit den Google Cloud APIs. - Schritt 2: APIs aktivieren: Für Apigee müssen Sie mehrere Google Cloud APIs aktivieren.
- Schritt 3: Apigee-Dienstidentität erstellen: Dieses Dienstkonto wird von den Google Cloud-Clientbibliotheken zur Authentifizierung bei Google Cloud APIs verwendet.
- Schritt 4: Organisation erstellen: Eine Apigee-Organisation (manchmal auch als Org bezeichnet) ist der oberste Container in Apigee. Sie enthält alle Umgebungen und Umgebungsgruppen, Nutzer, API-Proxys und zugehörigen Ressourcen.
- Schritt 5: Laufzeitinstanz erstellen: Eine Instanz oder Laufzeit, in der Ihr Projekt und die zugehörigen Dienste gespeichert sind. Er stellt den nutzerseitigen Endpunkt für Ihre Dienste bereit.
- Schritt 6: Umgebung erstellen: Ein API-Proxy muss in einer Umgebung bereitgestellt und einer Umgebungsgruppe hinzugefügt werden, bevor die APIs über das Netzwerk zugänglich sind.
- Schritt 7: Routing konfigurieren: Erlauben Sie den externen Zugriff oder den internen Zugriff auf Ihre API.
- Schritt 8: Beispielproxy bereitstellen: Testen Sie die Bereitstellung. Stellen Sie dazu einen API-Proxy bereit und rufen Sie ihn auf.
Schritt 1: Umgebungsvariablen definieren
Richten Sie gcloud
ein und definieren Sie Umgebungsvariablen zur Verwendung in späteren Schritten:
- Prüfen Sie, ob die unter Vorbereitung aufgeführten Einrichtungsanforderungen erfüllt sind.
- Das Cloud SDK muss installiert sein. Weitere Informationen zur Installation finden Sie unter Cloud SDK installieren.
- 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. - 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"
Dabei gilt:
-
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:
PAYG
für Pay-as-you-go.SUBSCRIPTION
für Abo-Organisationen.
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"
Dabei gilt:
-
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:
PAYG
für Pay-as-you-go.SUBSCRIPTION
für Abo-Organisationen.
-
AUTH definiert den Header
- (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
-
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
(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
-
Erstellen Sie die Apigee-Dienstidentität:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID
Ü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.
-
Erstellen Sie einen Schlüsselbund und Schlüssel für die Verschlüsselung der Laufzeitdatenbank:
-
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.
Beispiele:
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.
us
odereurope
) oder einen dual-regionalen Standort aus.Beispiele:
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 andernfallsnam4
. - 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
- (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
- 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.
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
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
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.
-
- 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.
- 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
Dabei gilt:
- 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.
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
Dabei gilt:
- 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.
- 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
- 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
- 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
- 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.
-
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"'" }'
Dabei gilt:
-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 aufCLOUD
.billingType
: Gibt den Abrechnungstyp der erstellten Organisation an.disableVpcPeering
: Setzen Sie diese Option auftrue
, 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"'" }'
Dabei gilt:
-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 aufCLOUD
.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 auftrue
, 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", ... }'
- Warten Sie ein paar Minuten.
- 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.
Führen Sie die folgenden Schritte aus, um einen Schlüsselbund und einen Schlüssel der Steuerungsebene zu erstellen.
Weitere Informationen finden Sie unter CMEK-Fehlerbehebung.
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:
-
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.
- Ä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
- 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.
- Laufwerkverschlüsselungsschlüssel erstellen:
- 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.
- 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
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
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.
- Erstellen Sie einen neuen Laufwerkschlüsselbund:
- 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.
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"
Dabei gilt:
Schritt 6: Umgebung erstellen
So erstellen Sie eine Umgebung und hängen sie der Laufzeit über die Befehlszeile an:
- 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"
Dabei gilt:
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"
Dabei gilt:
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. Diese müssen einen der folgenden Werte angeben:BASE
,INTERMEDIATE
oderCOMPREHENSIVE
. 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
- 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.
- 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" ]
- 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" } ] }
- 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"'"] }'
- 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"
- 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"'" }'
- 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
- 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" } ] }
- 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.
- 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"
Dabei gilt:
- 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
- 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" } ] }
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
- 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
- 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
- Fügen Sie dem Backend-Dienst die NEG hinzu:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=$NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Ersetzen Sie dabei Folgendes:
- NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
- BACKEND_SERVICE_NAME ist der Name des Backend-Dienstes.
-
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 dabei 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.
-
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_REGION \ --project=$PROJECT_ID
Ersetzen Sie dabei 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.
-
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 dabei 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.
- 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 \ --network=$NETWORK_NAME \ --subnet=$SUBNET_NAME
Ersetzen Sie dabei 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.
- 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 Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.
Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.
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.
- Achten Sie darauf, dass die Umgebungsvariablen unter Umgebungsvariablen definieren festgelegt sind.
- 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" } ] }
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 dabei 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.
- 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
- 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
- Fügen Sie dem Backend-Dienst die 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 dabei 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.
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 dabei 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.
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 dabei 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 dabei 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 dabei 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.
- 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 dabei 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.
Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.
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.
- Achten Sie darauf, dass die Variablen unter Umgebungsvariablen definieren festgelegt werden.
- 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 dabei 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.
- 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" } ] }
- 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 dabei 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
- 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
- Fügen Sie dem Backend-Dienst die NEG hinzu:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Ersetzen Sie dabei Folgendes:
- BACKEND_SERVICE_NAME ist der Name des Backend-Dienstes.
- NEG_NAME ist der Name der Netzwerk-Endpunktgruppe.
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 dabei 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.
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 dabei 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 dabei 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.
- 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
- 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 dabei 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.
Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen des Backend-Dienstes.
Die Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.
Schritt 8: Beispielproxy bereitstellen
- 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.
- 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.
- 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"
- 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"
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 StatusACTIVE
.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.