Sie sehen sich die Dokumentation zu Apigee Edge an.
Rufen Sie die Dokumentation zu Apigee X auf. Weitere Informationen
In diesem Beispiel wird gezeigt, wie Sie den Apigee-Adapter für Envoy mit Apigee Edge verwenden.
Vorbereitung
Hinweise: |
---|
Übersicht
In diesem Beispiel wird erläutert, wie Sie den Apigee-Adapter für Envoy mit Apigee Edge for Public Cloud verwenden. API-Proxyaufrufe werden über Envoy als native Anwendung geleitet. Edge stellt API-Verwaltungsdienste über den Apigee Remote Service for Envoy bereit.
Apigee Edge bereitstellen
In diesem Schritt verwenden Sie die Remote Service-Befehlszeile, um Apigee Adapter for Envoy-Assets in Apigee Edge bereitzustellen. Der Bereitstellungsbefehl stellt einen API-Proxy in Apigee Edge bereit, richtet ein Zertifikat in Apigee ein und generiert Anmeldedaten, die der Remotedienst verwendet, um eine sichere Verbindung von Ihrem System zu Apigee herzustellen.
- Wechseln Sie in das Verzeichnis
$CLI_HOME
:cd $CLI_HOME
- Erstellen Sie die folgenden Umgebungsvariablen. Diese Variablen werden als Parameter für das Bereitstellungsskript verwendet:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
Dabei gilt:
Variable Beschreibung organization_name Der Name Ihrer Apigee-Organisation. environment_name Der Name einer Umgebung in Ihrer Organisation. your_apigee_username Der Nutzername Ihres Apigee-Kontos. In der Regel ist der Nutzername eine E-Mail-Adresse. your_apigee_password Ihr Apigee-Passwort. - Führen Sie den folgenden Befehl aus, um den Remote-Dienstproxy auf Apigee Edge bereitzustellen:
Wenn Sie kein Upgrade durchführen, können Sie Apigee mit dem folgenden Befehl bereitstellen:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Wenn Sie ein Upgrade durchführen, verwenden Sie den folgenden Befehl mit dem Flag
--force-proxy-install
, um Apigee bereitzustellen:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- Prüfen Sie den Inhalt der Datei
config.yaml
. Sie sollte in etwa so aussehen:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
Die Schlüssel- und Secret-Werte werden verwendet, um die Anfragen vom Remote-Dienst-Proxy an Apigee Edge zu validieren.
Apigee Remote Service for Envoy-Dienst ausführen
Sie können den Remotedienst entweder als natives Binärprogramm oder in Docker ausführen.
Dienst nativ ausführen
Führen Sie die Dienstbinärdatei mit der Konfigurationsdatei aus, die vom Bereitstellungsbefehl ausgegeben wurde:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Dienst in Docker ausführen
Docker-Images werden mit Release-Tags veröffentlicht. Verwenden Sie für diese Installation die neueste Version. Es stehen drei Image-Varianten zur Auswahl:
Variante | Image |
---|---|
Google Distroless | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu mit Boring Crypto | google/apigee-envoy-adapter:v2.0.0-boring |
Verwenden Sie beispielsweise den folgenden Befehl, um das Scratch-Image mit Ihrer lokalen config.yaml
, verfügbar als /config.yaml
über eine Volume-Bereitstellung, auszuführen:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
Beispielkonfigurationsdateien erstellen
Generieren Sie eine Envoy-Konfigurationsdatei über die Befehlszeile:
- Sie müssen sich im Verzeichnis
$ENVOY_HOME
befinden. - Listen Sie die verfügbaren Konfigurationsvorlagen auf:
$CLI_HOME/apigee-remote-service-cli samples templates
Führen Sie den Befehl "samples" aus. Ersetzen Sie TEMPLATE durch eine der unterstützten Envoy-Vorlagen:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
Der Befehl erstellt die Datei
./samples/envoy-config.yaml
.
Weitere Informationen finden Sie unter Befehl „Beispiele“.
Envoy-Proxy installieren und ausführen
Führen Sie die folgenden Schritte aus, um den Envoy-Proxy zu installieren und auszuführen:
- Laden Sie eine Envoy-Binärdatei herunter, erstellen Sie sie oder verwenden Sie Docker.
- Führen Sie Envoy mit einer Beispielkonfigurationsdatei aus, die Sie zuvor für den Dienst
httpbin.org
generiert haben:envoy -c ./samples/envoy-config.yaml
Installation testen
- Konfigurieren Sie ein API-Produkt und rufen Sie einen API-Schlüssel ab, wie unter API-Schlüssel abrufen erläutert.
- Rufen Sie den Dienst
httpbin
ohne API-Schlüssel auf:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Der Dienst wird jetzt von Apigee verwaltet. Da Sie keinen API-Schlüssel angegeben haben, wird der folgende Fehler zurückgegeben.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- Führe einen API-Aufruf mit dem Schlüssel aus:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"
Der Aufruf sollte erfolgreich mit Status 200 funktionieren und eine Liste der Header in der Antwort zurückgeben. Beispiel:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Tipp
Der API-Traffic zum Dienst httpbin
wird jetzt von Apigee verwaltet. Hier sind einige Funktionen, die Sie entdecken und versuchen können:
- Wenn Sie Ihr API-Produkt wie unter API-Schlüssel abrufen beschrieben konfiguriert haben, wurde das Kontingentlimit auf 5 Anfragen pro Minute festgelegt. Rufen Sie den Dienst
httpbin
noch einmal auf, um das Kontingent auszulösen. Wenn das Kontingent aufgebraucht ist, wird der HTTP-Statusfehler 403 zurückgegeben. - Greifen Sie über die Edge-Benutzeroberfläche auf Apigee Analytics zu. Rufen Sie Analysieren > API-Messwerte > API-Proxy-Leistung auf.
- Generieren und verwenden Sie JWT-Tokens zur Authentifizierung von API-Aufrufen.
- Verwenden Sie die Kommandozeile zum Verwalten und Erstellen von Tokens und zum Steuern von Bindungen. Details zur Befehlszeile finden Sie in der Referenz.