<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Edge Microgateway Version 3.1.x
In diesem Thema wird erläutert, wie Sie Edge Microgateway verwalten und konfigurieren.
Edge Microgateway aktualisieren, wenn Sie eine Internetverbindung haben
In diesem Abschnitt wird erläutert, wie Sie eine vorhandene Installation von Edge Microgateway aktualisieren. Falls Sie ohne Internetverbindung arbeiten, lesen Sie Kann ich Edge Microgateway ohne Internetverbindung installieren?
Apigee empfiehlt, Ihre vorhandene Konfiguration mit die neue Version vor dem Upgrade der Produktionsumgebung.
- Führen Sie den folgenden
npm
-Befehl aus, um ein Upgrade auf die neueste Version von Edge durchzuführen Microgateway:npm upgrade edgemicro -g
Für ein Upgrade auf eine bestimmte Version von Edge Microgateway müssen Sie die Version Nummer im Upgrade-Befehl ein. Wenn Sie keine Versionsnummer angeben, wird die neueste Version installiert. Wenn Sie beispielsweise ein Upgrade auf Version 3.1.0 durchführen möchten, verwenden Sie die Methode folgenden Befehl:
npm upgrade edgemicro@3.1.0 -g
- Prüfen Sie die Versionsnummer. Wenn Sie beispielsweise Version 3.1.0 installiert haben:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.1.0
- Führen Sie abschließend ein Upgrade auf die neueste Version des Proxys edgemicro-auth durch:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
Konfigurationsänderungen vornehmen
Zu den Konfigurationsdateien, die Sie kennen sollten, gehören:
- Standardsystemkonfigurationsdatei
- Standardkonfigurationsdatei für eine neu initialisierte Edge Microgateway-Instanz
- Dynamische Konfigurationsdatei für ausgeführte Instanzen
In diesem Abschnitt werden diese Dateien erläutert und Sie erfahren, was Sie wissen müssen, wenn Sie sie ändern.
Standardsystemkonfiguration Datei
Wenn Sie Edge Microgateway installieren, wird hier eine Standardsystemkonfigurationsdatei abgelegt:
prefix/lib/node_modules/edgemicro/config/default.yaml
Dabei ist prefix das Präfixverzeichnis npm
. Weitere Informationen finden Sie unter .
Wo ist Edge Microgateway installiert, wenn Sie dieses Verzeichnis nicht finden können.
Wenn Sie die Systemkonfigurationsdatei ändern, müssen Sie Edge neu initialisieren, neu konfigurieren und neu starten Microgateway:
edgemicro initedgemicro configure [params]
edgemicro start [params]
Standardkonfigurationsdatei für neu initialisierte Edge Microgateway-Instanzen
Wenn Sie edgemicro init
ausführen, ist die Systemkonfigurationsdatei
oben), default.yaml
, im Verzeichnis ~/.edgemicro
platziert.
Wenn Sie die Konfigurationsdatei in ~/.edgemicro
ändern, müssen Sie sie neu konfigurieren und neu starten
Edge Microgateway:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
Dynamisch Konfigurationsdatei für ausgeführte Instanzen
Wenn Sie edgemicro configure [params]
ausführen, wird eine dynamische
Konfigurationsdatei wird in ~/.edgemicro
erstellt. Der Name der Datei lautet
Muster: org-env-config.yaml
, wobei org und
env sind
Ihre Apigee Edge-Organisation und Ihre Umgebungsnamen. Sie können diese Datei zur Konfiguration
und sie anschließend ohne Ausfallzeit neu laden. Wenn Sie beispielsweise ein Plug-in hinzufügen und konfigurieren,
können Sie die Konfiguration aktualisieren, ohne dass es zu Ausfallzeiten kommt, wie unten erläutert.
Wenn Edge Microgateway ausgeführt wird (Option ohne Ausfallzeiten):
- Aktualisieren Sie die Edge Microgateway-Konfiguration:
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
Wobei:
- $ORG ist der Name Ihrer Edge-Organisation (Sie müssen eine Organisation sein) Administrator).
- $ENV ist eine Umgebung in Ihrer Organisation, z. B. „test“ oder „prod“).
- $KEY ist der zuvor vom Befehl „configure“ zurückgegebene Schlüssel.
- $SECRET ist der zuvor vom Befehl „configure“ zurückgegebene Schlüssel.
Beispiel:
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
Wenn Edge Microgateway beendet ist:
- Starten Sie Edge Microgateway neu:
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
Wobei:
- $ORG ist der Name Ihrer Edge-Organisation (Sie müssen eine Organisation sein) Administrator).
- $ENV ist eine Umgebung in Ihrer Organisation, z. B. „test“ oder „prod“).
- $KEY ist der zuvor vom Befehl „configure“ zurückgegebene Schlüssel.
- $SECRET ist der zuvor vom Befehl „configure“ zurückgegebene Schlüssel.
Beispiel:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
Hier ist eine Beispielkonfigurationsdatei. Weitere Informationen zu den Einstellungen von Konfigurationsdateien finden Sie in der Konfigurationsreferenz für Edge Microgateway.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
Umgebungsvariablen festlegen
Die Befehlszeilenbefehle, die Werte für Ihre Edge-Organisation und und der Schlüssel und das Secret, die zum Starten von Edge Microgateway erforderlich sind, in diesen Umgebungsvariablen:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
Das Festlegen dieser Variablen ist optional. Wenn Sie diese festlegen, müssen Sie ihre Werte nicht angeben. wenn Sie Edge Microgateway über die Befehlszeile konfigurieren und starten.
SSL auf dem Edge Microgateway konfigurieren Server
In den folgenden Videos erfahren Sie, wie Sie TLS in Apigee Edge Microgateway konfigurieren:
Video | Beschreibung |
---|---|
1-Wege-TLS nach Norden konfigurieren | Informationen zum Konfigurieren von TLS in Apigee Edge Microgateway. Dieses Video bietet einen Überblick über TLS und seine Bedeutung sowie eine Einführung in TLS. in Edge Microgateway und zeigt, wie Northbound One-Way TLS konfiguriert wird. |
Zwei-Wege-TLS mit Nordausrichtung konfigurieren | Dies ist das zweite Video zum Konfigurieren von TLS in Apigee Edge Microgateway. Dieses erfahren Sie, wie Sie eine 2-Wege-TLS-Verbindung nach Norden konfigurieren. |
Ein- und Zwei-Wege-TLS mit Südausrichtung konfigurieren | In diesem dritten Video zum Konfigurieren von TLS in Apigee Edge Microgateway erfahren Sie, wie Sie das 1- und 2-Wege-TLS konfigurieren. |
Sie können den Microgateway-Server für die Verwendung von SSL konfigurieren. Wenn SSL beispielsweise konfiguriert ist, kann APIs über Edge Microgateway mit dem wie hier gezeigt:
https://localhost:8000/myapi
So konfigurieren Sie SSL auf dem Microgateway-Server:
- Generieren oder erhalten Sie ein SSL-Zertifikat und den Schlüssel mit dem Dienstprogramm openssl oder einer anderen Methode.
- Fügen Sie der Edge Microgateway-Konfigurationsdatei das Attribut
edgemicro:ssl
hinzu. Eine vollständige finden Sie in der Tabelle unten. Beispiel:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- Starten Sie Edge Microgateway neu. Befolgen Sie die Schritte in Konfigurationsänderungen vornehmen, je nachdem, Konfigurationsdatei, die Sie bearbeitet haben: die Standarddatei oder die Laufzeit-Konfigurationsdatei.
Hier sehen Sie ein Beispiel für den Abschnitt edgemicro
der Konfigurationsdatei mit SSL
konfiguriert:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
Im Folgenden finden Sie eine Liste aller unterstützten Serveroptionen:
Option | Beschreibung |
---|---|
key |
Pfad zu einer ca.key -Datei im PEM-Format. |
cert |
Pfad zu einer ca.cert -Datei im PEM-Format. |
pfx |
Pfad zu einer pfx -Datei, die den privaten Schlüssel, das Zertifikat und die CA-Zertifikate enthält
des Clients im PFX-Format. |
passphrase |
Ein String mit der Passphrase für den privaten Schlüssel oder PFX. |
ca |
Pfad zu einer Datei, die eine Liste vertrauenswürdiger Zertifikate im PEM-Format enthält. |
ciphers |
Ein String, der die zu verwendenden Chiffren beschreibt, getrennt durch ":". |
rejectUnauthorized |
Falls wahr, wird das Serverzertifikat mit der Liste der bereitgestellten Zertifizierungsstellen abgeglichen. Wenn die Bestätigung fehlschlägt, wird ein Fehler zurückgegeben. |
secureProtocol |
Die zu verwendende SSL-Methode. Beispielsweise SSLv3_method, um SSL auf Version 3 zu erzwingen. |
servername |
Servername für die TLS-Erweiterung SNI (Server Name Indication). |
requestCert |
"true" für Zwei-Wege-SSL; "false" für 1-Wege-SSL |
Client-SSL/TLS-Optionen verwenden
Sie können Edge Microgateway beim Herstellen einer Verbindung zum Ziel als TLS- oder SSL-Client konfigurieren Endpunkten. Verwenden Sie in der Microgateway-Konfigurationsdatei das Element "targets", um SSL/TLS festzulegen. Optionen.
Dieses Beispiel enthält Einstellungen, die auf alle Hosts angewendet werden:
edgemicro: ... targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
In diesem Beispiel werden die Einstellungen nur auf den angegebenen Host angewendet:
edgemicro: ... targets: - host: 'myserver.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
Hier ist ein Beispiel für TLS:
edgemicro: ... targets: - host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
Hier ist eine Liste aller unterstützten Clientoptionen:
Option | Beschreibung |
---|---|
pfx |
Pfad zu einer pfx -Datei, die den privaten Schlüssel, das Zertifikat und die CA-Zertifikate enthält
des Clients im PFX-Format. |
key |
Pfad zu einer ca.key -Datei im PEM-Format. |
passphrase |
Ein String mit der Passphrase für den privaten Schlüssel oder PFX. |
cert |
Pfad zu einer ca.cert -Datei im PEM-Format. |
ca |
Pfad zu einer Datei, die eine Liste vertrauenswürdiger Zertifikate im PEM-Format enthält. |
ciphers |
Ein String, der die zu verwendenden Chiffren beschreibt, getrennt durch ":". |
rejectUnauthorized |
Falls wahr, wird das Serverzertifikat mit der Liste der bereitgestellten Zertifizierungsstellen abgeglichen. Wenn die Bestätigung fehlschlägt, wird ein Fehler zurückgegeben. |
secureProtocol |
Die zu verwendende SSL-Methode. Beispielsweise SSLv3_method, um SSL auf Version 3 zu erzwingen. |
servername |
Servername für die TLS-Erweiterung SNI (Server Name Indication). |
Edgemicro-auth-Proxy anpassen
Standardmäßig verwendet Edge Microgateway für die OAuth2-Authentifizierung einen Proxy, der auf Apigee Edge bereitgestellt ist.
Dieser Proxy wird bereitgestellt, wenn Sie edgemicro configure
zum ersten Mal ausführen. Sie können
Die Standardkonfiguration dieses Proxys, um Unterstützung für benutzerdefinierte Anforderungen an ein JSON Web Token hinzuzufügen
(JWT), konfigurieren den Ablauf von Tokens und generieren Aktualisierungstokens. Weitere Informationen finden Sie auf der Seite edgemicro-auth in GitHub.
Benutzerdefinierten Authentifizierungsdienst verwenden
Standardmäßig verwendet Edge Microgateway für die OAuth2-Authentifizierung einen Proxy, der auf Apigee Edge bereitgestellt ist.
Dieser Proxy wird bereitgestellt, wenn Sie edgemicro configure
zum ersten Mal ausführen. Standardmäßig
Die URL des Proxys wird in der Edge Microgateway-Konfigurationsdatei so angegeben:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
Wenn Sie Ihren eigenen benutzerdefinierten Dienst für die Authentifizierung verwenden möchten, ändern Sie den
authUri
-Wert in der Konfigurationsdatei, um auf Ihren Dienst zu verweisen. Zum Beispiel haben Sie möglicherweise
ein Dienst, der LDAP zur Identitätsüberprüfung verwendet.
Protokolldateien verwalten
Edge Microgateway protokolliert Informationen über jede Anfrage und Antwort. Protokolldateien bieten nützliche Informationen zur Fehlerbehebung.
Wo werden Protokolldateien gespeichert?
Standardmäßig werden Protokolldateien in /var/tmp
gespeichert.
So ändern Sie das Standardprotokoll Dateiverzeichnis
Das Verzeichnis, in dem die Protokolldateien gespeichert sind, wird in der Edge Microgateway-Konfiguration angegeben -Datei. Siehe auch Konfiguration vornehmen Änderungen.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Ändern Sie den Wert dir, um ein anderes Protokolldateiverzeichnis anzugeben.
Protokolle an die Konsole senden
Sie können das Logging so konfigurieren, dass Loginformationen an die Standardausgabe und nicht an eine
Protokolldatei. Legen Sie das Flag to_console
so auf „true“ fest:
edgemicro: logging: to_console: true
Bei dieser Einstellung werden Logs an den Standard-Ausgang gesendet. Derzeit können Sie Logs nicht an beide senden stdout und in eine Protokolldatei.
Logging-Ebene festlegen
Sie können die Protokollebenen info, warn und error Die Informationsebene wird empfohlen. Es protokolliert alle API-Anfragen und -Antworten, Dies ist die Standardeinstellung.
Protokollintervalle ändern
Sie können diese Intervalle in der Edge Microgateway-Konfigurationsdatei konfigurieren. Weitere Informationen finden Sie unter Konfigurationsänderungen vornehmen.
Folgende konfigurierbare Attribute sind verfügbar:
- stats_log_interval: (Standard: 60) Intervall in Sekunden, wenn die Statistiken wird in die API-Protokolldatei geschrieben.
- rotate_interval: (Standard: 24) Intervall in Stunden, in dem die Protokolldateien gespeichert werden gedreht. Beispiel:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Gute Vorgehensweisen bei der Wartung von Logdateien
Da sich Protokolldatei-Daten im Laufe der Zeit ansammeln, empfiehlt Apigee die folgende Vorgehensweise: Best Practices:
- Da Protokolldateien sehr groß werden können, sollten Sie sicherstellen, dass das Protokolldateiverzeichnis ausreichend Speicherplatz. Weitere Informationen finden Sie in den folgenden Abschnitten Speicherort der Protokolldateien und So ändern Sie die Standardprotokolldatei. -Verzeichnis.
- Löschen oder verschieben Sie Protokolldateien mindestens einmal pro Woche in ein separates Archivverzeichnis.
- Wenn Sie Logs löschen möchten, können Sie den Befehl
edgemicro log -c
über die Befehlszeile verwenden. um ältere Logs zu entfernen (bereinigt).
Namenskonvention für Protokolldateien
Jede Edge Microgateway-Instanz erzeugt drei Typen von Protokolldateien:
- api - Protokolliert alle Anfragen und Antworten, die über Edge fließen. Microgateway. API-Zähler (Statistiken) und -Fehler werden ebenfalls in dieser Datei protokolliert.
- err – Protokolliert alles, was an stderr gesendet wurde.
- out – Protokolliert alles, was an stdout gesendet wurde.
Dies ist die Namenskonvention:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
Beispiel:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
Inhalt der Protokolldatei
Hinzugefügt in: v2.3.3
Standardmäßig lässt der Logging-Dienst die JSON-Daten heruntergeladener Proxys, Produkte und JSON-Dateien weg.
Webtoken (JWT). Wenn Sie diese Objekte an die Protokolldateien ausgeben möchten, legen Sie den Parameter
DEBUG=*
, wenn Sie Edge Microgateway starten. Beispiel:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
Inhalt von „api“ Protokolldatei
Die API Protokolldatei enthält detaillierte Informationen zum Fluss von Anfragen und Antworten. über Edge Microgateway. Die API Protokolldateien haben den folgenden Namen:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Für jede Anfrage an Edge Microgateway werden vier Ereignisse in der „API“ erfasst Protokoll Datei:
- Eingehende Anfrage vom Client
- Ausgehende Anfrage an das Ziel
- Eingehende Antwort des Ziels
- Ausgehende Antwort an den Client
Jeder dieser Einträge wird in Kurzschreibweise dargestellt, damit das Protokoll Dateien kompakter sein. Hier sind vier Beispieleinträge, die jedes der vier Ereignisse darstellen. Im Protokoll Datei sehen, sehen sie so aus (die Zeilennummern dienen nur als Referenz im Dokument, sie werden nicht in der Protokolldatei).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
Sehen wir sie uns im Einzelnen an:
1. Beispiel für eine eingehende Anfrage vom Client:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Das können Informationen, Warnungen oder Fehler sein. abhängig von der Logebene. Dies können Statistiken für einen Statistikeintrag sein, Warnungen bei Warnungen oder für Fehler.
- req: Kennzeichnet das Ereignis. In diesem Fall muss die Anfrage vom Client.
- m – Das in der Anfrage verwendete HTTP-Verb.
- u – Der Teil der URL nach dem Basispfad.
- h – Die Host- und Portnummer für das Edge Microgateway. Zuhören.
- r – Remote-Host und Port, an den der Client anfordert entstand.
- i – Die Anfrage-ID. Alle vier Ereigniseinträge haben dieselbe ID. Jedes -Anfrage eine eindeutige Anfrage-ID zugewiesen. Das Korrelieren von Protokolleinträgen nach Anfrage-ID kann wertvolle Einblicke in die Latenz des Ziels.
- d – Dauer in Millisekunden seit dem Empfang der Anfrage durch Edge Microgateway. Im obigen Beispiel ist die Antwort des Ziels auf Anfrage 0 eingegangen nach 7 Millisekunden (Zeile 3) und die Antwort wurde nach weiteren 4 Millisekunden (Zeile 4). Mit anderen Worten, die gesamte Anfragelatenz betrug 11 Millisekunden, welche 7 Millisekunden vom Ziel und 4 Millisekunden vom Edge Microgateway erfasst wurden selbst.
2. Beispiel einer ausgehenden Anfrage an das Ziel:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Das können Informationen, Warnungen oder Fehler sein. abhängig von der Logebene. Dies können Statistiken für einen Statistikeintrag sein, Warnungen bei Warnungen oder für Fehler.
- treq: Kennzeichnet das Ereignis. In diesem Fall ist dies die Zielanfrage.
- m – HTTP-Verb, das in der Zielanfrage verwendet wird.
- u – Der Teil der URL nach dem Basispfad.
- h – Host und Portnummer des Back-End-Ziels.
- i – Die ID des Logeintrags. Diese wird für alle vier Veranstaltungseinträge freigegeben. ID.
3. Beispiel einer eingehenden Antwort des Ziels
1436403888672 info tres s=200, d=7, i=0
1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Das können Informationen, Warnungen oder Fehler sein. abhängig von der Logebene. Dies können Statistiken für einen Statistikeintrag sein, Warnungen bei Warnungen oder für Fehler.
- tres: Kennzeichnet das Ereignis. in diesem Fall die Zielantwort.
- s – HTTP-Antwortstatus.
- d – Dauer in Millisekunden Die für den API-Aufruf vom das Ziel zu erreichen.
- i – Die ID des Logeintrags. Diese wird für alle vier Veranstaltungseinträge freigegeben. ID.
4. Beispiel für eine ausgehende Antwort an den Kunden
1436403888676 info res s=200, d=11, i=0
1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Das können Informationen, Warnungen oder Fehler sein. abhängig von der Logebene. Dies können Statistiken für einen Statistikeintrag sein, Warnungen bei Warnungen oder für Fehler.
- res: Kennzeichnet das Ereignis. In diesem Fall wird die Antwort auf die Client.
- s – HTTP-Antwortstatus.
- d – Dauer in Millisekunden Dies ist die Gesamtzeit, die durch den API-Aufruf, einschließlich der von der Ziel-API verbrauchten Zeit und der von Edge benötigten Zeit Microgateway selbst.
- i – Die ID des Logeintrags. Diese wird für alle vier Veranstaltungseinträge freigegeben. ID.
Zeitplan für Logdateien
Die Protokolldateien werden in dem durch rotate_interval angegebenen Intervall rotiert. Konfigurationsattribut. Die Einträge werden weiterhin dem bis das Rotationsintervall abläuft. Jedes Mal, wenn Edge Microgateway erhält er eine neue UID und erstellt einen neuen Satz von Protokolldateien mit dieser UID. Siehe auch Gute Pflege der Protokolldateien .
Fehlermeldungen
Einige Logeinträge enthalten Fehlermeldungen. Um zu ermitteln, wo und warum die Fehler auftreten, sehen Sie sich den Edge Microgateway-Fehler Referenz.
Edge Microgateway-Konfigurationsreferenz
Standort des Konfigurationsdatei
Die in diesem Abschnitt beschriebenen Konfigurationsattribute befinden sich im Edge Microgateway. Konfigurationsdatei. Siehe auch Konfiguration vornehmen Änderungen.
Edge_config-Attribute
Mit diesen Einstellungen wird die Interaktion zwischen der Edge Microgateway-Instanz und Apigee Edge
- bootstrap: (Standardeinstellung: keine) Eine URL, die auf einen Edge verweist.
Microgateway-spezifischer Dienst, der auf Apigee Edge ausgeführt wird. Edge Microgateway verwendet diesen Dienst, um
mit Apigee Edge kommunizieren können. Diese URL wird zurückgegeben, wenn Sie den Befehl zum Generieren des
Paar aus öffentlichem/privatem Schlüssel:
edgemicro genkeys
. Weitere Informationen finden Sie im Abschnitt Einrichtung und Edge Microgateway konfigurieren. - jwt_public_key: (Standardeinstellung: none) Eine URL, die auf das Edge Microgateway verweist Proxy, der in Apigee Edge bereitgestellt wird. Dieser Proxy dient als Authentifizierungsendpunkt für Ausstellen signierter Zugriffstokens an Clients Diese URL wird zurückgegeben, wenn Sie den Befehl für Stellen Sie den Proxy edgemicro configure bereit. Weitere Informationen finden Sie im Abschnitt Einrichtung und Edge Microgateway konfigurieren.
- quotaUri: Diese Konfiguration festlegen
Property, wenn Sie Kontingente über den
edgemicro-auth
-Proxy verwalten möchten, der die in Ihrer Organisation bereitgestellt wurden. Wenn diese Eigenschaft nicht festgelegt ist, ist der Kontingentendpunkt standardmäßig der interne Edge Microgateway-Endpunkt.edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
Edgemicro-Attribute
Mit diesen Einstellungen wird der Edge Microgateway-Prozess konfiguriert.
- port: (Standard: 8000) Die Portnummer, auf der das Edge Microgateway verwendet wird. Prozessüberwachung.
- max_connections: (Standard: -1) Gibt die maximale Anzahl von Verbindungen an
gleichzeitig eingehende Verbindungen, die Edge Microgateway empfangen kann. Wenn diese Nummer gleich
wird der folgende Status zurückgegeben:
res.statusCode = 429; // Too many requests
- max_connections_hard: (Standard: -1) Die maximale Anzahl gleichzeitiger Verbindungen. Anforderungen, die Edge Microgateway empfangen kann, bevor die Verbindung unterbrochen wird. Diese Einstellung soll Denial-of-Service-Angriffe verhindern. Legen Sie dafür eine Zahl fest, die größer als max_connections.
-
logging:
<ph type="x-smartling-placeholder">
- </ph>
-
level: (Standard: Fehler)
<ph type="x-smartling-placeholder">
- </ph>
- Info - Protokolliert alle Anfragen und Antworten, die durch eine Edge Microgateway-Instanz
- warn: protokolliert nur Warnmeldungen.
- error – protokolliert nur Fehlermeldungen.
- dir: (Standard: /var/tmp) Das Verzeichnis, in dem sich die Protokolldateien befinden. gespeichert sind.
- stats_log_interval: (Standard: 60) Intervall in Sekunden, wenn die Statistiken wird in die API-Protokolldatei geschrieben.
- rotate_interval: (Standard: 24) Intervall in Stunden, in dem die Protokolldateien gespeichert werden gedreht.
-
level: (Standard: Fehler)
<ph type="x-smartling-placeholder">
- plugins: Plug-ins bieten Edge Microgateway Funktionen. Weitere Informationen Informationen zur Entwicklung von Plug-ins finden Sie unter Benutzerdefinierte Plug-ins entwickeln.
- dir: Ein relativer Pfad vom ./gateway-Verzeichnis zum ./plugins-Verzeichnis oder einen absoluten Pfad angeben.
- Sequenz: Eine Liste der Plug-in-Module, die dem Edge Microgateway hinzugefügt werden Instanz. Die Module werden in der hier angegebenen Reihenfolge ausgeführt.
-
debug: Fügt dem Edge Microgateway-Prozess das Remote-Debugging hinzu.
- port: Die Portnummer, die überwacht werden soll. Richten Sie beispielsweise Ihren IDE-Debugger ein. um diesen Port zu überwachen.
- args: Argumente für den Debug-Prozess. Beispiel:
args --nolazy
- config_change_poll_interval: (Standard: 600 Sekunden) Edge Microgateway
lädt regelmäßig eine neue Konfiguration und führt eine Aktualisierung durch, falls sich etwas geändert hat. Das Polling
erfasst alle in Edge vorgenommenen Änderungen (Änderungen an Produkten, Microgateway-fähigen Proxys usw.)
sowie Änderungen an der lokalen Konfigurationsdatei.
- disable_config_poll_interval: (Standard: „false“), festgelegt auf true, um das automatische Änderungsabfrage zu deaktivieren.
- request_timeout: Legt ein Zeitlimit für Zielanfragen fest. Das Zeitlimit wird eingestellt in Sekunden. Wenn eine Zeitüberschreitung auftritt, antwortet Edge Microgateway mit dem Statuscode 504. (Hinzugefügt v2.4.x)
- keep_alive_timeout: Mit dieser Eigenschaft können Sie das Edge Microgateway festlegen. Timeout (in Millisekunden). (Standardeinstellung: 5 Sekunden) (Hinzugefügt v3.0.6)
- headers_timeout: Dieses Attribut begrenzt den Zeitraum (in Millisekunden).
wartet der HTTP-Parser auf den Empfang des
vollständige HTTP-Header.
Beispiel:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
Der Parameter legt intern die Node.js-Datei fest.
Server.headersTimeout
bei Anfragen ändern. (Standardeinstellung: 5 Sekunden länger als die mitedgemicro.keep_alive_timeout
festgelegte Zeit. Diese Standardeinstellung verhindert, dass Load-Balancer oder Proxys die Verbindung fälschlicherweise unterbrechen.) (Hinzugefügt v3.1.1)
Headerattribute
Mit diesen Einstellungen wird festgelegt, wie bestimmte HTTP-Header behandelt werden.
- x-forwarded-for: (Standardeinstellung: true) Auf „false“ setzen, um zu verhindern x-forwarded-for-Header, die an das Ziel übergeben werden sollen. Wenn ein x-forwarded-for-Header sich in der Anfrage befindet, wird sein Wert auf den Wert der Client-IP in Edge Analytics festgelegt.
- x-forwarded-host: (Standardeinstellung: true) Auf „false“ setzen, um zu verhindern x-forwarded-host-Header, die an das Ziel übergeben werden sollen.
- x-request-id: (Standard: true) Auf „false“ setzen, um zu verhindern x-request-id-Header, die an das Ziel übergeben werden sollen.
- x-response-time: (Standard: true) Auf „false“ setzen, um zu verhindern x-response-time-Header, die an das Ziel übergeben werden sollen.
- via: (Standard: true) Auf „false“ setzen, um zu verhindern, dass Via-Header in an das Ziel übergeben wird.
OAuth-Attribute
Diese Einstellungen konfigurieren, wie die Clientauthentifizierung von Edge Microgateway erzwungen wird.
- allowNoAuthorization (Standardeinstellung: false) Wenn die Richtlinie auf „true“ gesetzt ist, werden API-Aufrufe Edge Microgateway ohne Autorisierungsheader passieren darf. Setzen auf false, um einen Autorisierungsheader anzufordern (Standardeinstellung).
- allowInvalidAuthorization: (Standardeinstellung: false) Wenn die Richtlinie auf „true“ gesetzt ist, werden API-Aufrufe übergeben werden, wenn das im Autorisierungsheader übergebene Token ungültig oder abgelaufen ist. Festlegen auf „false“, um gültige Tokens anzufordern (Standardeinstellung).
- authorization-header: (Standard: Authorization: Bearer) Dieser Header wird verwendet, um das Zugriffstoken an Edge Microgateway senden. Sie können die Standardeinstellung ändern, Das Ziel muss den Autorisierungsheader für einen anderen Zweck verwenden.
- api-key-header: (Standard: x-api-key) Name des Headers oder der Abfrage Parameter zum Übergeben eines API-Schlüssels an Edge Microgateway. Siehe auch Verwendung von API-Schlüssel
- keep-authorization-header: (Standard: false) Wenn der Wert auf „true“ gesetzt ist, wird der Autorisierungsheader die in der Anfrage gesendet wurden, an das Ziel übergeben (wird beibehalten).
- allowOAuthOnly: Wenn die Richtlinie auf "true" gesetzt ist, muss jede API eine Autorisierung enthalten. mit einem Bearer Access Token. Sie können festlegen, dass nur das OAuth-Sicherheitsmodell Aufrechterhaltung der Abwärtskompatibilität). (Hinzugefügt 2.4.x)
- allowAPIKeyOnly: Wenn die Richtlinie auf "true" gesetzt ist, muss jede API einen x-api-key (oder einen benutzerdefinierten Speicherort) mit einem API-Schlüssel.Erlaubt Ihnen, nur das Sicherheitsmodell des API-Schlüssels (unter Aufrechterhaltung der Abwärtskompatibilität). (Hinzugefügt 2.4.x)
- gracePeriod: Dieser Parameter verhindert Fehler aufgrund geringfügiger Abweichungen zwischen Ihrer Systemuhr und den Zeiten für „Nicht vor“ (nbf) oder „Ausgestellt um“ (iat) das im JWT-Autorisierungstoken angegeben ist. Legen Sie für diesen Parameter die zulässige Anzahl von Sekunden fest auf solche Abweichungen hin. (Hinzugefügt 2.5.7)
Plug-in-spezifisch Attribute
Einzelheiten zu den konfigurierbaren Attributen für die einzelnen Plug-ins finden Sie unter Plug-ins verwenden.
Proxys filtern
Sie können filtern, welche Microgateway-fähigen Proxys eine Edge Microgateway-Instanz verarbeitet.
Beim Start von Edge Microgateway werden alle Microgateway-fähigen Proxys im
Organisation zugeordnet ist. Verwenden Sie die folgende Konfiguration, um einzuschränken, welche Proxys den
Microgateway verarbeitet. Diese Konfiguration schränkt beispielsweise die Proxys des Microgateways ein
werden auf drei Elemente verarbeitet: edgemicro_proxy-1
, edgemicro_proxy-2
,
und edgemicro_proxy-3
:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Produkte filtern
Verwenden Sie die folgende Konfiguration, um die Anzahl der API-Produkte zu begrenzen, die Edge Microgateway verwendet
Downloads und Prozesse. Füge die productnamefilter
hinzu, um heruntergeladene Produkte zu filtern
Abfrageparameter für die in Edge Microgateway *.config.yaml
aufgeführte API /products
-Datei. Beispiel:
edge_config: bootstrap: >- https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
Der Wert des Suchparameters muss im Format eines regulären Ausdrucks angegeben werden und
URL-codiert sein. Der reguläre Ausdruck ^[Ee]dgemicro.*$
fängt beispielsweise folgende Namen ab:
„edgemicro-test-1“ , „edgemicro_demo“ und „Edgemicro_New_Demo“. Der URL-codierte Wert, der für
im Abfrageparameter verwendet wird: %5E%5BEe%5Ddgemicro.%2A%24
.
Die folgende Debug-Ausgabe zeigt, dass nur die gefilterten Produkte heruntergeladen wurden:
... 2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK ... .... .... { "apiProduct":[ { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590549037549, "createdBy":"k***@g********m", "displayName":"test upper case in name", "environments":[ "prod", "test" ], "lastModifiedAt":1590549037549, "lastModifiedBy":"k***@g********m", "name":"Edgemicro_New_Demo", "proxies":[ "catchall" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590548328998, "createdBy":"k***@g********m", "displayName":"edgemicro test 1", "environments":[ "prod", "test" ], "lastModifiedAt":1590548328998, "lastModifiedBy":"k***@g********m", "name":"edgemicro-test-1", "proxies":[ "Lets-Encrypt-Validation-DoNotDelete" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1558182193472, "createdBy":"m*********@g********m", "displayName":"Edge microgateway demo product", "environments":[ "prod", "test" ], "lastModifiedAt":1569077897465, "lastModifiedBy":"m*********@g********m", "name":"edgemicro_demo", "proxies":[ "edgemicro-auth", "edgemicro_hello" ], "quota":"600", "quotaInterval":"1", "quotaTimeUnit":"minute", "scopes":[ ] } ] }
Push-Häufigkeit für Analysen konfigurieren
Verwenden Sie diese Konfigurationsparameter, um die Häufigkeit zu steuern, mit der Edge Microgateway sendet zu Apigee hinzufügen:
- bufferSize (optional): Die maximale Anzahl an Analysedatensätzen, die der Puffer enthalten sein kann, bevor die ältesten Datensätze gelöscht werden. Standardeinstellung: 10.000
- batchSize (optional): Die maximale Größe eines Batches von Analysedatensätzen. an Apigee gesendet. Standardwert: 500
- flushInterval (optional): Die Anzahl der Millisekunden zwischen den einzelnen Leerungen des einen Batch von Analysedatensätzen, der an Apigee gesendet wurde. Standardeinstellung: 5.000
Beispiel:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
Analysedaten maskieren
Die folgende Konfiguration verhindert, dass in Edge Informationen zum Anforderungspfad angezeigt werden Analytics. Fügen Sie der Microgateway-Konfiguration Folgendes hinzu, um den Anfrage-URI zu maskieren und/oder Anfragepfad. Der URI besteht aus dem Hostnamen und den Pfadteilen der Anfrage.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
API-Aufrufe in Edge Analytics trennen
Sie können das Analyse-Plug-in so konfigurieren, dass ein bestimmter API-Pfad getrennt wird, sodass er wie folgt angezeigt wird: einen separaten Proxy in den Edge Analytics-Dashboards. So können Sie zum Beispiel Trennen Sie eine Systemdiagnose-API im Dashboard, um sie nicht mit tatsächlichen API-Proxy-Aufrufen zu verwechseln. Im Analytics-Dashboard, getrennte Proxys folgen diesem Namensmuster:
edgemicro_proxyname-health
Die folgende Abbildung zeigt zwei getrennte Proxys im Analytics-Dashboard: edgemicro_hello-health
und
edgemicro_mock-health
:
Diese verwenden, um relative und absolute Pfade im Analytics-Dashboard als separate Proxys zu trennen:
- relativePath (optional): Gibt einen relativen Pfad zum Trennen in der
Analytics-Dashboard. Wenn Sie beispielsweise
/healthcheck
angeben, werden alle API-Aufrufe, die den Pfad enthalten,/healthcheck
wird im Dashboard alsedgemicro_proxyname-health
angezeigt. Beachten Sie, dass dieses Flag den Proxy-Basispfad ignoriert. Verwenden Sie das FlagproxyPath
, um die Daten anhand eines vollständigen Pfads einschließlich Basispfad zu trennen. - proxyPath (optional): Gibt einen vollständigen API-Proxy-Pfad an, einschließlich des Proxys
Basispfad, um im Analyse-Dashboard zu trennen. Wenn Sie beispielsweise
/mocktarget/healthcheck
angeben, wobei/mocktarget
der Proxy-Basispfad ist, werden alle API-Aufrufe mit dem Pfad/mocktarget/healthcheck
werden im Dashboard alsedgemicro_proxyname-health
angezeigt.
In der folgenden Konfiguration wird beispielsweise jeder API-Pfad, der /healthcheck
enthält,
vom Analytics-Plug-in getrennt. Das bedeutet, /foo/healthcheck
und /foo/bar/healthcheck
wird im Analyse-Dashboard als separater Proxy mit dem Namen edgemicro_proxyname-health
getrennt.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
In der folgenden Konfiguration wird jede API mit dem Proxypfad /mocktarget/healthcheck
wird als separater Proxy namens edgemicro_proxyname-health
in
des Analytics-Dashboards.
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
Einrichten von Edge Microgateway hinter einem Unternehmensfirewall
HTTP-Proxy für die Kommunikation mit Apigee Edge verwenden
In Version 3.1.2 hinzugefügt.
Führen Sie die folgenden Schritte aus, um einen HTTP-Proxy für die Kommunikation zwischen Edge Microgateway und Apigee Edge zu verwenden: Folgendes:
- Umgebungsvariablen festlegen
HTTP_PROXY
,HTTPS_PROXY
undNO_PROXY
. Diese Variablen steuern die Hosts für jeden HTTP-Proxy, den Sie für die Kommunikation mit Apigee Edge oder die Hosts, die die Kommunikation mit Apigee Edge nicht übernehmen sollen. Beispiel:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
Beachten Sie, dass
NO_PROXY
eine durch Kommas getrennte Liste von Domains sein kann, die von Edge Microgateway keinen Proxy verwenden.Weitere Informationen zu diesen Variablen finden Sie unter https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables.
- Starten Sie Edge Microgateway neu.
HTTP-Proxy für die Zielkommunikation verwenden
In Version 3.1.2 hinzugefügt.
Um einen HTTP-Proxy für die Kommunikation zwischen Edge Microgateway und Backend-Zielen zu verwenden, Gehen Sie so vor:
- Fügen Sie der Microgateway-Konfigurationsdatei die folgende Konfiguration hinzu:
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | false
Wobei:
- tunnel (optional): Wenn dieser Wert auf "true" gesetzt ist, verwendet Edge Microgateway die Methode "HTTP CONNECT", um ein HTTP-Tunneling durchzuführen.
über eine einzelne TCP-Verbindung senden. Das Gleiche gilt, wenn die Umgebungsvariablen wie
wie unten erwähnt,
zum Konfigurieren des Proxys TLS aktiviert sind. Standard:
false
- url: Die HTTP-Proxy-URL.
- bypass: (optional) Gibt eine oder mehrere durch Kommas getrennte Zielhost-URLs an, die den HTTP-Proxy umgehen sollte. Verwenden Sie NO_PROXY, wenn diese Eigenschaft nicht festgelegt ist. um festzulegen, welche Ziel-URLs umgangen werden sollen.
- enabled: Wenn „true“ und
proxy.url
festgelegt ist, verwenden Sie den Wertproxy.url
für den HTTP-Proxy. Wenn „true“ undproxy.url
nicht festgelegt ist, die im HTTP-Proxy angegebenen Proxys verwenden UmgebungsvariablenHTTP_PROXY
undHTTPS_PROXY
, wie in HTTP-Proxy für die Kommunikation mit Apigee Edge verwenden
Beispiel:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true
- tunnel (optional): Wenn dieser Wert auf "true" gesetzt ist, verwendet Edge Microgateway die Methode "HTTP CONNECT", um ein HTTP-Tunneling durchzuführen.
über eine einzelne TCP-Verbindung senden. Das Gleiche gilt, wenn die Umgebungsvariablen wie
wie unten erwähnt,
zum Konfigurieren des Proxys TLS aktiviert sind. Standard:
- Starten Sie Edge Microgateway neu.
Platzhalter in Microgateway-aware verwenden Proxys
Sie können einen oder mehrere „*“ verwenden im Basispfad eines
edgemicro_*-Proxy (Microgateway-aware). Ein Basispfad von
Mit /team/*/members können Kunden unter
https://[host]/team/blue/members und
https://[host]/team/green/members, ohne neue API-Proxys erstellen zu müssen
um neue Teams zu unterstützen. Beachten Sie, dass /**/
nicht unterstützt wird.
Wichtig: Apigee unterstützt NICHT die Verwendung des Platzhalters „*“. als
ersten Element eines Basispfads. Folgendes wird beispielsweise NICHT unterstützt: /*/
-Suche.
JWT-Schlüssel rotieren
Irgendwann nach der anfänglichen Generierung eines JWT müssen Sie möglicherweise den Parameter ein öffentliches/privates Schlüsselpaar, das in der Edge-verschlüsselten KVM gespeichert ist. Dieser Prozess der Generierung eines neuen Schlüssels wird als Schlüsselrotation bezeichnet.
So verwendet Edge Microgateway JWT
JSON Web Token (JWT) ist ein in RFC7519 beschriebener Tokenstandard. JWT bietet die Möglichkeit, eine Reihe von Anforderungen zu signieren, was vom Empfänger des JWT zuverlässig verifiziert werden kann.
Edge Microgateway verwendet JWTs als Inhabertokens für die OAuth-Sicherheit. Beim Generieren OAuth-Token für Edge Microgateway erhalten, erhalten Sie ein JWT zurück. Anschließend kannst du das JWT im Autorisierungsheader von API-Aufrufen. Beispiel:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
Neues JWT generieren
Sie können ein JWT für Edge Microgateway mit dem Befehl edgemicro token
oder
eine API. Beispiel:
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
Dieser Befehl fordert Apigee Edge auf, ein JWT zu generieren, mit dem dann die API überprüft werden kann.
Anrufe. Die Parameter -i
und -s
sind die Consumer-ID und die Secret-Werte einer Entwickler-App.
in Ihrer Apigee Edge-Organisation.
Alternativ können Sie ein JWT auch mit der Verwaltungs-API generieren:
curl -i -X POST "http://$ORG-$ENV.apigee.net/edgemicro-auth/token" \ -H "Content-Type: application/json" \ -d '{ "$CLIENT_ID": "your consumer key", "$CLIENT_SECRET": "your consumer secret", "grant_type": "client_credentials" }'
Wobei:
- $ORG ist der Name Ihrer Edge-Organisation (Sie müssen Organisationsadministrator sein).
- $ENV ist eine Umgebung in Ihrer Organisation, z. B. „test“ oder „prod“.
- $CLIENT_ID ist die Verbraucher-ID in der Entwickler-App, die du zuvor erstellt hast.
- $CLIENT_SECRET ist das Consumer-Secret in der von Ihnen erstellten Entwickler-App .
Was ist die Schlüsselrotation?
Irgendwann nach der anfänglichen Generierung eines JWT müssen Sie möglicherweise den Parameter ein öffentliches/privates Schlüsselpaar, das in der Edge-verschlüsselten KVM gespeichert ist. Dieser Prozess der Generierung eines neuen Schlüssels wird als Schlüsselrotation bezeichnet. Wenn Sie Schlüssel rotieren, wird ein neues Paar aus privatem und öffentlichem Schlüssel generiert. die im „Microgateway“ gespeichert sind KVM in Ihrer Apigee Edge-Organisation/-Umgebung. Darüber hinaus enthält der Der alte öffentliche Schlüssel wird zusammen mit seinem ursprünglichen Schlüssel-ID-Wert beibehalten.
Um ein JWT zu generieren, verwendet Edge Informationen, die in der verschlüsselten KVM gespeichert sind. A
Die KVM mit dem Namen microgateway
wurde bei der Ersteinrichtung erstellt und mit Schlüsseln gefüllt.
Edge Microgateway. Die Schlüssel in der KVM werden zum Signieren und Verschlüsseln eines JWT verwendet.
Zu den KVM-Schlüsseln gehören:
-
private_key: Der zuletzt erstellte private RSA-Schlüssel, der zum Signieren verwendet wurde. JWTs
-
public_key – Das neueste (zuletzt erstellte) Zertifikat zur Überprüfung von JWTs. mit dem privaten_Schlüssel signiert.
-
private_key_kid – Neueste (zuletzt erstellte) private Schlüssel-ID Diese Schlüssel-ID ist dem Wert "private_key" zugeordnet und wird verwendet, um die Schlüsselrotation zu unterstützen.
-
public_key1_kid – Die letzte (zuletzt erstellte) öffentliche Schlüssel-ID. Dieser Schlüssel ist ist dem Wert public_key1 zugeordnet und wird zur Unterstützung der Schlüsselrotation verwendet. Dieser Wert ist mit dem untergeordneten Schlüssel des privaten Schlüssels identisch.
-
public_key1 – Der zuletzt erstellte öffentliche Schlüssel.
Wenn Sie eine Schlüsselrotation durchführen, werden vorhandene Schlüssel/Wert-Paare in der Zuordnung ersetzt und Schlüssel werden hinzugefügt, um die alten öffentlichen Schlüssel beizubehalten. Beispiel:
-
public_key2_kid – Die alte öffentliche Schlüssel-ID. Dieser Schlüssel ist mit dem public_key2. Dieser Wert wird zur Unterstützung der Schlüsselrotation verwendet.
-
public_key2: Der alte öffentliche Schlüssel.
Zur Überprüfung vorgelegte JWTs werden mit dem neuen öffentlichen Schlüssel verifiziert. Wenn fehlgeschlagen ist, wird der alte öffentliche Schlüssel verwendet, bis er abläuft (nach 30 Minuten). In können Sie auf diese Weise ohne den API-Traffic zu unterbrechen.
Schlüsselrotation
In diesem Abschnitt wird erläutert, wie eine Schlüsselrotation durchgeführt wird.
Wenn Sie Ihre Edge Microgateway-Instanz vor Version 2.5.2 konfiguriert haben
Wenn Sie Ihre Edge Microgateway-Instanz vor Version 2.5.2 konfiguriert haben, müssen Sie die folgenden beiden Befehle, um die KVM und die Authentifizierungsrichtlinie zu aktualisieren:
upgradekvm -o $ORG -e $ENV -u $USERNAME
Weitere Informationen zu diesem Befehl finden Sie unter Upgrade durchführen die KVM.
Der nächste Befehl aktualisiert den edgemicro-oauth-Proxy, der auf einem Ihre Apigee-Organisation, wenn Sie Edge Microgateway konfiguriert haben. Dieser Proxy stellt Dienste bereit, die für Token generieren.
upgradeauth -o $ORG -e $ENV -u $USERNAME
Weitere Informationen zu diesem Befehl finden Sie unter Upgrade der Edgemicro-auth-Proxy
Schlüssel rotieren
Fügen Sie der Datei ~/.edgemicro/org-env-config.yaml
die folgende Zeile hinzu.
Geben Sie dieselbe Organisation und Umgebung an, die Sie für das zu verwendende Microgateway konfiguriert haben:
jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'
Führen Sie den Befehl zur Schlüsselrotation aus, um die Schlüssel zu rotieren. Weitere Informationen zu diesem Befehl finden Sie unter Schlüssel drehen.
edgemicro rotatekey -o $ORG -e $ENV -u $USERNAME -k $KID_VALUE
Beispiel:
edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2 current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: Checking if private key exists in the KVM... Checking for certificate... Found Certificate Generating New key/cert pair... Extract new public key Key Rotation successfully completed!
Der Parameter -k
gibt eine Schlüssel-ID (Kinder) an. Diese ID wird verwendet, um einen bestimmten Schlüssel zuzuordnen.
Edge Microgateway verwendet diesen Wert, um während der Schlüsselrotation aus einer Reihe von Schlüsseln auszuwählen. Weitere Informationen
erhalten Sie in Abschnitt 4.5 der
JSON Web Key-Spezifikation.
Nach der Schlüsselrotation gibt Edge mehrere Schlüssel an Edge Microgateway zurück. Hinweis im Im folgenden Beispiel hat jeder Schlüssel einen eindeutigen „Kinder“-Schlüssel, (Schlüssel-ID) zurückgegeben wird. Das Microgateway verwendet diese Schlüssel zum Validieren von Autorisierungstokens. Wenn die Tokenvalidierung fehlschlägt, sucht das Microgateway um zu sehen, ob es einen älteren Schlüssel im Schlüsselsatz gibt, und versucht diesen Schlüssel. Das Format des Die zurückgegebenen Schlüssel sind JSON Web Key (JWK). Informationen zu diesem Format finden Sie unter RFC 7517.
{ "keys": [ { "kty": "RSA", "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ", "e": "AQAB", "kid": "2" }, { "kty": "RSA", "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw", "e": "AQAB", "kid": "1" } ] }
Heruntergeladene Proxys filtern
Standardmäßig lädt Edge Microgateway alle Proxys in Ihrer Edge-Organisation herunter die mit dem Präfix "edgemicro_" beginnen. Du kannst diese Standardeinstellung ändern, um Proxys herunterzuladen deren Namen mit einem Muster übereinstimmen.
- Öffnen Sie die Edge Micro-Konfigurationsdatei:
~/.edgemicro/org-env-config.yaml
- Fügen Sie das "proxyPattern"-Element unter "Edge_config" hinzu. Das folgende Muster wird beispielsweise
Laden Sie Proxys wie Edgemicro_foo, Edgemicro_fast und Edgemicro_first herunter.
edge_config: … proxyPattern: edgemicro_f*
Produkte ohne API-Proxys angeben
In Apigee Edge können Sie ein API-Produkt erstellen, das keine API-Proxys enthält. Bei dieser Produktkonfiguration kann ein API-Schlüssel, der mit diesem Produkt verknüpft ist, mit beliebigen der in Ihrer Organisation bereitgestellt wird. Ab Version 2.5.4 unterstützt Edge Microgateway dieses Produkt Konfiguration.
Debugging und Fehlerbehebung
Verbindung zu einem Debugger herstellen
Sie können Edge Microgateway mit einem Debugger wie node-inspector ausführen. Dies ist nützlich für und Debugging benutzerdefinierter Plug-ins.
- Starten Sie Edge Microgateway im Debug-Modus neu. Fügen Sie dazu
DEBUG=*
zum Anfang desstart
-Befehls:DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
Mit dem folgenden Befehl können Sie die Debug-Ausgabe an eine Datei weiterleiten:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- Starten Sie den Debugger und richten Sie ihn so ein, dass für den Fehlerbehebungsprozess die Portnummer überwacht wird.
- Sie können nun den Edge Microgateway-Code durchlaufen, Haltepunkte einstellen, Ausdrücke beobachten, und so weiter.
Sie können Node.js-Standard-Flags für den Debug-Modus angeben. Beispiel:
--nolazy
hilft beim Debuggen von asynchronem Code.
Protokolldateien prüfen
Prüfen Sie bei Problemen die Protokolldateien auf Ausführungsdetails und Fehler. Informationen. Weitere Informationen finden Sie unter Protokolldateien verwalten.
API-Schlüsselsicherheit verwenden
API-Schlüssel bieten einen einfachen Mechanismus zum Authentifizieren von Clients, die Anfragen an Edge stellen Microgateway. Sie können einen API-Schlüssel erhalten, indem Sie den Wert des Consumer-Keys (auch Client-ID genannt) kopieren von einem Apigee Edge-Produkt, das den Edge Microgateway-Authentifizierungs-Proxy enthält.
Zwischenspeichern von Schlüsseln
API-Schlüssel werden gegen Inhabertokens ausgetauscht, die im Cache gespeichert werden. Du kannst das Caching deaktivieren, indem du
den Cache-Control: no-cache
-Header bei eingehenden Anfragen an Edge
Microgateway.
API-Schlüssel verwenden
Sie können den API-Schlüssel in einer API-Anfrage entweder als Abfrageparameter oder in einem Header übergeben. Standardmäßig
Der Name des Headers und des Abfrageparameters ist x-api-key
.
Beispiel für einen Abfrageparameter:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
Beispiel für Anzeigentitel:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
API-Schlüsselnamen konfigurieren
Standardmäßig ist x-api-key
der Name, der für den Header des API-Schlüssels und den Abfrageparameter verwendet wird.
Sie können diese Standardeinstellung in der Konfigurationsdatei ändern, wie unter Konfigurationsänderungen vornehmen erläutert. Um beispielsweise den
Name in apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
In diesem Beispiel werden sowohl der Suchparameter als auch der Headername in apiKey
geändert. Die
mit dem Namen x-api-key
funktioniert. Siehe auch
Konfigurationsänderungen vornehmen
Beispiel:
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
Weitere Informationen zur Verwendung von API-Schlüsseln mit Proxyanfragen finden Sie unter Secure Edge Microgateway
Upstream-Antwortcodes aktivieren
Standardmäßig gibt das Plug-in oauth
nur 4xx-Fehlerstatuscodes zurück, wenn
ist die Antwort kein 200-Status. Sie können dieses Verhalten so ändern,
gibt je nach Fehler den genauen 4xx- oder 5xx-Code zurück.
Fügen Sie oauth.useUpstreamResponse: true
hinzu, um diese Funktion zu aktivieren
an Ihre Edge Microgateway-Konfiguration an. Beispiel:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
OAuth2-Tokensicherheit verwenden
In diesem Abschnitt wird erläutert, wie Sie OAuth2-Zugriffstokens und Aktualisierungstokens erhalten. Zugriffstokens werden verwendet, sichere API-Aufrufe über Microgateway. Aktualisierungstokens werden verwendet, um neue Zugriffstokens abzurufen.
Zugriffstoken abrufen
In diesem Abschnitt wird erläutert, wie Sie den edgemicro-auth
-Proxy zum Abrufen eines Zugriffstokens verwenden.
Sie können ein Zugriffstoken auch mit dem Befehl edgemicro token
über die Befehlszeile abrufen.
Weitere Informationen zur Befehlszeile finden Sie unter Tokens verwalten.
API 1: Anmeldedaten als Textparameter senden
Ersetzen Sie die Namen Ihrer Organisation und Umgebung in der URL. Sie ersetzen die Werte der Nutzer-ID und des Consumer-Secrets, die aus einer Entwickler-App auf Apigee abgerufen wurden. Edge für die Textparameter client_id und client_secret:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \ -d '{"grant_type": "client_credentials", "client_id": "your_client_id", \ "client_secret": "your_client_secret"}' -H "Content-Type: application/json"
API 2: Anmeldedaten in einem Basic Auth-Header senden
Senden Sie die Client-Anmeldedaten als Basic Authentication-Header und den
grant_type
als Formularparameter. Dieses Befehlsform wird auch im
RFC 6749: Das OAuth 2.0-Autorisierungs-Framework.
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
Beispielausgabe
Die API gibt eine JSON-Antwort zurück. Es gibt keinen Unterschied zwischentoken
und
access_token
-Properties. Beides ist möglich.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
Aktualisierungstoken erhalten
Um ein Aktualisierungstoken zu erhalten, führen Sie einen API-Aufruf an den Endpunkt /token
der
edgemicro-auth
-Proxy. Du MÜSSEN diesen API-Aufruf mit der password
durchführen
Erteilungstyp. Die folgenden Schritte führen Sie durch den Prozess.
- Rufen Sie mit der
/token
API ein Zugriffs- und Aktualisierungstoken ab. Beachten Sie, dass der Berechtigungstyp istpassword
:curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'
Die API gibt ein Zugriffstoken und ein Aktualisierungstoken zurück. Die Antwort sieht in etwa so aus: dies:
{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": "108000", "refresh_token": "your-refresh-token", "refresh_token_expires_in": "431999", "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" }
- Sie können jetzt das Aktualisierungstoken verwenden, um ein neues Zugriffstoken zu erhalten, indem Sie Folgendes aufrufen:
den Endpunkt
/refresh
derselben API. Beispiel:curl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'
Die API gibt ein neues Zugriffstoken zurück. Die Antwort sieht in etwa so aus:
{ "token": "your-new-access-token" }
Permanente Überwachung
Forever ist ein Node.js-Tool, das startet eine Node.js-Anwendung automatisch neu, wenn der Prozess unterbrochen wird oder ein Fehler auftritt. Rand Microgateway verfügt über eine Datei forever.json, mit der Sie steuern können, wie viele mit welchen Intervallen Edge Microgateway neu gestartet werden soll. Diese Datei konfiguriert ein Forever-Dienst namens forever-monitor, der Forever verwaltet Programmatisch garantiert.
Sie finden die Datei forever.json in der Root-Installation von Edge Microgateway. -Verzeichnis. Weitere Informationen finden Sie unter . Wo ist Edge Microgateway installiert? Details zu den Konfigurationsoptionen finden Sie in der forever-monitor.
Der Befehl edgemicro forever
enthält Flags, mit denen Sie den Speicherort der
Die Datei forever.json
(Flag -f
) und das Forever-Monitoring starten/stoppen
(das Flag -a
). Beispiel:
edgemicro forever -f ~/mydir/forever.json -a start
Weitere Informationen finden Sie in der Befehlszeilen-Referenz unter Forevermonitoring.
Endpunkt für Konfigurationsdatei angeben
Wenn Sie mehrere Edge Microgateway-Instanzen ausführen, möchten Sie möglicherweise deren Konfigurationen verwalten von einem einzigen Ort aus. Geben Sie dazu einen HTTP-Endpunkt an, an dem Edge Micro die zugehörige Konfigurationsdatei herunterladen. Sie können diesen Endpunkt beim Starten von Edge Micro mit -u-Flag.
Beispiel:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
Dabei gibt der Endpunkt "mgconfig" den Inhalt der Konfigurationsdatei zurück. Dies ist die Datei
die sich standardmäßig in ~/.edgemicro
befindet und folgende Namenskonvention hat:
org-env-config.yaml
.
Zwischenspeichern von TCP-Verbindungsdaten deaktivieren
Mit dem Konfigurationsattribut nodelay
können Sie die Datenzwischenspeicherung für
Von Edge Microgateway verwendete TCP-Verbindungen.
Standardmäßig verwenden TCP-Verbindungen den Nagle
, um Daten vor dem Senden zu puffern. Wenn nodelay
auf true
festgelegt wird,
deaktiviert dieses Verhalten (Daten werden jedes Mal sofort Daten ausgelöst)
socket.write()
wird aufgerufen). Weitere Informationen finden Sie im Hilfeartikel Node.js
in der Dokumentation.
Bearbeiten Sie die Edge Micro-Konfigurationsdatei so, um nodelay
zu aktivieren:
edgemicro: nodelay: true port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Edge Microgateway im eigenständigen Modus ausführen
Sie können Edge Microgateway unabhängig von jedem Apigee Edge-Abhängigkeit In diesem Szenario, dem eigenständigen Modus, können Sie Edge Microgateway ausführen und testen ohne Internetverbindung nutzen zu können.
Im eigenständigen Modus funktionieren die folgenden Funktionen nicht, da dafür eine Verbindung erforderlich ist. an Apigee Edge:
- OAuth und API-Schlüssel
- Kontingent
- Analytics
Benutzerdefinierte Plug-ins und Spike Arrest funktionieren hingegen normal, da sie
eine Verbindung zu Apigee Edge. Darüber hinaus können Sie mit dem neuen Plug-in extauth
im eigenständigen Modus API-Aufrufe an das Microgateway mit einem JWT autorisieren.
Gateway konfigurieren und starten
So führen Sie Edge Microgateway im eigenständigen Modus aus:
- Erstellen Sie eine Konfigurationsdatei mit folgendem Namen:
$HOME/.edgemicro/$ORG
-
$ENV-config.yamlBeispiel:
vi $HOME/.edgemicro/foo-bar-config.yaml
- Fügen Sie folgenden Code in die Datei ein:
edgemicro: port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - extauth - spikearrest headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true extauth: publickey_url: https://www.googleapis.com/oauth2/v1/certs spikearrest: timeUnit: second allow: 10 buffersize: 0
- Exportieren Sie die folgende Umgebungsvariable mit dem Wert „1“:
export EDGEMICRO_LOCAL=1
- Führen Sie den folgenden
start
-Befehl aus. Dabei geben Sie Werte zum Instanziieren der lokaler Proxy:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
Wobei:
- $ORG ist die „Organisation“ den Sie im Namen der Konfigurationsdatei verwendet haben.
- $ENV ist die „Umgebung“. Namen, den Sie in der Konfigurationsdatei verwendet haben. Namen.
- $LOCAL_PROXY_NAME ist der Name des lokalen Proxys, der erstellt wird. Sie können einen beliebigen Namen.
- $LOCAL_PROXY_VERSION ist die Versionsnummer für den Proxy.
- $TARGET_URL ist die URL für das Ziel des Proxys. (Das Ziel ist der den der Proxy aufruft.)
- $BASE_PATH ist der Basispfad des Proxys. Dieser Wert muss mit „Vorwärts“ beginnen Schrägstrich. Geben Sie für einen Stammpfad nur einen Schrägstrich an. Beispiel: „/“.
Beispiel:
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- Die Konfiguration testen.
curl http://localhost:8000/echo { "error" : "missing_authorization" }
Da sich das Plug-in
extauth
in der Dateifoo-bar-config.yaml
befindet, eine „missing_authorization“ abrufen Fehler. Dieses Plug-in validiert ein JWT, das in der Autorisierung vorhanden sein muss des API-Aufrufs an. Im nächsten Abschnitt erhalten Sie ein JWT, das API-Aufrufe zulässt. ohne Fehler durchlaufen werden.
Beispiel: Autorisierungstoken abrufen
Das folgende Beispiel zeigt, wie Sie ein JWT vom Edge Microgateway-JWT-Endpunkt auf Apigee Edge (edgemicro-auth/jwkPublicKeys
) abrufen.
Dieser Endpunkt wird bereitgestellt, wenn Sie Edge Microgateway standardmäßig einrichten und konfigurieren.
Um das JWT vom Apigee-Endpunkt abzurufen, müssen Sie zuerst Edge Microgateway standardmäßig einrichten.
mit dem Internet verbunden sein. Der Apigee-Endpunkt wird hier zu Beispielzwecken verwendet
und ist nicht erforderlich. Sie können bei Bedarf einen anderen JWT-Tokenendpunkt verwenden. In diesem Fall musst du das JWT mit
die für diesen Endpunkt bereitgestellte API.
In den folgenden Schritten wird erläutert, wie Sie ein Token über den Endpunkt edgemicro-auth/jwkPublicKeys
abrufen:
- Sie müssen eine Standardeinstellung
Edge Microgateway einrichten und konfigurieren, um den
edgemicro-auth
-Proxy bereitzustellen für Ihre Organisation/Umgebung auf Apigee Edge. Wenn Sie diesen Schritt bereits ausgeführt haben, müssen Sie ihn nicht wiederholen. - Wenn Sie Edge Microgateway auf Apigee Cloud bereitgestellt haben, müssen Sie mit dem Internet verbunden sein, damit Sie ein JWT von diesem Endpunkt abrufen können.
-
Beenden Sie Edge Microgateway:
edgemicro stop
- Gehen Sie in der zuvor erstellten Konfigurationsdatei (
$HOME/.edgemicro
/org–env-config.yaml
) so vor: Zeige aufextauth:publickey_url
Attribut zu dem Endpunktedgemicro-auth/jwkPublicKeys
in Ihrer Apigee Edge-Organisation/-Umgebung. Beispiel:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
Starten Sie Edge Microgateway wie zuvor neu und verwenden Sie dabei die Organisations-/Umgebungsnamen, die Sie im Namen der Konfigurationsdatei verwendet haben. Beispiel:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
Ruft ein JWT-Token vom Autorisierungsendpunkt ab. Weil du
edgemicro-auth/jwkPublicKeys
verwendest Endpunkt, können Sie den folgenden Befehl über die Befehlszeile verwenden:
Sie können ein JWT für Edge Microgateway mit dem Befehl edgemicro token
oder
eine API. Beispiel:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
Wobei:
- your_org ist der Name Ihrer Apigee-Organisation, für die Sie zuvor angegeben haben. konfiguriertes Edge Microgateway.
- your_env ist eine Umgebung in der Organisation.
- Die Option
i
gibt den Consumer Key einer Entwickler-App an, die ein Produkt enthält. der denedgemicro-auth
-Proxy enthält. - Die Option
s
gibt das Consumer-Secret einer Entwickler-App an, die ein das denedgemicro-auth
-Proxy enthält.
Dieser Befehl fordert Apigee Edge auf, ein JWT zu generieren, mit dem dann die API überprüft werden kann. Anrufe.
Siehe auch Token generieren.Eigenständige Konfiguration testen
Um die Konfiguration zu testen, rufen Sie die API mit dem Token auf, das im Autorisierungsheader wie folgt hinzugefügt wird:
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
Beispiel:
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
Beispielausgabe:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
Lokalen Proxymodus verwenden
Im lokalen Proxy-Modus benötigt Edge Microgateway kein microgateway-aware-Proxy auf Apigee Edge bereitgestellt werden. Stattdessen konfigurieren Sie einen „lokalen Proxy“ indem Sie einen lokalen Proxy-Namen, einen Basispfad und eine Ziel-URL, Starten Sie das Microgateway. API-Aufrufe an das Microgateway werden dann an das Ziel URL des lokalen Proxys. Abgesehen davon funktioniert der lokale Proxymodus genauso Edge Microgateway im normalen Modus Die Authentifizierung funktioniert wie die Spitze, und Kontingentdurchsetzung, benutzerdefinierte Plug-ins und so weiter.
Anwendungsfall und Beispiel
Der lokale Proxy-Modus ist nützlich, wenn Sie nur einen einzelnen Proxy mit einem Edge Microgateway verknüpfen müssen Instanz. Sie können beispielsweise Edge Microgateway als Sidecar-Proxy in Kubernetes einfügen, wobei ein Microgateway und einem Dienst werden jeweils in einem einzigen Pod ausgeführt, und das Microgateway verwaltet den Traffic zu und vom zugehörigen Begleitdienst. Die folgende Abbildung zeigt diese Architektur, in der Edge Microgateway fungiert als Sidecar-Proxy in einem Kubernetes-Cluster. Jede Microgateway-Instanz kommuniziert nur an einen einzelnen Endpunkt im Companion-Dienst gesendet werden:
Ein Vorteil dieses Architekturstils besteht darin, dass Edge Microgateway API Verwaltung einzelner Dienste, die in einer Containerumgebung bereitgestellt werden, z. B. ein Kubernetes-Cluster.
Lokalen Proxymodus konfigurieren
So konfigurieren Sie Edge Microgateway für die Ausführung im lokalen Proxymodus:
- Führen Sie
edgemicro init
aus, um Ihre lokale Konfigurationsumgebung genau einzurichten. wie bei einer typischen Edge Microgateway-Einrichtung. Siehe auch Edge Microgateway konfigurieren - Führen Sie
edgemicro configure
wie bei einer typischen Edge Microgateway-Einrichtung aus Verfahren. Beispiel:edgemicro configure -o your_org -e your_env -u your_apigee_username
Dieser Befehl stellt die Richtlinie edgemicro-auth in Edge bereit und gibt einen Schlüssel zurück und das Secret, das Sie zum Starten des Microgateways benötigen. Weitere Informationen findest du unter Edge Microgateway konfigurieren
- Erstellen Sie in Apigee Edge ein API-Produkt mit der folgenden obligatorischen Konfiguration
(Sie können alle anderen Konfigurationen nach Bedarf verwalten):
<ph type="x-smartling-placeholder">
- </ph>
- Sie müssen dem Produkt den Proxy edgemicro-auth hinzufügen. Dieser Proxy
wurde automatisch bereitgestellt, als Sie
edgemicro configure
ausgeführt haben. - Sie müssen einen Ressourcenpfad angeben. Apigee empfiehlt, diesen Pfad zum
das Produkt:
/**
. Weitere Informationen finden Sie unter Verhalten des Ressourcenpfads konfigurieren. Siehe auch API erstellen Produkte in der Edge-Dokumentation.
- Sie müssen dem Produkt den Proxy edgemicro-auth hinzufügen. Dieser Proxy
wurde automatisch bereitgestellt, als Sie
Erstellen Sie in Apigee Edge einen Entwickler oder verwenden Sie einen vorhandenen Entwickler, wenn Sie Weitere Informationen finden Sie unter Entwickler mithilfe der Edge-Verwaltungsbenutzeroberfläche hinzufügen.
- Erstellen Sie in Apigee Edge eine Entwickler-App. Sie müssen das API-Produkt hinzufügen, das Sie die Sie gerade in der App erstellt haben. Weitere Informationen finden Sie unter Registrieren einer App in Edge. Management-UI.
- Exportieren Sie auf dem Computer, auf dem Edge Microgateway installiert ist, Folgendes:
den Wert „1“ haben.
export EDGEMICRO_LOCAL_PROXY=1
- Führen Sie folgenden
start
-Befehl aus:edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_path
Wobei:
- your_org ist Ihre Apigee-Organisation.
- your_environment ist eine Umgebung in Ihrer Organisation.
- your_key ist der Schlüssel, der bei der Ausführung zurückgegeben wurde.
edgemicro configure
. - your_secret ist das Secret, das bei der Ausführung zurückgegeben wurde
edgemicro configure
. - local_proxy_name ist der Name des lokalen Proxys, der erstellt wird.
- local_proxy_version ist die Versionsnummer für den Proxy.
- target_url ist die URL für das Ziel des Proxys (der Dienst, den der Proxy aufrufen).
- base_path ist der Basispfad des Proxys. Dieser Wert muss mit „Vorwärts“ beginnen Schrägstrich. Geben Sie für einen Stammpfad nur einen Schrägstrich an. Beispiel: „/“.
Beispiel:
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
Konfiguration testen
Sie können die lokale Proxykonfiguration testen, indem Sie den Proxy-Endpunkt aufrufen. Beispiel:
Wenn Sie den Basispfad /echo
angegeben haben, können Sie den Proxy so aufrufen:
curl http://localhost:8000/echo { "error" : "missing_authorization", "error_description" : "Missing Authorization header" }
Bei diesem ersten API-Aufruf ist ein Fehler aufgetreten, da Sie keinen gültigen API-Schlüssel angegeben haben. Sie finden den Schlüssel in der zuvor erstellten Entwickler-App. Öffnen Sie die App in der Edge-Benutzeroberfläche, kopieren Sie den Consumer-Key und verwenden Sie diesen Schlüssel wie folgt:
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
Beispiel:
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
Beispielausgabe:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
Synchronisierer verwenden
In diesem Abschnitt wird die Verwendung des Synchronisierers (optionales Funktion) erläutert, verbessert die Ausfallsicherheit von Edge Microgteway, um Konfigurationsdaten von Apigee Edge abzurufen und in eine lokale Redis-Datenbank zu schreiben. Mit eine Synchronisierer-Instanz, andere Edge Microgateway-Instanzen, die auf verschiedenen Knoten ausgeführt werden können ihre Konfiguration direkt aus dieser Datenbank abrufen.
Die Syncrhonizer-Funktion wird derzeit für die Arbeit mit Redis 5.0.x unterstützt.
Was ist der Synchronisierer?
Der Synchronisierer bietet ein gewisses Maß an Ausfallsicherheit für Edge Microgateway. Es trägt dazu bei, dass jede Instanz von Edge Microgateway dieselbe Konfiguration verwendet Bei einer Internetunterbrechung können Edge Microgateway-Instanzen gestartet und ausgeführt werden. ordnungsgemäß funktioniert.
Standardmäßig müssen Edge Microgateway-Instanzen mit Apigee Edge kommunizieren können, um Konfigurationsdaten wie API-Proxy- und API-Produktkonfigurationen abzurufen und zu aktualisieren. Wenn die Internetverbindung mit Edge unterbrochen wird, können Microgateway-Instanzen weiterhin da die neuesten Konfigurationsdaten im Cache gespeichert werden. Neue Microgateway-Instanzen kann ohne klare Verbindung nicht gestartet werden. Außerdem kann ein Internet Unterbrechung, sodass eine oder mehrere Microgateway-Instanzen mit der Konfiguration ausgeführt werden Daten, die nicht mit anderen Instanzen synchron sind.
Der Edge Microgateway-Synchronisierer bietet einen alternativen Mechanismus für Edge Microgateway Instanzen, um Konfigurationsdaten abzurufen, die sie zum Starten und Verarbeiten des API-Proxy-Traffics benötigen. Der Synchronisierer ermöglicht es, dass alle Edge Microgateways auf verschiedenen Knoten ausgeführt werden, um ordnungsgemäß zu starten und synchron zu bleiben, Die Internetverbindung zwischen Edge Microgateway und Apigee Edge ist unterbrochen.
Der Synchronisierer ist eine speziell konfigurierte Instanz von Edge Microgateway. Sein einziger Zweck ist das Abfragen von Apigee Edge (das Timing ist konfigurierbar), Konfigurationsdaten abzurufen und in eine lokale Redis-Datenbank schreiben. Die Synchronisierungsinstanz selbst kann den API-Proxy nicht verarbeiten. Zugriffe. Andere Instanzen von Edge Microgateway, die auf verschiedenen Knoten ausgeführt werden, so konfiguriert sein, dass Konfigurationsdaten aus der Redis-Datenbank und nicht aus Apigee abgerufen werden Edge Da alle Microgateway-Instanzen ihre Konfigurationsdaten aus der lokalen können sie auch im Falle einer Internetverbindung API-Anfragen starten und verarbeiten. Störungen.
Synchronisierer-Instanz konfigurieren
Fügen Sie der Datei org-env/config.yaml
die folgende Konfiguration für
die Edge Microgateway-Installation, die Sie als Synchronisierer verwenden möchten:
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
Beispiel:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
Option | Beschreibung |
---|---|
redisHost |
Der Host, auf dem die Redis-Instanz ausgeführt wird. Standardeinstellung: 127.0.0.1 |
redisPort |
Der Port der Redis-Instanz. Standardeinstellung: 6379 |
redisDb |
Die zu verwendende Redis-Datenbank. Standardwert: 0 |
redisPassword |
Ihr Datenbankpasswort |
Speichern Sie schließlich die Konfigurationsdatei und starten Sie die Edge Microgateway-Instanz. Es beginnt Apigee Edge abfragen und heruntergeladene Konfigurationsdaten in der Redis-Datenbank speichern.
Reguläre Edge Microgateway-Instanzen konfigurieren
Wenn der Synchronisierer ausgeführt wird, können Sie zusätzliche Edge Microgateway-Knoten konfigurieren um reguläre Microgateway-Instanzen auszuführen, die API-Proxy-Traffic verarbeiten. Sie konfigurieren jedoch um die Konfigurationsdaten dieser Instanzen aus der Redis-Datenbank abzurufen, Apigee Edge
Fügen Sie jedem zusätzlichen Edge Microgateway-Knoten die folgende Konfiguration hinzu
org-env/config.yaml
-Datei. Beachten Sie, dass die synchronizerMode
ist auf 0
festgelegt. Dieses Attribut legt fest, dass die Instanz normal arbeitet.
Edge Microgateway-Instanz, die den API-Proxy-Traffic verarbeitet, und die Instanz erhält
seine Konfigurationsdaten aus der Redis-Datenbank.
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
Beispiel:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
Konfigurationsattribute
Die folgenden Konfigurationseigenschaften wurden hinzugefügt, um die Verwendung des Synchronisierers zu unterstützen:
Attribut | Werte | Beschreibung |
---|---|---|
edge_config.synchronizerMode |
0 oder 1 | Wenn 0 (Standardeinstellung), arbeitet Edge Microgateway im Standardmodus. Wenn 1, starten Sie die Edge Microgateway-Instanz, damit sie als Synchronisierer verwendet wird. In dieser ruft die Instanz die Konfigurationsdaten aus Apigee Edge ab und speichert sie im eine lokale Redis-Datenbank. Diese Instanz kann keine API-Proxy-Anfragen verarbeiten. sein Der einzige Zweck besteht darin, Konfigurationsdaten aus Apigee Edge abzufragen und diese in die lokale Datenbank. Anschließend müssen Sie weitere Mikrogateway-Instanzen so konfigurieren, dass sie aus der Datenbank lesen. |
edge_config.redisBasedConfigCache |
"true" oder "false" | Wenn wahr, ruft die Edge Microgateway-Instanz ihre Konfigurationsdaten vom
Redis-Datenbank statt von Apigee Edge. Die Redis-Datenbank muss dieselbe sein
in das der Synchronisierer schreibt. Wenn die Redis-Datenbank nicht verfügbar ist
Ist die Datenbank leer, sucht das Microgateway nach einem vorhandenen cache-config.yaml
für die Konfiguration.
Bei Einstellung auf „false“ (Standardeinstellung) ruft die Edge Microgateway-Instanz Konfigurationsdaten aus Apigee Edge wie gewohnt verwenden. |
edgemicro.config_change_poll_interval |
Zeitintervall in Sekunden | Gibt das Pollingintervall für den Synchronisierer an, um Daten aus Apigee Edge abzurufen. |