Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Edge Microgateway Version 2.4.x
Überblick
In diesem Thema wird beschrieben, wie Sie Edge Microgateway, einschließlich Monitoring, Logging und Fehlerbehebung, verwalten und konfigurieren.
Konfigurationsänderungen vornehmen
Zu den Konfigurationsdateien, die Sie kennen sollten, gehören:
- Standardsystemkonfigurationsdatei
- Standardkonfigurationsdatei für eine neu initialisierte Edge Microgateway-Instanz
- Dynamische Konfigurationsdatei zum Ausführen von Instanzen
In diesem Abschnitt werden diese Dateien erläutert und was Sie wissen müssen, wenn Sie sie ändern. Weitere Informationen zu den Einstellungen der Konfigurationsdatei finden Sie in der Konfigurationsreferenz für Edge Microgateway.
Standardsystemkonfigurationsdatei
Wenn Sie Edge Microgateway installieren, wird hier eine Standardsystemkonfigurationsdatei platziert:
[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 die Systemkonfigurationsdatei ändern, müssen Sie Edge Microgateway neu initialisieren, neu konfigurieren und dann neu starten:
edgemicro init
anrufenedgemicro configure [params]
anrufenedgemicro start [params]
anrufen
Standardkonfigurationsdatei für neu initialisierte Edge Microgateway-Instanzen
Wenn Sie edgemicro init
ausführen, wird die oben beschriebene Systemkonfigurationsdatei default.yaml
in folgendem Verzeichnis abgelegt: ~/.edgemicro
Wenn Sie die Konfigurationsdatei in ~/.edgemicro
ändern, müssen Sie Edge Microgateway neu konfigurieren und neu starten:
edgemicro stop
edgemicro configure
[params]
edgemicro start
[params]
Dynamische Konfigurationsdatei zum Ausführen von Instanzen
Wenn Sie edgemicro configure [params]
ausführen, wird in ~/.edgemicro
eine dynamische Konfigurationsdatei erstellt. Die Datei wird nach diesem Muster benannt: [org]-[env]-config.yaml
, wobei org
und env
Ihre Organisations- und Umgebungsnamen in Apigee Edge sind. Sie können diese Datei verwenden, um Konfigurationsänderungen vorzunehmen und sie dann ohne Ausfallzeiten neu zu laden. Wenn Sie beispielsweise ein Plug-in hinzufügen und konfigurieren, können Sie die Konfiguration neu laden, ohne dass es zu Ausfallzeiten kommt, wie unten erläutert.
Wenn Edge Microgateway ausgeführt wird (Option ohne Ausfallzeiten):
- Laden Sie die Edge Microgateway-Konfiguration neu:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
Wobei:
org
ist der Name Ihrer Edge-Organisation (Sie müssen ein Organisationsadministrator sein).env
ist eine Umgebung in Ihrer Organisation (z. B. „test“ oder „prod“).key
ist der zuvor vom Befehl „config“ zurückgegebene Schlüssel.secret
ist der Schlüssel, der zuvor vom Befehl „config“ zurückgegeben wurde.
Beispiel
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
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 ein Organisationsadministrator sein).env
ist eine Umgebung in Ihrer Organisation (z. B. „test“ oder „prod“).key
ist der zuvor vom Befehl „config“ zurückgegebene Schlüssel.secret
ist der Schlüssel, der zuvor vom Befehl „config“ zurückgegeben wurde.
Beispiel
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
Hier ist ein Beispiel für eine Konfigurationsdatei. Weitere Informationen zu den Einstellungen der Konfigurationsdatei 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, für die Werte für Ihre Edge-Organisation und -Umgebung erforderlich sind, sowie der Schlüssel und das Secret, die zum Starten von Edge Microgateway benötigt werden, können in diesen Umgebungsvariablen gespeichert werden:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
Das Festlegen dieser Variablen ist optional. Wenn Sie sie festlegen, müssen Sie ihre Werte nicht angeben, wenn Sie Edge Microgateway über die Befehlszeile konfigurieren und starten.
SSL auf dem Edge Microgateway-Server konfigurieren
Sie können den Microgateway-Server für die Verwendung von SSL konfigurieren. Wenn SSL konfiguriert ist, können Sie beispielsweise APIs über Edge Microgateway mit dem Protokoll „https“ so aufrufen:
https://localhost:8000/myapi
So konfigurieren Sie SSL auf dem Microgateway-Server:
- Generieren oder erhalten Sie ein SSL-Zertifikat und einen SSL-Schlüssel mit dem Dienstprogramm openssl oder einer anderen Methode.
- Fügen Sie der Konfigurationsdatei von Edge Microgateway das Attribut
edgemicro:ssl
hinzu. Eine vollständige Liste der Optionen finden Sie in der Tabelle unten. Weitere Informationen zum Ändern der Edge Microgateway-Konfiguration finden Sie unter Konfigurationsänderungen vornehmen. 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. Folgen Sie den Schritten unter Konfigurationsänderungen vornehmen, je nachdem, welche Konfigurationsdatei Sie bearbeitet haben: die Standarddatei oder die Laufzeitkonfigurationsdatei.
Hier ist ein Beispiel für den Edgemicro-Abschnitt der Konfigurationsdatei mit konfiguriertem SSL:
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 des Clients im PFX-Format enthält. |
passphrase |
Ein String, der die Passphrase für den privaten Schlüssel oder PFX enthält. |
ca |
Pfad zu einer Datei mit einer Liste vertrauenswürdiger Zertifikate im PEM-Format. |
ciphers |
Ein String, der die zu verwendenden Chiffren beschreibt, getrennt durch ein ":". |
rejectUnauthorized |
Bei „true“ wird das Serverzertifikat anhand der Liste der bereitgestellten Zertifizierungsstellen überprüft. Wenn die Überprüfung fehlschlägt, wird ein Fehler zurückgegeben. |
secureProtocol |
Die zu verwendende SSL-Methode. Beispiel: SSLv3_method, um SSL auf Version 3 zu erzwingen. |
servername |
Der Servername für die TLS-Erweiterung für SNI (Server Name Indication). |
requestCert |
„true“ für 2-Wege-SSL und „false“ für 1-Wege-SSL |
Client-SSL/TLS-Optionen verwenden
Sie können Edge Microgateway beim Herstellen einer Verbindung zu Zielendpunkten als TLS- oder SSL-Client konfigurieren. Verwenden Sie in der Microgateway-Konfigurationsdatei das Element „targets“, um SSL/TLS-Optionen festzulegen.
Dieses Beispiel enthält Einstellungen, die auf alle Hosts angewendet werden:
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:
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 ein Beispiel für TLS:
targets: host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
Im Folgenden finden Sie 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 des Clients im PFX-Format enthält. |
key |
Pfad zu einer ca.key -Datei im PEM-Format. |
passphrase |
Ein String, der die Passphrase für den privaten Schlüssel oder PFX enthält. |
cert |
Pfad zu einer ca.cert -Datei im PEM-Format. |
ca |
Pfad zu einer Datei mit einer Liste vertrauenswürdiger Zertifikate im PEM-Format. |
ciphers |
Ein String, der die zu verwendenden Chiffren beschreibt, getrennt durch ein ":". |
rejectUnauthorized |
Bei „true“ wird das Serverzertifikat anhand der Liste der bereitgestellten Zertifizierungsstellen überprüft. Wenn die Überprüfung fehlschlägt, wird ein Fehler zurückgegeben. |
secureProtocol |
Die zu verwendende SSL-Methode. Beispiel: SSLv3_method, um SSL auf Version 3 zu erzwingen. |
servername |
Der Servername für die TLS-Erweiterung für SNI (Server Name Indication). |
Edgemicro-Auth-Proxy anpassen
Standardmäßig verwendet Edge Microgateway einen Proxy, der auf Apigee Edge für die OAuth2-Authentifizierung bereitgestellt wird.
Dieser Proxy wird bereitgestellt, wenn Sie edgemicro configure
zum ersten Mal ausführen. Sie können die Standardkonfiguration dieses Proxys ändern, um einem JSON Web Token (JWT) Unterstützung für benutzerdefinierte Anforderungen hinzuzufügen, den Ablauf des Tokens zu konfigurieren und Aktualisierungstokens zu generieren. Weitere Informationen finden Sie auf der Seite edgemicro-auth in GitHub.
Benutzerdefinierten Authentifizierungsdienst verwenden
Standardmäßig verwendet Edge Microgateway einen Proxy, der auf Apigee Edge für die OAuth2-Authentifizierung bereitgestellt wird.
Dieser Proxy wird bereitgestellt, wenn Sie edgemicro configure
zum ersten Mal ausführen. Standardmäßig wird die URL dieses Proxys 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 Wert authUri
in der Konfigurationsdatei so, dass er auf Ihren Dienst verweist. Angenommen, Sie haben einen Dienst, der LDAP zur Identitätsbestätigung verwendet.
Protokolldateien verwalten
Edge Microgateway protokolliert Informationen zu jeder Anfrage und Antwort. Protokolldateien bieten nützliche Informationen für die Fehlerbehebung.
Speicherort der Protokolldateien
Standardmäßig werden Protokolldateien in /var/tmp
gespeichert.
Standardverzeichnis für Logdateien ändern
Das Verzeichnis, in dem Logdateien gespeichert sind, wird in der Konfigurationsdatei von Edge Microgateway angegeben. Weitere Informationen zu Konfigurationsänderungen finden Sie unter Konfigurationsänderungen vornehmen.
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 von dir, um ein anderes Protokolldateiverzeichnis anzugeben.
Logs an die Konsole senden
Sie können Logging so konfigurieren, dass Loginformationen an die Standardausgabe statt an eine Logdatei gesendet werden. Legen Sie das Flag to_console
so auf „true“ fest:
edgemicro: logging: to_console: true
Mit dieser Einstellung werden Protokolle an Standard Out gesendet. Derzeit können Sie Logs nicht sowohl an stdout als auch an eine Logdatei senden.
Protokollierungsebene festlegen
Sie können die folgenden Logebenen festlegen: info, warn und error. Die Informationsebene wird empfohlen. Sie protokolliert alle API-Anfragen und -Antworten und ist die Standardeinstellung.
Protokollintervalle ändern
Sie können diese Intervalle in der Edge Microgateway-Konfigurationsdatei konfigurieren. Weitere Informationen zu Konfigurationsänderungen finden Sie unter Konfigurationsänderungen vornehmen.
Folgende Attribute sind konfigurierbar:
- stats_log_interval: (Standardwert: 60) Intervall in Sekunden, wenn der Statistikeintrag in die API-Logdatei geschrieben wird.
- rotate_interval: (Standardwert: 24) Intervall in Stunden, wenn Logdateien rotiert werden. 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
Hinweis: Archivierte Protokolldateien werden nicht komprimiert. Zu Beginn des Intervalls wird eine neue Logdatei mit einem neuen Zeitstempel erstellt.
Gute Vorgehensweisen für die Pflege von Logdateien
Da sich Protokolldateidaten im Laufe der Zeit ansammeln, empfiehlt Apigee, dass Sie die folgenden Praktiken anwenden:
- Da Logdateien sehr groß werden können, muss im Protokolldateiverzeichnis genügend Speicherplatz vorhanden sein. Weitere Informationen finden Sie in den folgenden Abschnitten: Speicherort von Logdateien und Standardverzeichnis für Logdateien ändern.
- Löschen Sie mindestens einmal pro Woche Protokolldateien oder verschieben Sie sie in ein separates Archivverzeichnis.
- Wenn Ihre Richtlinie zum Löschen von Logs vorgesehen ist, können Sie ältere Logs mit dem Befehl
edgemicro log -c
über die Befehlszeile entfernen.
Benennungskonvention für Logdateien
Jede Edge Microgateway-Instanz erzeugt drei Typen von Protokolldateien:
- api – protokolliert alle Anfragen und Antworten, die über Edge Microgateway fließen. API-Zähler (Statistiken) und Fehler werden ebenfalls in dieser Datei protokolliert.
- err: Protokolliert alles, was an stderr gesendet wird.
- out – Protokolliert alles, was an stdout gesendet wird.
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: Version 2.3.3
Standardmäßig lässt der Logging-Dienst das JSON-Format heruntergeladener Proxys, Produkte und das JSON-Webtoken (JWT) aus. Wenn Sie diese Objekte an die Logdateien ausgeben möchten, legen Sie beim Start von Edge Microgateway DEBUG=*
fest. Beispiel:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
Hinweis : Verwenden Sie unter Windows SET DEBUG=*
.
Inhalt der Protokolldatei "api"
Die Logdatei "api" enthält detaillierte Informationen zum Fluss von Anfragen und Antworten über Edge Microgateway. Die "api"-Protokolldateien haben folgenden Namen:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Für jede Anfrage an Edge Microgateway werden vier Ereignisse in der Logdatei „api“ erfasst:
- Eingehende Anfrage vom Client
- Ausgehende Anfrage an das Ziel
- Eingehende Antwort vom Ziel
- Ausgehende Antwort an den Client
Jeder dieser einzelnen Einträge wird in einer Kurzschreibweise dargestellt, um die Logdateien kompakter zu machen. Hier sind vier Beispieleinträge für jedes der vier Ereignisse. In der Logdatei sehen sie so aus (die Zeilennummern dienen nur zu Referenzzwecken im Dokument und sind in der Logdatei nicht enthalten).
(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 uns diese im Einzelnen an:
1. Beispiel für eine vom Client eingehende Anfrage:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Kann je nach Logebene „info“, „warn“ oder „error“ sein. Kann Statistiken für einen Statistikeintrag sein, warnen bei Warnungen oder Fehler für Fehler.
- req: Identifiziert das Ereignis. In diesem Fall eine Anfrage vom Client.
- m – Das in der Anfrage verwendete HTTP-Verb.
- u: Der Teil der URL, der dem Basispfad folgt.
- h – Der Host und die Portnummer, die Edge Microgateway überwacht.
- r – Der Remote-Host und Port, von dem die Clientanfrage stammt.
- i – Die Anfrage-ID. Alle vier Ereigniseinträge haben dieselbe ID. Jeder Anfrage wird eine eindeutige Anfrage-ID zugewiesen. Die Korrelation von Logdatensätzen nach Anfrage-ID kann wertvolle Informationen zur Latenz des Ziels liefern.
- d – Die Dauer in Millisekunden, seit der Anfrage von Edge Microgateway empfangen wurde. Im obigen Beispiel wurde die Antwort des Ziels für Anfrage 0 nach 7 Millisekunden (Zeile 3) empfangen und die Antwort wurde nach weiteren 4 Millisekunden an den Client gesendet (Zeile 4). Mit anderen Worten, die gesamte Anfragelatenz betrug 11 Millisekunden, davon 7 Millisekunden vom Ziel und 4 Millisekunden vom Edge Microgateway selbst.
2. Beispiel für eine ausgehende 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. Kann je nach Logebene „info“, „warn“ oder „error“ sein. Kann Statistiken für einen Statistikeintrag sein, warnen bei Warnungen oder Fehler für Fehler.
- treq – Kennzeichnet das Ereignis. In diesem Fall Zielanfrage.
- m – Das in der Zielanfrage verwendete HTTP-Verb.
- u: Der Teil der URL, der dem Basispfad folgt.
- h – Host und Portnummer des Back-End-Ziels.
- i – die ID des Logeintrags. Alle vier Ereigniseinträge haben diese ID.
3. Beispiel für eingehende Antwort vom Ziel
1436403888672 info tres s=200, d=7, i=0
1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Kann je nach Logebene „info“, „warn“ oder „error“ sein. Kann Statistiken für einen Statistikeintrag sein, warnen bei Warnungen oder Fehler für Fehler.
- tres – Kennzeichnet das Ereignis. In diesem Fall die Zielantwort.
- s – HTTP-Antwortstatus
- d – Dauer in Millisekunden. Die vom Ziel für den API-Aufruf benötigte Zeit.
- i – die ID des Logeintrags. Alle vier Ereigniseinträge haben diese ID.
4. Beispiel für eine ausgehende Antwort an den Client
1436403888676 info res s=200, d=11, i=0
1436403888651 – Unix-Datumsstempel
- info: Hängt vom Kontext ab. Kann je nach Logebene „info“, „warn“ oder „error“ sein. Kann Statistiken für einen Statistikeintrag sein, warnen bei Warnungen oder Fehler für Fehler.
- res – Identifiziert das Ereignis. Antworten Sie in diesem Fall dem Client.
- s – HTTP-Antwortstatus
- d – Dauer in Millisekunden. Dies ist die Gesamtzeit des API-Aufrufs, einschließlich der Zeit, die die Ziel-API benötigt, und die Zeit, die Edge Microgateway selbst benötigt.
- i – die ID des Logeintrags. Alle vier Ereigniseinträge haben diese ID.
Zeitplan für Protokolldateien
Logdateien werden in dem mit dem Konfigurationsattribut rotate_interval angegebenen Intervall rotiert. Einträge werden weiterhin derselben Logdatei hinzugefügt, bis das Rotationsintervall abläuft. Jedes Mal, wenn Edge Microgateway neu gestartet wird, erhält es jedoch eine neue UID und erstellt einen neuen Satz von Logdateien mit dieser UID. Siehe auch Gute Wartungspraktiken für Logdateien.
Konfigurationsreferenz für Edge Microgateway
Speicherort der Konfigurationsdatei
Die in diesem Abschnitt beschriebenen Konfigurationsattribute befinden sich in der Konfigurationsdatei von Edge Microgateway. Weitere Informationen zu Konfigurationsänderungen finden Sie unter Konfigurationsänderungen vornehmen.
Edge_config-Attribute
Diese Einstellungen werden verwendet, um die Interaktion zwischen der Edge Microgateway-Instanz und Apigee Edge zu konfigurieren.
- bootstrap: (Standard: keine) Eine URL, die auf einen Edge Microgateway-spezifischen Dienst verweist, der auf Apigee Edge ausgeführt wird. Edge Microgateway verwendet diesen Dienst für die Kommunikation mit Apigee Edge. Diese URL wird zurückgegeben, wenn Sie den Befehl zum Generieren des öffentlichen/privaten Schlüsselpaars ausführen:
edgemicro genkeys
. Weitere Informationen finden Sie unter Edge Microgateway einrichten und konfigurieren. - jwt_public_key: (Standard: keiner) Eine URL, die auf den Edge Microgateway-Proxy verweist, der auf Apigee Edge bereitgestellt wird. Dieser Proxy dient als Authentifizierungsendpunkt für die Ausstellung signierter Zugriffstokens an Clients. Diese URL wird zurückgegeben, wenn Sie den Befehl edgemicro configure ausführen, um den Proxy bereitzustellen. Weitere Informationen finden Sie unter Edge Microgateway einrichten und konfigurieren.
Edgemicro-Attribute
Mit diesen Einstellungen wird der Edge Microgateway-Prozess konfiguriert.
- port: (Standard: 8000) Die Portnummer, die der Edge Microgateway-Prozess überwacht.
- max_connections: (Standard: -1) Gibt die maximale Anzahl gleichzeitiger eingehender Verbindungen an, die Edge Microgateway empfangen kann. Wenn diese Zahl überschritten wird, wird der folgende Status zurückgegeben:
res.statusCode = 429; // Too many requests
- max_connections_hard: (Standard: -1) Die maximale Anzahl gleichzeitiger Anfragen, die Edge Microgateway empfangen kann, bevor die Verbindung heruntergefahren wird. Diese Einstellung dient dazu, Denial-of-Service-Angriffen vorzubeugen. Legen Sie dafür in der Regel eine Zahl fest, die größer als „max_connections“ ist.
-
logging:
-
level: (Standard: Fehler)
- Info: Protokolliert alle Anfragen und Antworten, die durch eine Edge Microgateway-Instanz fließen.
- warn – protokolliert nur Warnmeldungen.
- error – protokolliert nur Fehlermeldungen.
- dir: (Standard: /var/tmp) Das Verzeichnis, in dem die Logdateien gespeichert sind.
- stats_log_interval: (Standardwert: 60) Intervall in Sekunden, wenn der Statistikeintrag in die API-Logdatei geschrieben wird.
- rotate_interval: (Standardwert: 24) Intervall in Stunden, wenn Logdateien rotiert werden.
-
level: (Standard: Fehler)
- plugins: Plug-ins fügen Funktionen zu Edge Microgateway hinzu. Weitere Informationen zum Entwickeln von Plug-ins finden Sie unter Benutzerdefinierte Plug-ins entwickeln.
- dir: Ein relativer Pfad vom ./gateway-Verzeichnis zum ./plugins-Verzeichnis oder ein absoluter Pfad.
- Sequence: Eine Liste von Plug-in-Modulen, die der Edge Microgateway-Instanz hinzugefügt werden sollen. Die Module werden in der hier angegebenen Reihenfolge ausgeführt.
-
debug : Fügt dem Edge Microgateway-Prozess Remote-Debugging hinzu.
- port: Die Portnummer, die überwacht werden soll. Legen Sie beispielsweise fest, dass Ihr IDE-Debugger diesen Port überwacht.
- args: Argumente für den Fehlerbehebungsprozess. 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, wenn sich etwas geändert hat. Bei der Abfrage werden alle in Edge vorgenommenen Änderungen (Änderungen an Produkten, Microgateway-fähigen Proxys usw.) sowie Änderungen an der lokalen Konfigurationsdatei erfasst.
- disable_config_poll_interval: (Standardeinstellung: false) Wenn Sie diese Option auf true festlegen, wird die automatische Abfrage von Änderungen deaktiviert.
- request_timeout: Legt ein Zeitlimit für Zielanfragen fest. Das Zeitlimit wird in Sekunden festgelegt. Wenn ein Zeitlimit auftritt, antwortet Edge Microgateway mit einem 504-Statuscode. (Version 2.4.x hinzugefügt)
Header-Attribute
Mit diesen Einstellungen wird festgelegt, wie bestimmte HTTP-Header behandelt werden.
- x-forwarded-for: (Standard: true) Setzen Sie diesen Wert auf "false", um zu verhindern, dass "x-forwarded-for"-Header an das Ziel übergeben werden. Wenn sich ein x-forwarded-for-Header in der Anfrage befindet, wird sein Wert in Edge Analytics auf den Client-IP-Wert festgelegt.
- x-forwarded-host: (Standardeinstellung: true) Legen Sie diesen Wert auf "false" fest, um zu verhindern, dass x-forwarded-host-Header an das Ziel übergeben werden.
- x-request-id: (Standardeinstellung: true) Ist auf "false" gesetzt, damit keine x-request-id-Header an das Ziel übergeben werden.
- x-response-time: (Standard: true) Setzen Sie diesen Wert auf "false", um zu verhindern, dass x-response-time-Header an das Ziel übergeben werden.
- via: (Standardeinstellung: true) Legen Sie diesen Wert auf "false" fest, um zu verhindern, dass via-Header an das Ziel übergeben werden.
OAuth-Attribute
Mit diesen Einstellungen wird festgelegt, wie die Clientauthentifizierung von Edge Microgateway erzwungen wird.
- allowNoAuthorization: (Standard: false) Wenn auf „true“ gesetzt, dürfen API-Aufrufe Edge Microgateway ohne Autorisierungsheader passieren. Setzen Sie diesen Wert auf „false“, damit ein Autorisierungsheader erforderlich ist (Standardeinstellung).
- allowInvalidAuthorization: (Standardeinstellung: „false“). Bei Einstellung auf „true“ dürfen API-Aufrufe übergeben werden, wenn das im Autorisierungsheader übergebene Token ungültig oder abgelaufen ist. Setzen Sie diesen Wert auf „false“, damit gültige Tokens erforderlich sind (Standardeinstellung).
- authorization-header: (Standard: Authorization: Bearer) Der Header, mit dem das Zugriffstoken an Edge Microgateway gesendet wird. Sie können die Standardeinstellung ändern, wenn das Ziel den Autorisierungsheader für einen anderen Zweck verwenden muss.
- api-key-header: (Standard: x-api-key) Der Name des Headers oder Abfrageparameters, der zum Übergeben eines API-Schlüssels an Edge Microgateway verwendet wird. Weitere Informationen finden Sie unter API-Schlüssel verwenden.
- keepAuthHeader: (Standardeinstellung: false) Bei Einstellung auf "true" wird der in der Anfrage gesendete Autorisierungsheader an das Ziel übergeben und bleibt erhalten.
- allowOAuthOnly: Wenn diese Richtlinie auf "true" gesetzt ist, muss jede API einen Autorisierungsheader mit einem Inhaberzugriffstoken enthalten. Ermöglicht Ihnen, nur das OAuth-Sicherheitsmodell zuzulassen (unter Wahrung der Abwärtskompatibilität). (4.2.x hinzugefügt)
- allowAPIKeyOnly: Wenn dieser Wert auf "true" gesetzt ist, muss jede API einen x-api-key-Header (oder einen benutzerdefinierten Speicherort) mit einem API-Schlüssel enthalten.So können Sie nur das Sicherheitsmodell des API-Schlüssels zulassen (unter Aufrechterhaltung der Abwärtskompatibilität). (4.2.x hinzugefügt)
Plug-in-spezifische Attribute
Weitere Informationen zu konfigurierbaren Attributen für jedes Plug-in 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 in der zugehörigen Organisation heruntergeladen. Verwenden Sie die folgende Konfiguration, um festzulegen, welche Proxys das Mikrogateway verarbeiten soll. Diese Konfiguration beschränkt die vom Mikrogateway verarbeiteten Proxys beispielsweise auf drei: edgemicro_proxy-1
, edgemicro_proxy-2
und edgemicro_proxy-3
:
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Analysedaten maskieren
Die folgende Konfiguration verhindert, dass Informationen zum Anfragepfad in der Edge-Analyse angezeigt werden. Fügen Sie der Mikrogateway-Konfiguration Folgendes hinzu, um den Anfrage-URI und/oder den Anfragepfad zu maskieren. Der URI besteht aus dem Hostnamen und dem Pfadteil der Anfrage.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
Edge Microgateway hinter einer Unternehmensfirewall einrichten
Unterstützt v4.2.x
Wenn Edge Microgateway hinter einer Firewall installiert ist, kann das Gateway möglicherweise nicht mit Apigee Edge kommunizieren. In diesem Fall haben Sie zwei Möglichkeiten:
Option 1:
Die erste Möglichkeit besteht darin, die Option „edgemicro: proxy_tunnel“ in der Konfigurationsdatei von Microgateway auf „true“ zu setzen:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: true
Wenn proxy_tunnel auf true gesetzt ist, verwendet Edge Microgateway die HTTP-Methode CONNECT, um HTTP-Anfragen über eine einzelne TCP-Verbindung zutunneln. Dasselbe gilt, wenn die Umgebungsvariablen zum Konfigurieren des Proxys TLS aktiviert sind.
Option 2:
Die zweite Option besteht darin, einen Proxy anzugeben und "proxy_tunnel" in der Konfigurationsdatei des Microgateways auf "false" zu setzen. Beispiel:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: false
In diesem Fall können Sie die folgenden Variablen festlegen, um die Hosts für jeden HTTP-Proxy zu steuern, den Sie verwenden möchten, oder um die Hosts, die keine Edge Microgateway-Proxys verarbeiten sollen, zu steuern: HTTP_PROXY, HTTPS_PROXY und NO_PROXY.
Sie können NO_PROXY als durch Kommas getrennte Liste von Domains festlegen, zu denen Edge Microgateway keinen Proxy senden soll. Beispiel:
export NO_PROXY='localhost,localhost:8080'
Legen Sie HTTP_PROXY und HTTPS_PROXY fest, damit der HTTP-Proxy-Endpunkt Edge Microgateway Nachrichten an ihn senden kann. Beispiel:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
Weitere Informationen zu diesen Variablen finden Sie unter:
https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
Weitere Informationen
Edge Microgateway hinter einer Unternehmensfirewall einrichten in der Apigee-Community.
Platzhalter in Microgateway-fähigen Proxys verwenden
Sie können einen oder mehrere „*“-Platzhalter im Basispfad eines edgemicro_*-Proxys (Microgateway-aware) verwenden. Mit dem Basispfad /team/*/members können Clients beispielsweise https://[host]/team/blue/members und https://[host]/team/green/members aufrufen, ohne neue API-Proxys zur Unterstützung neuer Teams erstellen zu müssen. /**/
wird nicht unterstützt.
Wichtig: Apigee unterstützt NICHT die Verwendung eines Platzhalters "*" als erstes Element eines Basispfads. Dies wird beispielsweise NICHT unterstützt: /*/
-Suche.
Fehlerbehebung und Fehlerbehebung
Verbindung zu einem Debugger herstellen
Sie können Edge Microgateway mit einem Debugger wie node-Inspector ausführen. Dies ist nützlich, um Fehler bei benutzerdefinierten Plug-ins zu beheben.
- Starten Sie Edge Microgateway im Debug-Modus neu. Fügen Sie dazu
DEBUG=*
am Anfang des Startbefehls ein. Beispiel:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
Hinweis: Verwenden Sie unter Windows
SET DEBUG=*
. - Starten Sie den Debugger und richten Sie ihn so ein, dass der Debugging-Prozess die Portnummer überwacht.
- Sie können jetzt Schritt für Schritt den Edge Microgateway-Code durchgehen, Haltepunkte, Watch-Ausdrücke festlegen usw.
Sie können Node.js-Standard-Flags für den Debug-Modus angeben. Mit --nolazy
können Sie beispielsweise Fehler bei asynchronem Code beheben.
Protokolldateien prüfen
Prüfen Sie bei Problemen die Protokolldateien auf Ausführungsdetails und Fehlerinformationen. Weitere Informationen finden Sie unter Protokolldateien verwalten.
API-Schlüsselsicherheit verwenden
API-Schlüssel bieten einen einfachen Mechanismus zur Authentifizierung von Clients, die Anfragen an Edge Microgateway senden. Sie können einen API-Schlüssel abrufen, indem Sie den Wert für den Consumer-Schlüssel (auch Client-ID genannt) aus einem Apigee Edge-Produkt kopieren, das den Edge Microgateway-Authentifizierungs-Proxy enthält.
Caching von Schlüsseln
API-Schlüssel werden gegen Inhabertokens ausgetauscht, die im Cache gespeichert werden. Sie können das Caching deaktivieren, indem Sie den Header Cache-Control: no-cache
bei eingehenden Anfragen an Edge Microgateway festlegen.
OAuth2-Tokensicherheit verwenden
Weitere Informationen zur Verwendung eines OAuth-Tokens mit Proxyanfragen finden Sie unter Secure Edge Microgateway.
API-Schlüssel verwenden
Weitere Informationen zur Verwendung von API-Schlüsseln mit Proxyanfragen finden Sie unter Secure Edge Microgateway.
Name des API-Schlüssels konfigurieren
Standardmäßig ist x-api-key
der Name, der für den API-Schlüsselheader oder den Abfrageparameter verwendet wird. Sie können diese Standardeinstellung in der Konfigurationsdatei ändern, wie unter Konfigurationsänderungen vornehmen erläutert.
So ändern Sie beispielsweise den Namen in apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey