Sie lesen gerade die Dokumentation zu Apigee Edge.
Apigee X-Dokumentation aufrufen info
Edge Microgateway 3.3.x
In diesem Thema wird erläutert, wie Sie Edge Microgateway verwalten und konfigurieren.
Edge Microgateway aktualisieren, wenn eine Internetverbindung besteht
In diesem Abschnitt wird beschrieben, wie Sie ein Upgrade einer vorhandenen Installation von Edge Microgateway durchführen. Wenn Sie ohne Internetverbindung arbeiten, lesen Sie den Abschnitt Kann ich Edge Microgateway ohne Internetverbindung installieren?.
Apigee empfiehlt, die vorhandene Konfiguration mit der neuen Version zu testen, bevor Sie Ihre Produktionsumgebung aktualisieren.
- Führen Sie den folgenden
npm-Befehl aus, um ein Upgrade auf die neueste Version von Edge Microgateway durchzuführen:npm upgrade edgemicro -g
Wenn Sie eine bestimmte Version von Edge Microgateway installieren möchten, müssen Sie die Versionsnummer im Installationsbefehl angeben. Wenn Sie beispielsweise Version 3.2.3 installieren möchten, verwenden Sie den folgenden Befehl:
npm install edgemicro@3.2.3 -g
- Prüfen Sie die Versionsnummer. Wenn Sie beispielsweise Version 3.2.3 installiert haben,
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.2.3 - Führen Sie schließlich ein Upgrade auf die neueste Version des edgemicro-auth-Proxys durch:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
Konfigurationsänderungen vornehmen
Die Konfigurationsdateien, die Sie kennen sollten, sind:
- Standard-Systemkonfigurationsdatei
- Standardkonfigurationsdatei für eine neu initialisierte Edge Microgateway-Instanz
- Dynamische Konfigurationsdatei für ausgeführte Instanzen
In diesem Abschnitt werden diese Dateien und die Änderungen, die Sie daran vornehmen können, beschrieben.
Standard-Systemkonfigurationsdatei
Wenn Sie Edge Microgateway installieren, wird hier eine Standardkonfigurationsdatei für das System abgelegt:
prefix/lib/node_modules/edgemicro/config/default.yaml
Dabei ist prefix das npm-Präfixverzeichnis. Wenn Sie dieses Verzeichnis nicht finden können, lesen Sie den Abschnitt
Wo ist Edge Microgateway installiert?.
Wenn Sie die Systemkonfigurationsdatei ändern, müssen Sie Edge Microgateway neu initialisieren, neu konfigurieren und neu starten:
edgemicro initedgemicro configure [params]edgemicro start [params]
Standardkonfigurationsdatei für neu initialisierte Edge Microgateway-Instanzen
Wenn Sie edgemicro init ausführen, wird die oben beschriebene Systemkonfigurationsdatei default.yaml im Verzeichnis ~/.edgemicro abgelegt.
Wenn Sie die Konfigurationsdatei in ~/.edgemicro ändern, müssen Sie Edge Microgateway neu konfigurieren und neu starten:
edgemicro stopedgemicro configure [params]edgemicro start [params]
Dynamische Konfigurationsdatei für ausgeführte 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 die Namen Ihrer Apigee Edge-Organisation und -Umgebung sind. Mit dieser Datei können Sie Konfigurationsänderungen vornehmen und sie dann ohne Ausfallzeit neu laden. Wenn Sie beispielsweise ein Plug-in hinzufügen und konfigurieren, können Sie die Konfiguration neu laden, ohne dass es zu Ausfallzeiten kommt.
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 Schlüssel, der zuvor vom Befehl „configure“ zurückgegeben wurde.
- $SECRET ist der Schlüssel, der zuvor vom Befehl „configure“ zurückgegeben wurde.
Beispiel:
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
Wenn Edge Microgateway beendet wird:
- Edge Microgateway neu starten:
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 Schlüssel, der zuvor vom Befehl „configure“ zurückgegeben wurde.
- $SECRET ist der Schlüssel, der zuvor vom Befehl „configure“ zurückgegeben wurde.
Beispiel:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
Hier sehen Sie 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 Befehlszeilenschnittstellenbefehle, 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_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_SECRET
Das Festlegen dieser Variablen ist optional. Wenn Sie sie festlegen, müssen Sie ihre Werte nicht angeben, wenn Sie die Befehlszeilenschnittstelle (Command-Line Interface, CLI) zum Konfigurieren und Starten von Edge Microgateway verwenden.
SSL auf dem Edge Microgateway-Server konfigurieren
In den folgenden Videos erfahren Sie, wie Sie TLS in Apigee Edge Microgateway konfigurieren:
| Video | Beschreibung |
|---|---|
| One-Way-Northbound-TLS konfigurieren | Informationen zum Konfigurieren von TLS in Apigee Edge Microgateway. In diesem Video erhalten Sie einen Überblick über TLS und seine Bedeutung. Außerdem wird TLS in Edge Microgateway vorgestellt und gezeigt, wie Sie Northbound One-Way-TLS konfigurieren. |
| Bidirektionales Northbound-TLS konfigurieren | Dies ist das zweite Video zur Konfiguration von TLS in Apigee Edge Microgateway. In diesem Video wird erläutert, wie Sie die bidirektionale TLS-Verbindung in Richtung Norden konfigurieren. |
| One-Way- und Two-Way-Southbound-TLS konfigurieren | In diesem dritten Video zur Konfiguration von TLS in Apigee Edge Microgateway wird erläutert, wie Sie die unidirektionale und bidirektionale TLS für Southbound konfigurieren. |
Sie können den Microgateway-Server so konfigurieren, dass SSL verwendet wird. Wenn SSL konfiguriert ist, können Sie APIs über Edge Microgateway mit dem Protokoll „https“ aufrufen, z. B. so:
https://localhost:8000/myapi
So konfigurieren Sie SSL auf dem Microgateway-Server:
- Generieren oder beziehen Sie ein SSL-Zertifikat und einen Schlüssel mit dem openssl-Tool oder einer anderen Methode Ihrer Wahl.
- Fügen Sie der Edge Microgateway-Konfigurationsdatei das Attribut
edgemicro:sslhinzu. Eine vollständige Liste der Optionen 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. Folgen Sie der Anleitung unter Konfigurationsänderungen vornehmen, je nachdem, welche Konfigurationsdatei Sie bearbeitet haben: die Standarddatei oder die Laufzeitkonfigurationsdatei.
Hier sehen Sie ein Beispiel für den edgemicro-Abschnitt der Konfigurationsdatei mit konfigurierter SSL-Verschlüsselung:
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
Hier 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 mit der Passphrase für den privaten Schlüssel oder die PFX-Datei. |
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 |
Wenn „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 SNI-TLS-Erweiterung (Server Name Indication). |
requestCert |
„true“ für bidirektionales SSL, „false“ für unidirektionales SSL |
Client-SSL/TLS-Optionen verwenden
Sie können Edge Microgateway so konfigurieren, dass es beim Herstellen einer Verbindung zu Zielendpunkten als TLS- oder SSL-Client fungiert. Verwenden Sie in der Microgateway-Konfigurationsdatei das Element „targets“, um SSL/TLS-Optionen festzulegen. Sie können mehrere spezifische Ziele angeben. Unten finden Sie ein Beispiel mit mehreren Zielvorhaben.
In diesem Beispiel werden Einstellungen angegeben, 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: trueIn 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: trueHier ein Beispiel für TLS:
edgemicro:
...
targets:
- host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueWenn Sie TLS/SSL-Einstellungen auf mehrere bestimmte Ziele anwenden möchten, müssen Sie den ersten Host in der Konfiguration als „leer“ angeben. Dadurch werden universelle Anfragen ermöglicht. Anschließend können Sie bestimmte Hosts in beliebiger Reihenfolge angeben. In diesem Beispiel werden die Einstellungen auf mehrere bestimmte Hosts angewendet:
targets:
- host: ## Note that this value must be "empty"
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: true
- host: 'myserver1.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
rejectUnauthorized: true
- host: 'myserver2.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
rejectUnauthorized: trueHier 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 mit der Passphrase für den privaten Schlüssel oder die PFX-Datei. |
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 |
Wenn „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 SNI-TLS-Erweiterung (Server Name Indication). |
„edgemicro-auth“-Proxy anpassen
Standardmäßig verwendet Edge Microgateway einen Proxy, der in 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 Unterstützung für benutzerdefinierte Ansprüche in einem JSON Web Token (JWT) hinzuzufügen, das Ablaufdatum des Tokens zu konfigurieren und Aktualisierungstokens zu generieren. Weitere Informationen finden Sie auf der edgemicro-auth-Seite auf GitHub.
Benutzerdefinierten Authentifizierungsdienst verwenden
Standardmäßig verwendet Edge Microgateway einen Proxy, der in 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 einen eigenen benutzerdefinierten Dienst für die Authentifizierung verwenden möchten, ändern Sie den Wert authUri in der Konfigurationsdatei, sodass er auf Ihren Dienst verweist. Sie haben beispielsweise einen Dienst, der LDAP zur Identitätsbestätigung verwendet.
Logdateien verwalten
Edge Microgateway protokolliert Informationen zu jeder Anfrage und Antwort. Logdateien enthalten nützliche Informationen für das Debugging und die Fehlerbehebung.
Wo werden Logdateien gespeichert?
Standardmäßig werden Logdateien in /var/tmp gespeichert.
Standardverzeichnis für Logdateien ändern
Das Verzeichnis, in dem Logdateien gespeichert werden, wird in der Edge Microgateway-Konfigurationsdatei angegeben. Weitere Informationen 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 dir, um ein anderes Logdateiverzeichnis anzugeben.
Logs an die Konsole senden
Sie können das Logging so konfigurieren, dass Loginformationen an die Standardausgabe gesendet werden, anstatt in eine Logdatei. Setzen Sie das Flag to_console so auf „true“:
edgemicro:
logging:
to_console: trueMit dieser Einstellung werden Logs an die Standardausgabe gesendet. Derzeit können Sie Protokolle nicht sowohl an stdout als auch an eine Protokolldatei senden.
Logebene festlegen
Sie geben die zu verwendende Protokollebene in der edgemicro-Konfiguration an. Eine vollständige Liste der Log-Ebenen und ihrer Beschreibungen finden Sie unter edgemicro-Attribute.
Die folgende Konfiguration legt beispielsweise die Logging-Stufe auf debug fest:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: debug dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
Protokollierungsintervalle ändern
Sie können diese Intervalle in der Edge Microgateway-Konfigurationsdatei konfigurieren. Weitere Informationen finden Sie unter Konfigurationsänderungen vornehmen.
Die konfigurierbaren Attribute sind:
- stats_log_interval: (Standard: 60) Intervall in Sekunden, in dem der Statistikdatensatz in die API-Logdatei geschrieben wird.
- rotate_interval: (Standard: 24) Intervall in Stunden, in dem 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
Strenge Berechtigungen für Logdateien lockern
Standardmäßig generiert Edge Microgateway die Anwendungslogdatei (api-log.log) mit der Dateiberechtigungsebene 0600. Mit dieser Berechtigungsstufe können externe Anwendungen oder Nutzer die Protokolldatei nicht lesen. Wenn Sie diese strenge Berechtigungsstufe lockern möchten, legen Sie logging:disableStrictLogFile auf true fest. Wenn dieses Attribut true ist, wird die Protokolldatei mit der Dateiberechtigung 0755 erstellt. Wenn false oder das Attribut nicht angegeben ist, wird standardmäßig die Berechtigung 0600 verwendet.
In Version 3.2.3 hinzugefügt.
Beispiel:
edgemicro: logging: disableStrictLogFile: true
Bewährte Vorgehensweisen für die Wartung von Protokolldateien
Da sich im Laufe der Zeit immer mehr Protokolldateidaten ansammeln, empfiehlt Apigee die folgenden Vorgehensweisen:
- Da Protokolldateien recht groß werden können, sollte das Protokolldateiverzeichnis ausreichend Speicherplatz haben. Weitere Informationen finden Sie in den Abschnitten Speicherort von Logdateien und Standardverzeichnis für Logdateien ändern.
- Löschen oder verschieben Sie Protokolldateien mindestens einmal pro Woche in ein separates Archivverzeichnis.
- Wenn Sie Logs gemäß Ihrer Richtlinie löschen möchten, können Sie den CLI-Befehl
edgemicro log -cverwenden, um ältere Logs zu entfernen (bereinigen).
Namenskonvention für Logdateien
Für jede Edge Microgateway-Instanz wird eine Protokolldatei mit der Erweiterung .log erstellt. Die Namenskonvention für Logdateien lautet so:
edgemicro-HOST_NAME-INSTANCE_ID-api.log
Beispiel:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
Inhalt von Logdateien
Hinzugefügt in Version 2.3.3
Standardmäßig werden im Protokollierungsdienst das JSON der heruntergeladenen Proxys, Produkte und das JSON Web Token (JWT) ausgelassen. Wenn Sie diese Objekte in der Konsole ausgeben möchten, legen Sie beim Starten von Edge Microgateway das Befehlszeilenflag DEBUG=* fest. Beispiel:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
Inhalt der Logdatei „api“
Die Logdatei „api“ enthält detaillierte Informationen zum Fluss von Anfragen und Antworten durch Edge Microgateway. Die Logdateien für die API haben folgende 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 Kunden
- Ausgehende Anfrage an das Ziel
- Eingehende Antwort vom Ziel
- Ausgehende Antwort an den Client
Jeder dieser separaten Einträge wird in einer Kurzschreibweise dargestellt, um die Logdateien kompakter zu machen. Hier sind vier Beispiel-Einträge, die die vier Ereignisse repräsentieren. In der Protokolldatei sehen sie so aus (die Zeilennummern dienen nur als Referenz im Dokument und werden nicht in der Protokolldatei angezeigt).
(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 die einzelnen Optionen 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-Zeitstempel
- info: Die Logging-Ebene. Dieser Wert hängt vom Kontext der Transaktion und der in der
edgemicro-Konfiguration festgelegten Protokollierungsebene ab. Protokollierungsstufe festlegen Bei Statistikdatensätzen ist die Ebene aufstatsfestgelegt. Statistikdatensätze werden in einem regelmäßigen Intervall gemeldet, das mit derstats_log_interval-Konfiguration festgelegt wird. Weitere Informationen - req: Kennzeichnet das Ereignis. In diesem Fall eine Anfrage vom Client.
- m: Das in der Anfrage verwendete HTTP-Verb.
- u: Der Teil der URL nach dem Basispfad.
- h: Der Host und die Portnummer, die von Edge Microgateway überwacht werden.
- 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. Wenn Sie Logdatensätze anhand der Anfrage-ID korrelieren, erhalten Sie wertvolle Informationen zur Latenz des Ziels.
- d: Die Dauer in Millisekunden seit dem Empfang der Anfrage durch Edge Microgateway. Im obigen Beispiel wurde die Antwort des Ziels auf Anfrage 0 nach 7 Millisekunden empfangen (Zeile 3) und nach weiteren 4 Millisekunden an den Client gesendet (Zeile 4). Die Gesamtlatenz der Anfrage betrug also 11 Millisekunden, von denen 7 Millisekunden auf das Ziel und 4 Millisekunden auf Edge Microgateway selbst entfielen.
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-Zeitstempel
- info: Die Logging-Ebene. Dieser Wert hängt vom Kontext der Transaktion und der in der
edgemicro-Konfiguration festgelegten Protokollierungsebene ab. Protokollierungsstufe festlegen Bei Statistikdatensätzen ist die Ebene aufstatsfestgelegt. Statistikdatensätze werden in einem regelmäßigen Intervall gemeldet, das mit derstats_log_interval-Konfiguration festgelegt wird. Weitere Informationen - treq: Gibt das Ereignis an. In diesem Fall die Zielanfrage.
- m: Das in der Zielanfrage verwendete HTTP-Verb.
- u: Der Teil der URL nach dem Basispfad.
- h: Der Host und die Portnummer des Backend-Ziels.
- i: Die ID des Logeintrags. Alle vier Ereigniseinträge haben dieselbe ID.
3. Beispiel für eine eingehende Antwort vom Ziel
1436403888672 info tres s=200, d=7, i=0
1436403888651 – Unix-Zeitstempel
- info: Die Logging-Ebene. Dieser Wert hängt vom Kontext der Transaktion und der in der
edgemicro-Konfiguration festgelegten Protokollierungsebene ab. Protokollierungsstufe festlegen Bei Statistikdatensätzen ist die Ebene aufstatsfestgelegt. Statistikdatensätze werden in einem regelmäßigen Intervall gemeldet, das mit derstats_log_interval-Konfiguration festgelegt wird. Weitere Informationen - tres: Gibt das Ereignis an. In diesem Fall „Ziel-Antwort“.
- s: Der HTTP-Antwortstatus.
- d: Die Dauer in Millisekunden. Die Zeit, die das Ziel für den API-Aufruf benötigt hat.
- i: Die ID des Logeintrags. Alle vier Ereigniseinträge haben dieselbe ID.
4. Beispiel für eine ausgehende Antwort an den Kunden
1436403888676 info res s=200, d=11, i=0
1436403888651 – Unix-Zeitstempel
- info: Die Logging-Ebene. Dieser Wert hängt vom Kontext der Transaktion und der in der
edgemicro-Konfiguration festgelegten Protokollierungsebene ab. Protokollierungsstufe festlegen Bei Statistikdatensätzen ist die Ebene aufstatsfestgelegt. Statistikdatensätze werden in einem regelmäßigen Intervall gemeldet, das mit derstats_log_interval-Konfiguration festgelegt wird. Weitere Informationen - res: Gibt das Ereignis an. In diesem Fall antworten Sie dem Kunden.
- s: Der HTTP-Antwortstatus.
- d: Die Dauer in Millisekunden. Dies ist die Gesamtzeit, die für den API-Aufruf benötigt wird, einschließlich der Zeit, die von der Ziel-API und von Edge Microgateway selbst benötigt wird.
- i: Die ID des Logeintrags. Alle vier Ereigniseinträge haben dieselbe ID.
Zeitplan für Protokolldateien
Logdateien werden in dem Intervall rotiert, das durch das Konfigurationsattribut rotate_interval angegeben wird. Einträge werden weiterhin in dieselbe Logdatei aufgenommen, bis das Rotationsintervall abläuft. Bei jedem Neustart von Edge Microgateway wird jedoch eine neue UID zugewiesen und es wird ein neuer Satz von Logdateien mit dieser UID erstellt. Weitere Informationen finden Sie unter Best Practices für die Wartung von Logdateien.
Fehlermeldungen
Einige Logeinträge enthalten Fehlermeldungen. Informationen dazu, wo und warum die Fehler auftreten, finden Sie in der Edge Microgateway-Fehlerreferenz.
Edge Microgateway-Konfigurationsreferenz
Speicherort der Konfigurationsdatei
Die in diesem Abschnitt beschriebenen Konfigurationsattribute befinden sich in der Konfigurationsdatei von Edge Microgateway. Weitere Informationen finden Sie unter Konfigurationsänderungen vornehmen.
edge_config-Attribute
Mit diesen Einstellungen wird die Interaktion zwischen der Edge Microgateway-Instanz und Apigee Edge konfiguriert.
- bootstrap: (Standard: none) Eine URL, die auf einen Edge Microgateway-spezifischen Dienst verweist, der in 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: none) Eine URL, die auf den Edge Microgateway-Proxy verweist, der in Apigee Edge bereitgestellt wird. Dieser Proxy dient als Authentifizierungsendpunkt für die Ausstellung signierter Zugriffstokens für Clients. Diese URL wird zurückgegeben, wenn Sie den Befehl zum Bereitstellen des Proxys ausführen: edgemicro configure. Weitere Informationen finden Sie unter Edge Microgateway einrichten und konfigurieren.
- quotaUri: Legen Sie diese Konfigurationseigenschaft fest, wenn Sie Kontingente über den
edgemicro-auth-Proxy verwalten möchten, der in Ihrer Organisation bereitgestellt wird. Wenn dieses Attribut nicht festgelegt ist, wird für den Kontingentendpunkt standardmäßig der interne Edge Microgateway-Endpunkt verwendet.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, die vom Edge Microgateway-Prozess überwacht wird.
- 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 geschlossen wird. Diese Einstellung soll Denial-of-Service-Angriffe verhindern. In der Regel legen Sie dafür eine Zahl fest, die größer als „max_connections“ ist.
-
Logging:
-
level: (Standard: error)
- info: (Empfohlen) Loggt alle Anfragen und Antworten, die über eine Edge Microgateway-Instanz laufen.
- warn: Es werden nur Warnmeldungen protokolliert.
- error: Es werden nur Fehlermeldungen protokolliert.
- debug: Debug-Nachrichten werden zusammen mit Info-, Warn- und Fehlermeldungen protokolliert.
- trace: Protokolliert Trace-Informationen für Fehler zusammen mit Info-, Warn- und Fehlermeldungen.
- none: Es wird keine Logdatei erstellt.
- dir: (Standard: /var/tmp) Das Verzeichnis, in dem Logdateien gespeichert werden.
- stats_log_interval: (Standard: 60) Intervall in Sekunden, in dem der Statistikdatensatz in die API-Logdatei geschrieben wird.
- rotate_interval: (Standard: 24) Intervall in Stunden, in dem Logdateien rotiert werden.
-
level: (Standard: error)
- Plug-ins: Plug-ins fügen Edge Microgateway Funktionen hinzu. Weitere Informationen zum Entwickeln von Plug-ins finden Sie unter Benutzerdefinierte Plug-ins entwickeln.
- dir: Ein relativer Pfad vom Verzeichnis „./gateway“ zum Verzeichnis „./plugins“ oder ein absoluter Pfad.
- sequence: Eine Liste von Plug‑in-Modulen, die Ihrer Edge Microgateway-Instanz hinzugefügt werden sollen. 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. Legen Sie beispielsweise den IDE-Debugger so fest, dass er auf diesem Port wartet.
- args: Argumente für den Debugging-Prozess. Beispiel:
args --nolazy
- config_change_poll_interval: (Standard:600 Sekunden): Edge Microgateway lädt regelmäßig eine neue Konfiguration und führt einen Reload aus, wenn sich etwas geändert hat. Beim Polling werden alle Änderungen, die in Edge vorgenommen wurden (Änderungen an Produkten, Microgateway-kompatiblen Proxys usw.), sowie Änderungen an der lokalen Konfigurationsdatei erfasst.
- disable_config_poll_interval (Standard: „false“): Auf true setzen, um das automatische Abrufen von Änderungen zu deaktivieren.
- request_timeout: Legt ein Zeitlimit für Zielanfragen fest. Das Zeitlimit wird in Sekunden festgelegt. Wenn ein Zeitlimit auftritt, antwortet Edge Microgateway mit dem Statuscode 504. (Version 2.4.x hinzugefügt)
- keep_alive_timeout: Mit dieser Eigenschaft können Sie das Zeitlimit für Edge Microgateway in Millisekunden festlegen. (Standard: 5 Sekunden) (Hinzugefügt in Version 3.0.6)
- headers_timeout: Mit diesem Attribut wird die Zeit (in Millisekunden) begrenzt, die der HTTP-Parser wartet, bis er die vollständigen HTTP-Header empfängt.
Beispiel:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
Intern wird mit dem Parameter das Node.js-Attribut
Server.headersTimeoutfür Anfragen festgelegt. Standard: 5 Sekunden mehr als die mitedgemicro.keep_alive_timeoutfestgelegte Zeit. Diese Standardeinstellung verhindert, dass Load Balancer oder Proxys die Verbindung fälschlicherweise trennen.) (Version 3.1.1 hinzugefügt) - noRuleMatchAction: (String) Die erforderliche Aktion (Zugriff erlauben oder ablehnen), wenn die im
accesscontrol-Plugin angegebene Regel nicht aufgelöst wird (keine Übereinstimmung). Gültige Werte:ALLOWoderDENYStandard:ALLOW(Hinzugefügt: v3.1.7) - enableAnalytics (Standardeinstellung: „true“): Setzen Sie das Attribut auf false, um zu verhindern, dass das Analytics-Plug-in geladen wird. In diesem Fall werden keine Aufrufe an Apigee Edge Analytics ausgeführt. Wenn sie auf true gesetzt ist oder dieses Attribut nicht angegeben wird, funktioniert das Analytics-Plug-in wie gewohnt. Weitere Informationen finden Sie unter edgemicro-Attribute. (Version 3.1.8 hinzugefügt)
Beispiel:
edgemicro enableAnalytics=false|true
- on_target_response_abort: Mit diesem Attribut können Sie das Verhalten von Edge Microgateway steuern, wenn die Verbindung zwischen dem Client (Edge Microgateway) und dem Zielserver vorzeitig geschlossen wird.
Wert Beschreibung Standard Wenn on_target_response_abortnicht angegeben ist, wird die Antwort standardmäßig abgeschnitten, ohne dass ein Fehler angezeigt wird. In Logdateien wird eine Warnmeldung mittargetResponse abortedund dem Antwortcode 502 angezeigt.appendErrorToClientResponseBodyDer benutzerdefinierte Fehler TargetResponseAbortedwird an den Client zurückgegeben. In Logdateien wird eine Warnmeldung mittargetResponse abortedund dem Antwortcode 502 angezeigt. Außerdem wird der FehlerTargetResponseAbortedmit der MeldungTarget response ended prematurely.protokolliert.abortClientRequestEdge Microgateway bricht die Anfrage ab und eine Warnung wird in die Logdateien geschrieben: TargetResponseAbortedmit dem Anfragestatuscode 502.
Beispiel:
edgemicro: on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest
Headerattribute
Mit diesen Einstellungen wird konfiguriert, wie bestimmte HTTP-Header behandelt werden.
- x-forwarded-for: (Standard: „true“) Auf „false“ setzen, um zu verhindern, dass x-forwarded-for-Header an das Ziel übergeben werden. Wenn in der Anfrage ein „x-forwarded-for“-Header vorhanden ist, wird sein Wert in Edge Analytics auf den „client-ip“-Wert festgelegt.
- x-forwarded-host: (Standard: true) Auf „false“ setzen, um zu verhindern, dass x-forwarded-host-Header an das Ziel übergeben werden.
- x-request-id: (Standard: „true“) Auf „false“ setzen, um zu verhindern, dass x-request-id-Header an das Ziel übergeben werden.
- x-response-time: (Standardwert: „true“) Auf „false“ setzen, um zu verhindern, dass x-response-time-Header an das Ziel übergeben werden.
- via: (Standardwert: „true“) Auf „false“ setzen, um zu verhindern, dass „via“-Header an das Ziel übergeben werden.
oauth-Attribute
Mit diesen Einstellungen wird konfiguriert, wie die Clientauthentifizierung von Edge Microgateway erzwungen wird.
- allowNoAuthorization: (Standard: „false“) Wenn diese Option auf „true“ gesetzt ist, dürfen API-Aufrufe Edge Microgateway ohne Autorisierungsheader durchlaufen. Setzen Sie diesen Wert auf „false“, um einen Autorisierungsheader zu erzwingen (Standard).
- allowInvalidAuthorization: (Standard: „false“) Wenn auf „true“ gesetzt, dürfen API-Aufrufe durchgelassen werden, wenn das im Autorisierungsheader übergebene Token ungültig oder abgelaufen ist. Setzen Sie diesen Wert auf „false“, um gültige Tokens zu erzwingen (Standard).
- authorization-header: (Standard: Authorization: Bearer) Der Header, der zum Senden des Zugriffstokens an Edge Microgateway verwendet wird. Sie können den Standard ä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. Siehe auch API-Schlüssel verwenden.
- keep-authorization-header: (Standard: „false“) Wenn dieser Wert auf „true“ gesetzt ist, wird der in der Anfrage gesendete Authorization-Header an das Ziel weitergeleitet (er bleibt erhalten).
- allowOAuthOnly: Wenn auf „true“ gesetzt, muss jede API einen Autorisierungs-Header mit einem Bearer-Zugriffstoken enthalten. Damit können Sie nur das OAuth-Sicherheitsmodell zulassen (bei gleichzeitiger Abwärtskompatibilität). (Version 2.4.x hinzugefügt)
- allowAPIKeyOnly: Wenn auf „true“ gesetzt, muss jede API einen x-api-key-Header (oder einen benutzerdefinierten Speicherort) mit einem API-Schlüssel enthalten.So können Sie nur das API-Schlüssel-Sicherheitsmodell zulassen (wobei die Abwärtskompatibilität erhalten bleibt). (Hinzugefügt in Version 2.4.x)
- gracePeriod: Mit diesem Parameter lassen sich Fehler vermeiden, die durch geringfügige Abweichungen zwischen der Systemuhr und den im JWT-Autorisierungstoken angegebenen Zeiten „Not Before“ (nbf) oder „Issued At“ (iat) verursacht werden. Legen Sie diesen Parameter auf die Anzahl der Sekunden fest, die für solche Abweichungen zulässig sind. (Version 2.5.7 hinzugefügt)
Plug-in-spezifische Attribute
Weitere Informationen zu konfigurierbaren Attributen für die einzelnen Plug-ins finden Sie unter „Plug-ins verwenden“.
Proxys filtern
Sie können filtern, welche Microgateway-kompatiblen Proxys von einer Edge Microgateway-Instanz verarbeitet werden.
Wenn Edge Microgateway gestartet wird, werden alle Microgateway-kompatiblen Proxys in der Organisation heruntergeladen, mit der es verknüpft ist. Verwenden Sie die folgende Konfiguration, um einzuschränken, welche Proxys vom Microgateway verarbeitet werden. Diese Konfiguration beschränkt die Proxys, die vom Microgateway verarbeitet werden, auf drei: edgemicro_proxy-1, edgemicro_proxy-2 und edgemicro_proxy-3:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
Produkte nach Namen filtern
Verwenden Sie die folgende Konfiguration, um die Anzahl der API-Produkte zu begrenzen, die Edge Microgateway herunterlädt und verarbeitet. Wenn Sie heruntergeladene Produkte filtern möchten, fügen Sie den Abfrageparameter productnamefilter der in der Edge Microgateway-Datei *.config.yaml aufgeführten /products API hinzu. 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 Abfrageparameters muss im Format eines regulären Ausdrucks angegeben und URL-codiert sein. Der reguläre Ausdruck ^[Ee]dgemicro.*$ erfasst beispielsweise Namen wie „edgemicro-test-1“, „edgemicro_demo“ und „Edgemicro_New_Demo“. Der URL-codierte Wert, der für die Verwendung im Abfrageparameter geeignet ist, lautet: %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":[
]
}
]
}Produkte nach benutzerdefinierten Attributen filtern
So filtern Sie Produkte anhand benutzerdefinierter Attribute:
- Wählen Sie in der Edge-Benutzeroberfläche den Proxy edgemicro_auth in der Organisation/Umgebung aus, in der Sie Edge Microgateway konfiguriert haben.
- Öffnen Sie auf dem Tab „Entwickeln“ die JavaCallout-Richtlinie im Editor.
- Fügen Sie ein benutzerdefiniertes Attribut mit dem Schlüssel
products.filter.attributesund einer durch Kommas getrennten Liste von Attributnamen hinzu. Nur Produkte, die einen der benutzerdefinierten Attributnamen enthalten, werden an Edge Microgateway zurückgegeben. - Sie können die Prüfung, ob das Produkt für die aktuelle Umgebung aktiviert ist, optional deaktivieren, indem Sie das benutzerdefinierte Attribut
products.filter.env.enableauffalsesetzen. Der Standardwert ist „True“. - (Nur Private Cloud) Wenn Sie Edge für Private Cloud verwenden, legen Sie die Eigenschaft
org.noncpsauftruefest, um Produkte für Nicht-CPS-Umgebungen abzurufen.
Beispiel:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout">
<DisplayName>JavaCallout</DisplayName>
<FaultRules/>
<Properties>
<Property name="products.filter.attributes">attrib.one, attrib.two</Property>
<Property name="products.filter.env.enable">false</Property>
<Property name="org.noncps">true</Property>
</Properties>
<ClassName>io.apigee.microgateway.javacallout.Callout</ClassName>
<ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL>
</JavaCallout>Produkte nach Widerrufsstatus filtern
API-Produkte haben drei Statuscodes: „Ausstehend“, „Genehmigt“ und „Widerrufen“. Dem Proxy edgemicro-auth wurde in der Richtlinie zum Festlegen von JWT-Variablen eine neue Eigenschaft namens allowProductStatus hinzugefügt. So filtern Sie API-Produkte, die im JWT aufgeführt sind, mit dieser Eigenschaft:
- Öffnen Sie den Proxy edgemicro-auth im Apigee-Proxy-Editor.
- Fügen Sie der XML-Datei der SetJWTVariables-Richtlinie die
allowProductStatus-Eigenschaft hinzu und geben Sie eine durch Kommas getrennte Liste der Statuscodes an, nach denen gefiltert werden soll. So filtern Sie beispielsweise nach dem Status Ausstehend und Widerrufen:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Javascript timeLimit="20000" async="false" continueOnError="false" enabled="true" name="Set-JWT-Variables"> <DisplayName>Set JWT Variables</DisplayName> <FaultRules/> <Properties> <Property name="allowProductStatus">Pending,Revoked</Property> </Properties> <ResourceURL>jsc://set-jwt-variables.js</ResourceURL> </Javascript>
Wenn Sie nur genehmigte Produkte auflisten möchten, legen Sie die Property so fest:
<Property name="allowProductStatus">Approved</Property>
- Speichern Sie den Proxy.
Wenn das Tag Property nicht vorhanden ist, werden Produkte mit allen Statuscodes im JWT aufgeführt.
Wenn Sie diese neue Property verwenden möchten, müssen Sie den edgemicro-auth-Proxy aktualisieren.
Häufigkeit des Analytics-Push konfigurieren
Mit diesen Konfigurationsparametern können Sie die Häufigkeit steuern, mit der Edge Microgateway Analysedaten an Apigee sendet:
- bufferSize (Optional): Die maximale Anzahl von Analytics-Datensätzen, die der Puffer aufnehmen kann, bevor die ältesten Datensätze gelöscht werden. Standard: 10.000
- batchSize (Optional): Die maximale Größe eines Batches von Analysedatensätzen, die an Apigee gesendet werden. Standard: 500
- flushInterval (Optional): Die Anzahl der Millisekunden zwischen den einzelnen Flushes eines Batches von Analysedatensätzen, die an Apigee gesendet werden. Standard: 5.000
Beispiel:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
Analysedaten maskieren
Die folgende Konfiguration verhindert, dass Informationen zum Anfragepfad in Edge-Analysen angezeigt werden. Fügen Sie der Microgateway-Konfiguration Folgendes hinzu, um den Anfrage-URI und/oder den Anfragepfad zu maskieren. 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 Analytics-Plug-in so konfigurieren, dass ein bestimmter API-Pfad als separater Proxy in den Edge Analytics-Dashboards angezeigt wird. Sie können beispielsweise eine Systemdiagnose-API im Dashboard trennen, um Verwechslungen mit tatsächlichen API-Proxy-Aufrufen zu vermeiden. Im Analytics-Dashboard folgen getrennte Proxys diesem Namensmuster:
edgemicro_proxyname-health
Die folgende Abbildung zeigt zwei separate Proxys im Analytics-Dashboard: edgemicro_hello-health und edgemicro_mock-health:

Mit diesen Parametern können Sie relative und absolute Pfade im Analytics-Dashboard als separate Proxys trennen:
- relativePath (Optional): Gibt einen relativen Pfad an, der im Analytics-Dashboard getrennt werden soll. Wenn Sie beispielsweise
/healthcheckangeben, werden alle API-Aufrufe, die den Pfad/healthcheckenthalten, im Dashboard alsedgemicro_proxyname-healthangezeigt. Beachten Sie, dass bei diesem Flag der Proxy-Basispfad ignoriert wird. Wenn Sie die Trennung anhand eines vollständigen Pfads, einschließlich des Basispfads, vornehmen möchten, verwenden Sie das FlagproxyPath. - proxyPath (Optional): Gibt einen vollständigen API-Proxy-Pfad an, einschließlich des Proxy-Basispfads, der im Analysedashboard getrennt werden soll. Wenn Sie beispielsweise
/mocktarget/healthcheckangeben, wobei/mocktargetder Proxy-Basispfad ist, werden alle API-Aufrufe mit dem Pfad/mocktarget/healthcheckim Dashboard alsedgemicro_proxyname-healthangezeigt.
In der folgenden Konfiguration wird beispielsweise jeder API-Pfad, der /healthcheck enthält, vom Analyse-Plug-in getrennt. Das bedeutet, dass /foo/healthcheck und /foo/bar/healthcheck im Analysedashboard als separater Proxy namens edgemicro_proxyname-health dargestellt werden.
analytics:
uri: >-
https://xx/edgemicro/ax/org/docs/environment/test
bufferSize: 100
batchSize: 50
flushInterval: 500
relativePath: /healthcheckIn der folgenden Konfiguration wird jede API mit dem Proxy-Pfad /mocktarget/healthcheck im Analysedashboard als separater Proxy namens edgemicro_proxyname-health dargestellt.
analytics:
uri: >-
https://xx/edgemicro/ax/org/docs/environment/test
bufferSize: 100
batchSize: 50
flushInterval: 500
proxyPath: /mocktarget/healthcheckEdge Microgateway hinter einer Unternehmensfirewall einrichten
HTTP-Proxy für die Kommunikation mit Apigee Edge verwenden
In Version 3.1.2 hinzugefügt.
Wenn Sie einen HTTP-Proxy für die Kommunikation zwischen Edge Microgateway und Apigee Edge verwenden möchten, gehen Sie so vor:
- Legen Sie die Umgebungsvariablen
HTTP_PROXY,HTTPS_PROXYundNO_PROXYfest. Mit diesen Variablen werden die Hosts für jeden HTTP-Proxy gesteuert, den Sie für die Kommunikation mit Apigee Edge verwenden möchten, oder die Hosts, die die Kommunikation mit Apigee Edge nicht verarbeiten sollen. Beispiel:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
NO_PROXYkann eine durch Kommas getrennte Liste von Domains sein, an die Edge Microgateway keine Proxyanfragen senden soll.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.
Wenn Sie einen HTTP-Proxy für die Kommunikation zwischen Edge Microgateway und Backend-Zielen verwenden möchten, 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 | falseWobei:
- tunnel: (Optional) Wenn „true“, verwendet Edge Microgateway die HTTP CONNECT-Methode, um HTTP-Anfragen über eine einzelne TCP-Verbindung zu tunneln. Das gilt auch, wenn die unten erwähnten Umgebungsvariablen zum Konfigurieren des Proxys TLS-fähig sind. Standard:
false - url: Die HTTP-Proxy-URL.
- bypass: (Optional) Gibt einen oder mehrere kommagetrennte Zielhost-URLs an, die den HTTP-Proxy umgehen sollen. Wenn diese Eigenschaft nicht festgelegt ist, verwenden Sie die Umgebungsvariable NO_PROXY, um anzugeben, welche Ziel-URLs umgangen werden sollen.
- enabled: Wenn „true“ und
proxy.urlfestgelegt ist, wird der Wert vonproxy.urlfür den HTTP-Proxy verwendet. Wenn „true“ undproxy.urlnicht festgelegt ist, verwenden Sie die in den HTTP-Proxy-UmgebungsvariablenHTTP_PROXYundHTTPS_PROXYangegebenen Proxys, wie in HTTP-Proxy für die Kommunikation mit Apigee Edge verwenden beschrieben.
Beispiel:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true - tunnel: (Optional) Wenn „true“, verwendet Edge Microgateway die HTTP CONNECT-Methode, um HTTP-Anfragen über eine einzelne TCP-Verbindung zu tunneln. Das gilt auch, wenn die unten erwähnten Umgebungsvariablen zum Konfigurieren des Proxys TLS-fähig sind. Standard:
- Starten Sie Edge Microgateway neu.
Platzhalter in Microgateway-kompatiblen Proxys verwenden
Sie können im Basispfad eines edgemicro_*-Proxys (Microgateway-kompatibel) einen oder mehrere „*“-Platzhalter verwenden. Mit dem Basispfad /team/*/members können Clients beispielsweise https://[host]/team/blue/members und https://[host]/team/green/members aufrufen, ohne dass Sie neue API-Proxys zur Unterstützung neuer Teams erstellen müssen. Beachten Sie, dass /**/ nicht unterstützt wird.
Wichtig:Apigee unterstützt NICHT die Verwendung eines Platzhalters „*“ als erstes Element eines Basispfads. Dies wird beispielsweise NICHT unterstützt: /*/-Suche.
JWT-Schlüssel rotieren
Nach der ersten Generierung eines JWT müssen Sie möglicherweise das Paar aus öffentlichen und privaten Schlüsseln ändern, das in der verschlüsselten KVM von Edge gespeichert wird. Das Generieren eines neuen Schlüsselpaars wird als Schlüsselrotation bezeichnet.
Verwendung von JWTs in Edge Microgateway
JSON Web Token (JWT) ist ein in RFC7519 beschriebener Tokenstandard. JWT bietet eine Möglichkeit, eine Reihe von Ansprüchen zu signieren, die vom Empfänger des JWT zuverlässig überprüft werden können.
Sie können ein JWT über die Befehlszeile generieren und anstelle eines API-Schlüssels im Autorisierungsheader von API-Aufrufen verwenden. Beispiel:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
Informationen zum Generieren von JWTs mit der CLI finden Sie unter Token generieren.
Was ist Schlüsselrotation?
Nach der ersten Generierung eines JWT müssen Sie möglicherweise das Paar aus öffentlichen und privaten Schlüsseln ändern, das in der verschlüsselten KVM von Edge gespeichert wird. Das Generieren eines neuen Schlüsselpaars wird als Schlüsselrotation bezeichnet. Wenn Sie Schlüssel rotieren, wird ein neues privates/öffentliches Schlüsselpaar generiert und in der KVM in „microgateway“ in Ihrer Apigee Edge-Organisation/-Umgebung gespeichert. Außerdem bleibt der alte öffentliche Schlüssel mit seinem ursprünglichen Schlüssel-ID-Wert erhalten.
Zum Generieren eines JWT verwendet Edge Informationen, die in der verschlüsselten KVM gespeichert sind. Beim ersten Einrichten (Konfigurieren) von Edge Microgateway wurde ein KVM mit dem Namen microgateway erstellt und mit Schlüsseln gefüllt. Die Schlüssel in der KVM werden zum Signieren und Verschlüsseln eines JWT verwendet.
Die KVM-Schlüssel umfassen:
-
private_key: Der aktuelle (zuletzt erstellte) private RSA-Schlüssel, der zum Signieren von JWTs verwendet wird.
-
public_key: Das neueste (zuletzt erstellte) Zertifikat, das zum Überprüfen von JWTs verwendet wird, die mit dem „private_key“ signiert wurden.
-
private_key_kid: Die ID des neuesten (zuletzt erstellten) privaten Schlüssels. Diese Schlüssel-ID ist mit dem Wert „private_key“ verknüpft und wird zur Unterstützung der Schlüsselrotation verwendet.
-
public_key1_kid: Die ID des neuesten (zuletzt erstellten) öffentlichen Schlüssels. Dieser Schlüssel ist mit dem Wert „public_key1“ verknüpft und wird zur Unterstützung der Schlüsselrotation verwendet. Dieser Wert entspricht der ID des privaten Schlüssels.
-
public_key1: Der neueste (zuletzt erstellte) öffentliche Schlüssel.
Wenn Sie eine Schlüsselrotation durchführen, werden vorhandene Schlüsselwerte in der Zuordnung ersetzt und neue Schlüssel hinzugefügt, um die alten öffentlichen Schlüssel beizubehalten. Beispiel:
-
public_key2_kid: Die ID des alten öffentlichen Schlüssels. Dieser Schlüssel ist mit dem Wert „public_key2“ verknüpft und 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 überprüft. Wenn die Überprüfung fehlschlägt, wird der alte öffentliche Schlüssel verwendet, bis das JWT abläuft (nach dem Intervall „token_expiry*“, standardmäßig 30 Minuten). So können Sie Schlüssel „rotieren“, ohne den API-Traffic sofort zu unterbrechen.
Schlüsselrotation durchführen
In diesem Abschnitt wird erläutert, wie Sie eine Schlüsselrotation durchführen.
- Verwenden Sie den Befehl
edgemicro upgradekvm, um das KVM zu aktualisieren. Weitere Informationen zum Ausführen dieses Befehls finden Sie unter KVM aktualisieren. Sie müssen diesen Schritt nur einmal ausführen. - Verwenden Sie den Befehl
edgemicro upgradeauth, um den Proxy edgemicro-oauth zu aktualisieren. Weitere Informationen zum Ausführen dieses Befehls finden Sie unter Proxy „edgemicro-auth“ aktualisieren. Sie müssen diesen Schritt nur einmal ausführen. - Fügen Sie die folgende Zeile in Ihre
~/.edgemicro/org-env-config.yaml-Datei ein. Sie müssen dieselbe Organisation und Umgebung angeben, die Sie für die Verwendung durch das 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 rotieren.
edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET
Beispiel:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
Nach der Schlüsselrotation gibt Edge mehrere Schlüssel an Edge Microgateway zurück. Im folgenden Beispiel hat jeder Schlüssel einen eindeutigen „kid“-Wert (Schlüssel-ID). Das Microgateway verwendet diese Schlüssel dann, um Autorisierungstokens zu validieren. Wenn die Tokenvalidierung fehlschlägt, prüft das Microgateway, ob im Schlüsselset ein älterer Schlüssel vorhanden ist, und versucht es mit diesem Schlüssel. Die zurückgegebenen Schlüssel haben das Format JSON Web Key (JWK). Weitere Informationen zu diesem Format finden Sie in 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"
}
]
}Verzögerung „Nicht vor“ konfigurieren
In Version 3.1.5 und früher wurde der neue private Schlüssel, der mit dem Befehl rotatekey generiert wurde, sofort wirksam und neue Token wurden mit dem neuen privaten Schlüssel signiert. Der neue öffentliche Schlüssel wurde jedoch standardmäßig nur alle 10 Minuten für Edge Microgateway-Instanzen verfügbar gemacht, wenn die Microgateway-Konfiguration aktualisiert wurde. Aufgrund dieser Verzögerung zwischen der Tokensignierung und der Aktualisierung der Microgateway-Instanz werden mit dem neuesten Schlüssel signierte Tokens abgelehnt, bis alle Instanzen den neuesten öffentlichen Schlüssel erhalten haben.
Wenn mehrere Microgateway-Instanzen vorhanden sind, führte die Verzögerung des öffentlichen Schlüssels manchmal zu zeitweiligen Laufzeitfehlern mit dem Status 403, da die Tokenvalidierung auf einer Instanz erfolgreich war, auf einer anderen jedoch fehlschlug, bis alle Instanzen aktualisiert wurden.
Ab Version 3.1.6 können Sie mit einem neuen Flag für den Befehl rotatekey eine Verzögerung für die Aktivierung des neuen privaten Schlüssels festlegen. So haben alle Microgateway-Instanzen Zeit, aktualisiert zu werden und den neuen öffentlichen Schlüssel zu empfangen. Das neue Flag ist --nbf, was für „nicht vor“ steht.
Dieses Flag akzeptiert einen ganzzahligen Wert, die Anzahl der Minuten, um die die Ausführung verzögert werden soll.
Im folgenden Beispiel ist die Verzögerung auf 15 Minuten festgelegt:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \ --nbf 15
Es empfiehlt sich, die Verzögerung auf einen Wert festzulegen, der größer als die Konfigurationseinstellung config_change_poll_internal ist. Der Standardwert ist 10 Minuten. Siehe auch edgemicro-Attribute.
Heruntergeladene Proxys filtern
Standardmäßig lädt Edge Microgateway alle Proxys in Ihrer Edge-Organisation herunter, die mit dem Namenspräfix „edgemicro_“ beginnen. Sie können diese Standardeinstellung ändern, um Proxys herunterzuladen, deren Namen einem Muster entsprechen.
- Öffnen Sie die Edge Micro-Konfigurationsdatei:
~/.edgemicro/org-env-config.yaml - Fügen Sie das Element „proxyPattern“ unter „edge_config“ hinzu. Mit dem folgenden Muster werden beispielsweise Proxys wie „edgemicro_foo“, „edgemicro_fast“ und „edgemicro_first“ heruntergeladen.
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. Mit dieser Produktkonfiguration kann ein API-Schlüssel, der mit diesem Produkt verknüpft ist, für jeden in Ihrer Organisation bereitgestellten Proxy verwendet werden. Ab Version 2.5.4 unterstützt Edge Microgateway diese Produktkonfiguration.
Debugging und Fehlerbehebung
Verbindung zu einem Debugger herstellen
Sie können Edge Microgateway mit einem Debugger wie node-inspector ausführen. Das ist nützlich für die Fehlerbehebung und das Debugging benutzerdefinierter Plugins.
- Starten Sie Edge Microgateway im Debug-Modus neu. Fügen Sie dazu
DEBUG=*am Anfang desstart-Befehls ein: .DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
Mit diesem Befehl können Sie die Debug-Ausgabe in eine Datei umleiten:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- Starten Sie den Debugger und legen Sie fest, dass er die Portnummer für den Debugging-Prozess überwachen soll.
- Sie können jetzt den Edge Microgateway-Code durchgehen, Haltepunkte festlegen, Ausdrücke beobachten usw.
Sie können Standard-Node.js-Flags für den Debugmodus angeben. --nolazy kann beispielsweise beim Debuggen von asynchronem Code helfen.
Logdateien prüfen
Wenn Probleme auftreten, sollten Sie die Logdateien auf Ausführungsdetails und Fehlerinformationen prüfen. Weitere Informationen finden Sie unter Logdateien verwalten.
API-Schlüssel sichern
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 „Consumer Key“ (auch als „Client-ID“ bezeichnet) aus einem Apigee Edge-Produkt kopieren, das den Edge Microgateway-Authentifizierungs-Proxy enthält.
Zwischenspeichern von Schlüsseln
API-Schlüssel werden gegen Bearer-Tokens eingetauscht, die im Cache gespeichert werden. Sie können das Caching deaktivieren, indem Sie den Header Cache-Control: no-cache für eingehende Anfragen an Edge Microgateway festlegen.
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 sind sowohl der Header- als auch der Name des Abfrageparameters 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üsselname konfigurieren
Standardmäßig wird x-api-key sowohl für den API-Schlüsselheader als auch für den Abfrageparameter verwendet.
Sie können diese Standardeinstellung in der Konfigurationsdatei ändern, wie unter Konfigurationsänderungen vornehmen beschrieben. So ändern Sie den Namen beispielsweise in apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
In diesem Beispiel werden sowohl der Abfrageparameter als auch der Headername in apiKey geändert. Der Name x-api-key funktioniert in beiden Fällen nicht mehr. 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 Edge Microgateway sichern.
Upstream-Antwortcodes aktivieren
Standardmäßig gibt das oauth-Plug-in nur 4xx-Fehlerstatuscodes zurück, wenn die Antwort keinen 200-Status hat. Sie können dieses Verhalten ändern, sodass je nach Fehler immer der genaue 4xx- oder 5xx-Code zurückgegeben wird.
Fügen Sie die Eigenschaft oauth.useUpstreamResponse: true zur Edge Microgateway-Konfiguration hinzu, um diese Funktion zu aktivieren. Beispiel:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
OAuth2-Tokensicherheit verwenden
In diesem Abschnitt wird beschrieben, wie Sie OAuth2-Zugriffstokens und ‑Aktualisierungstokens abrufen. Zugriffstokens werden verwendet, um sichere API-Aufrufe über das Microgateway durchzuführen. Mit Aktualisierungstokens werden neue Zugriffstokens abgerufen.
Zugriffstoken abrufen
In diesem Abschnitt wird erläutert, wie Sie mit dem edgemicro-auth-Proxy ein Zugriffstoken abrufen.
Sie können auch mit dem edgemicro token-Befehlszeilenbefehl ein Zugriffstoken abrufen.
Weitere Informationen zur Befehlszeile finden Sie unter Tokens verwalten.
API 1: Anmeldedaten als Body-Parameter senden
Ersetzen Sie in der URL die Namen Ihrer Organisation und Umgebung und ersetzen Sie die Werte für „Consumer-ID“ und „Consumer-Secret“, die Sie von einer Entwickler-App in Apigee Edge erhalten haben, durch die Body-Parameter 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 Clientanmeldedaten als Basis-Authentifizierungsheader und grant_type als Formularparameter. Diese Befehlsform wird auch in RFC 6749: The OAuth 2.0 Authorization Framework beschrieben.
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. Die Attributetoken und access_token sind identisch. Sie können eine der beiden verwenden. expires_in ist ein ganzzahliger Wert in Sekunden.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": 1799 }
Aktualisierungstoken erhalten
Wenn Sie ein Aktualisierungstoken abrufen möchten, führen Sie einen API-Aufruf an den /token-Endpunkt des edgemicro-auth-Proxys aus. Sie MÜSSEN diesen API-Aufruf mit dem password-Gewährungstyp ausführen. Die folgenden Schritte beschreiben den Prozess.
- Zugriffs- und Aktualisierungstoken mit der
/tokenAPI abrufen Beachten Sie, dass der Grant-Typpasswordist: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:
expires_in-Werte sind Ganzzahlen und werden in Sekunden angegeben.{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": 108, "refresh_token": "your-refresh-token", "refresh_token_expires_in": 431, "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" } - Sie können das Aktualisierungstoken jetzt verwenden, um ein neues Zugriffstoken zu erhalten, indem Sie den
/refresh-Endpunkt derselben API aufrufen. 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" }
Dauerhaftes Monitoring
Endpunkt für Konfigurationsdatei angeben
Wenn Sie mehrere Edge Microgateway-Instanzen ausführen, möchten Sie ihre Konfigurationen möglicherweise an einem zentralen Ort verwalten. Dazu geben Sie einen HTTP-Endpunkt an, von dem Edge Microgateway die Konfigurationsdatei herunterladen kann. Sie können diesen Endpunkt angeben, wenn Sie Edge Micro mit dem Flag -u starten.
Beispiel:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
Dabei gibt der mgconfig-Endpunkt den Inhalt Ihrer Konfigurationsdatei zurück. Diese Datei befindet sich standardmäßig in ~/.edgemicro und folgt der Namenskonvention org-env-config.yaml.
Zwischenspeichern von TCP-Verbindungsdaten deaktivieren
Mit dem Konfigurationsattribut nodelay können Sie die Datenpufferung für TCP-Verbindungen deaktivieren, die von Edge Microgateway verwendet werden.
Standardmäßig verwenden TCP-Verbindungen den Nagle-Algorithmus, um Daten zu puffern, bevor sie gesendet werden. Wenn Sie nodelay auf true festlegen, wird dieses Verhalten deaktiviert. Daten werden sofort gesendet, wenn socket.write() aufgerufen wird. Weitere Informationen finden Sie in der Node.js-Dokumentation.
So aktivieren Sie nodelay: Bearbeiten Sie die Edge Micro-Konfigurationsdatei so:
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 Standalone-Modus ausführen
Sie können Edge Microgateway vollständig unabhängig von Apigee Edge ausführen. In diesem Szenario, dem sogenannten Standalone-Modus, können Sie Edge Microgateway ohne Internetverbindung ausführen und testen.
Im Standalone-Modus funktionieren die folgenden Funktionen nicht, da sie eine Verbindung zu Apigee Edge erfordern:
- OAuth und API-Schlüssel
- Kontingent
- Analytics
Benutzerdefinierte Plug-ins und die Funktion zum Unterdrücken von Spitzen funktionieren dagegen normal, da sie keine Verbindung zu Apigee Edge erfordern. Außerdem können Sie mit einem neuen Plug-in namens extauth API-Aufrufe an das Microgateway im Standalone-Modus mit einem JWT autorisieren.
Gateway konfigurieren und starten
Edge Microgateway im Standalone-Modus ausführen
- Erstellen Sie eine Konfigurationsdatei mit dem folgenden 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 und geben Sie Werte an, um den lokalen Proxy zu instanziieren:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
Wobei:
- $ORG ist der „org“-Name, den Sie im Namen der Konfigurationsdatei verwendet haben.
- $ENV ist der „env“-Name, den Sie im Namen der Konfigurationsdatei verwendet haben.
- $LOCAL_PROXY_NAME ist der Name des lokalen Proxys, der erstellt wird. Sie können einen beliebigen Namen verwenden.
- $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 Dienst, den der Proxy aufruft.
- $BASE_PATH ist der Basispfad des Proxys. Dieser Wert muss mit einem Schrägstrich beginnen. Geben Sie für einen Stammbasispfad nur einen Schrägstrich an, z. B. „/“.
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
extauth-Plug-in in der Dateifoo-bar-config.yamlbefindet, wird der Fehler „missing_authorization“ angezeigt. Dieses Plug-in validiert ein JWT, das im Autorisierungsheader des API-Aufrufs vorhanden sein muss. Im nächsten Abschnitt erhalten Sie ein JWT, mit dem API-Aufrufe ohne Fehler durchlaufen können.
Beispiel: Autorisierungstoken abrufen
Das folgende Beispiel zeigt, wie Sie ein JWT vom Edge Microgateway-JWT-Endpunkt in Apigee Edge (edgemicro-auth/jwkPublicKeys) abrufen. Dieser Endpunkt wird bereitgestellt, wenn Sie eine Standardeinrichtung und -konfiguration von Edge Microgateway durchführen.
Um das JWT vom Apigee-Endpunkt abzurufen, müssen Sie zuerst die Standardeinrichtung von Edge Microgateway durchführen und mit dem Internet verbunden sein. Der Apigee-Endpunkt wird hier nur als Beispiel verwendet und ist nicht erforderlich. Sie können auch einen anderen JWT-Token-Endpunkt verwenden. Wenn Sie das tun, müssen Sie das JWT über die für diesen Endpunkt bereitgestellte API abrufen.
In den folgenden Schritten wird beschrieben, wie Sie ein Token über den edgemicro-auth/jwkPublicKeys-Endpunkt abrufen:
- Sie müssen eine Standardeinrichtung und -konfiguration von Edge Microgateway durchführen, um den
edgemicro-auth-Proxy in Ihrer Organisation/Umgebung in Apigee Edge bereitzustellen. Wenn Sie diesen Schritt bereits ausgeführt haben, müssen Sie ihn nicht wiederholen. - Wenn Sie Edge Microgateway in der Apigee Cloud bereitgestellt haben, müssen Sie mit dem Internet verbunden sein, damit Sie ein JWT von diesem Endpunkt abrufen können.
-
Edge Microgateway beenden:
edgemicro stop
- Weisen Sie in der Konfigurationsdatei, die Sie zuvor erstellt haben (
$HOME/.edgemicro/org-env-config.yaml), das Attributextauth:publickey_urldemedgemicro-auth/jwkPublicKeys-Endpunkt in Ihrer Apigee Edge-Organisation/-Umgebung zu. 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- und 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 /
-
Rufen Sie ein JWT-Token vom Autorisierungsendpunkt ab. Da Sie den
edgemicro-auth/jwkPublicKeys-Endpunkt verwenden, können Sie diesen CLI-Befehl verwenden:
Sie können ein JWT für Edge Microgateway mit dem Befehl edgemicro token oder einer API generieren. 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 Edge Microgateway zuvor konfiguriert haben.
- your_env ist eine Umgebung in der Organisation.
- Mit der Option
iwird der Consumer-Schlüssel einer Entwickler-App angegeben, die ein Produkt mit dem Proxyedgemicro-authenthält. - Mit der Option
swird der Consumer-Schlüssel einer Entwickler-App angegeben, die ein Produkt mit dem Proxyedgemicro-authenthält.
Mit diesem Befehl wird Apigee Edge aufgefordert, ein JWT zu generieren, das dann zum Überprüfen von API-Aufrufen verwendet werden kann.
Weitere Informationen finden Sie unter Token generieren.Eigenständige Konfiguration testen
Rufen Sie die API mit dem im Autorisierungsheader hinzugefügten Token auf, um die Konfiguration zu testen:
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 Proxy-Modus verwenden
Im lokalen Proxymodus ist für Edge Microgateway kein microgateway-fähiger Proxy erforderlich, der in Apigee Edge bereitgestellt wird. Stattdessen konfigurieren Sie einen „lokalen Proxy“, indem Sie beim Starten des Microgateways einen lokalen Proxynamen, einen Basispfad und eine Ziel-URL angeben. API-Aufrufe an das Microgateway werden dann an die Ziel-URL des lokalen Proxys gesendet. In allen anderen Punkten funktioniert der lokale Proxymodus genau wie der normale Modus von Edge Microgateway. Die Authentifizierung funktioniert genauso wie die Begrenzung von Spitzen, die Durchsetzung von Kontingenten und die Verwendung benutzerdefinierter Plug-ins.
Anwendungsfall und Beispiel
Der lokale Proxy-Modus ist nützlich, wenn Sie nur einen einzelnen Proxy mit einer Edge Microgateway-Instanz verknüpfen müssen. Sie können Edge Microgateway beispielsweise als Sidecar-Proxy in Kubernetes einfügen. Dabei werden ein Microgateway und ein Dienst jeweils in einem einzelnen Pod ausgeführt und das Microgateway verwaltet den Traffic zum und vom zugehörigen Dienst. Die folgende Abbildung veranschaulicht diese Architektur, in der Edge Microgateway als Sidecar-Proxy in einem Kubernetes-Cluster fungiert. Jede Microgateway-Instanz kommuniziert nur mit einem einzelnen Endpunkt des zugehörigen Dienstes:

Ein Vorteil dieser Architektur ist, dass Edge Microgateway die API-Verwaltung für einzelne Dienste übernimmt, die in einer Containerumgebung wie einem Kubernetes-Cluster bereitgestellt werden.
Lokalen Proxymodus konfigurieren
So konfigurieren Sie Edge Microgateway für den lokalen Proxymodus:
- Führen Sie
edgemicro initaus, um Ihre lokale Konfigurationsumgebung einzurichten, genau wie bei einer typischen Edge Microgateway-Einrichtung. Siehe auch Edge Microgateway konfigurieren. - Führen Sie
edgemicro configurewie bei einer typischen Edge Microgateway-Einrichtung aus. Beispiel:edgemicro configure -o your_org -e your_env -u your_apigee_username
Mit diesem Befehl wird die edgemicro-auth-Richtlinie in Edge bereitgestellt und ein Schlüssel und ein Secret zurückgegeben, die Sie zum Starten des Microgateways benötigen. Weitere Informationen finden Sie unter Edge Microgateway konfigurieren.
- Erstellen Sie in Apigee Edge ein API-Produkt mit den folgenden obligatorischen Konfigurationsanforderungen (alle anderen Konfigurationen können Sie nach Belieben verwalten):
- Sie müssen dem Produkt den Proxy edgemicro-auth hinzufügen. Dieser Proxy wurde automatisch bereitgestellt, als Sie
edgemicro configureausgeführt haben. - Sie müssen einen Ressourcenpfad angeben. Apigee empfiehlt, diesen Pfad dem Produkt hinzuzufügen:
/**. Weitere Informationen finden Sie unter Verhalten des Ressourcenpfads konfigurieren. Weitere Informationen finden Sie unter API-Produkte erstellen 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. Weitere Informationen finden Sie unter Entwickler über die Edge-Verwaltungsoberfläche hinzufügen.
- Erstellen Sie in Apigee Edge eine Entwickler-App. Sie müssen das gerade erstellte API-Produkt der App hinzufügen. Weitere Informationen finden Sie unter Apps in der Edge-Verwaltungs-UI registrieren.
- Exportieren Sie auf dem Computer, auf dem Edge Microgateway installiert ist, die folgende Umgebungsvariable mit dem Wert „1“.
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_pathWobei:
- your_org ist Ihre Apigee-Organisation.
- your_environment ist eine Umgebung in Ihrer Organisation.
- your_key ist der Schlüssel, der zurückgegeben wurde, als Sie
edgemicro configureausgeführt haben. - your_secret ist das Secret, das zurückgegeben wurde, als Sie
edgemicro configureausgeführt haben. - 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 aufruft).
- base_path ist der Basispfad des Proxys. Dieser Wert muss mit einem Schrägstrich beginnen. Geben Sie für einen Stammbasispfad nur einen Schrägstrich an, z. B. „/“.
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 Proxyendpunkt aufrufen. Wenn Sie beispielsweise 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"
}Dieser erste API-Aufruf hat einen Fehler zurückgegeben, weil Sie keinen gültigen API-Schlüssel angegeben haben. Sie finden den Schlüssel in der Entwickler-App, die Sie zuvor erstellt haben. Öffnen Sie die App in der Edge-Benutzeroberfläche, kopieren Sie den Verbraucherschlüssel und verwenden Sie ihn so:
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":""
}Synchronizer verwenden
In diesem Abschnitt wird beschrieben, wie Sie den Synchronizer verwenden. Dieses optionale Feature verbessert die Ausfallsicherheit von Edge Microgateway, da es Konfigurationsdaten von Apigee Edge abrufen und in eine lokale Redis-Datenbank schreiben kann. Wenn eine Synchronizer-Instanz ausgeführt wird, können andere Edge Microgateway-Instanzen, die auf verschiedenen Knoten ausgeführt werden, ihre Konfiguration direkt aus dieser Datenbank abrufen.
Die Synchronisierungsfunktion wird derzeit für Redis 5.0.x unterstützt.
Was ist der Synchronizer?
Der Synchronizer bietet ein gewisses Maß an Resilienz für Edge Microgateway. So wird sichergestellt, dass jede Instanz von Edge Microgateway dieselbe Konfiguration verwendet und dass Edge Microgateway-Instanzen im Falle einer Internetunterbrechung ordnungsgemäß gestartet und ausgeführt werden können.
Standardmäßig müssen Edge Microgateway-Instanzen mit Apigee Edge kommunizieren können, um ihre Konfigurationsdaten wie API-Proxy- und API-Produktkonfigurationen abzurufen und zu aktualisieren. Wenn die Internetverbindung mit Edge unterbrochen wird, können Microgateway-Instanzen weiterhin funktionieren, da die neuesten Konfigurationsdaten im Cache gespeichert werden. Neue Microgateway-Instanzen können jedoch nicht ohne eine klare Verbindung gestartet werden. Außerdem kann es bei einer Internetunterbrechung dazu kommen, dass eine oder mehrere Microgateway-Instanzen mit Konfigurationsinformationen ausgeführt werden, die nicht mit anderen Instanzen synchronisiert sind.
Der Edge Microgateway-Synchronizer bietet einen alternativen Mechanismus für Edge Microgateway-Instanzen, um Konfigurationsdaten abzurufen, die sie zum Starten und Verarbeiten von API-Proxy-Traffic benötigen.
Die Konfigurationsdaten, die durch Aufrufe von Apigee Edge abgerufen werden, umfassen: den jwk_public_keys-Aufruf, den jwt_public_key-Aufruf, den Bootstrap-Aufruf und den API-Produkte-Aufruf.
Der Synchronizer ermöglicht es, dass alle Edge Microgateway-Instanzen, die auf verschiedenen Knoten ausgeführt werden, ordnungsgemäß gestartet werden und synchron bleiben, auch wenn die Internetverbindung zwischen Edge Microgateway und Apigee Edge unterbrochen wird.
Der Synchronizer ist eine speziell konfigurierte Instanz von Edge Microgateway. Der einzige Zweck besteht darin, Apigee Edge abzufragen (das Timing ist konfigurierbar), Konfigurationsdaten abzurufen und in eine lokale Redis-Datenbank zu schreiben. Die Synchronizer-Instanz selbst kann keinen API-Proxy-Traffic verarbeiten. Andere Instanzen von Edge Microgateway, die auf anderen Knoten ausgeführt werden, können so konfiguriert werden, dass sie Konfigurationsdaten aus der Redis-Datenbank und nicht aus Apigee Edge abrufen. Da alle Microgateway-Instanzen ihre Konfigurationsdaten aus der lokalen Datenbank abrufen, können sie auch bei einer Internetunterbrechung gestartet werden und API-Anfragen verarbeiten.
Synchronizer-Instanz konfigurieren
Fügen Sie der Datei org-env/config.yaml für die Edge Microgateway-Installation, die Sie als Synchronizer verwenden möchten, die folgende Konfiguration hinzu:
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 Ihre Redis-Instanz ausgeführt wird. Standard: 127.0.0.1 |
redisPort |
Der Port der Redis-Instanz. Standard: 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 mit dem Abrufen von Apigee Edge und dem Speichern heruntergeladener Konfigurationsdaten in der Redis-Datenbank.
Reguläre Edge Microgateway-Instanzen konfigurieren
Wenn der Synchronizer ausgeführt wird, können Sie zusätzliche Edge Microgateway-Knoten konfigurieren, auf denen reguläre Microgateway-Instanzen ausgeführt werden, die API-Proxy-Traffic verarbeiten. Sie konfigurieren diese Instanzen jedoch so, dass sie ihre Konfigurationsdaten aus der Redis-Datenbank und nicht aus Apigee Edge beziehen.
Fügen Sie die folgende Konfiguration der org-env/config.yaml-Datei jedes zusätzlichen Edge Microgateway-Knotens hinzu. Beachten Sie, dass das Attribut synchronizerMode auf 0 gesetzt ist. Mit dieser Property wird die Instanz so konfiguriert, dass sie als normale Edge Microgateway-Instanz fungiert, die API-Proxy-Traffic verarbeitet. Die Instanz ruft ihre Konfigurationsdaten aus der Redis-Datenbank ab.
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 Synchronizers zu unterstützen:
| Attribut | Werte | Beschreibung |
|---|---|---|
edge_config.synchronizerMode |
0 oder 1 | Wenn der Wert 0 (Standard) ist, wird Edge Microgateway im Standardmodus ausgeführt. Wenn der Wert „1“ ist, starten Sie die Edge Microgateway-Instanz, damit sie als Synchronizer fungiert. In diesem Modus ruft die Instanz Konfigurationsdaten aus Apigee Edge ab und speichert sie in einer lokalen Redis-Datenbank. Diese Instanz kann keine API-Proxy-Anfragen verarbeiten. Sie dient nur dazu, Apigee Edge nach Konfigurationsdaten abzufragen und diese in die lokale Datenbank zu schreiben. Anschließend müssen Sie andere Microgateway-Instanzen so konfigurieren, dass sie Daten aus der Datenbank lesen. |
edge_config.redisBasedConfigCache |
"true" oder "false" | Bei „true“ ruft die Edge Microgateway-Instanz ihre Konfigurationsdaten aus der Redis-Datenbank anstelle von Apigee Edge ab. Die Redis-Datenbank muss dieselbe sein, in die der Synchronizer Daten schreiben soll. Wenn die Redis-Datenbank nicht verfügbar oder leer ist, sucht das Microgateway nach einer vorhandenen cache-config.yaml-Datei für die Konfiguration.
Wenn „false“ (Standardeinstellung), ruft die Edge Microgateway-Instanz wie gewohnt Konfigurationsdaten von Apigee Edge ab. |
edgemicro.config_change_poll_interval |
Zeitintervall in Sekunden | Gibt das Abfrageintervall für den Synchronizer an, um Daten aus Apigee Edge abzurufen. |
Ausschluss-URLs für Plug-ins konfigurieren
Sie können das Microgateway so konfigurieren, dass die Verarbeitung von Plug-ins für bestimmte URLs übersprungen wird. Diese „Ausschluss“-URLs können Sie global (für alle Plug-ins) oder für bestimmte Plug-ins konfigurieren.
Beispiel:
...
edgemicro:
...
plugins:
excludeUrls: '/hello,/proxy_one' # global exclude urls
sequence:
- oauth
- json2xml
- quota
json2xml:
excludeUrls: '/hello/xml' # plugin level exclude urls
...
In diesem Beispiel werden eingehende API-Proxyaufrufe mit den Pfaden /hello oder /proxy_one nicht von den Plug-ins verarbeitet. Außerdem wird das json2xml-Plug-in für APIs mit /hello/xml im Pfad übersprungen.
Konfigurationsattribute mit Umgebungsvariablenwerten festlegen
Sie können Umgebungsvariablen mithilfe von Tags in der Konfigurationsdatei angeben. Die angegebenen Umgebungsvariablen-Tags werden durch die tatsächlichen Umgebungsvariablenwerte ersetzt. Ersetzungen werden nur im Arbeitsspeicher und nicht in den ursprünglichen Konfigurations- oder Cache-Dateien gespeichert.
In diesem Beispiel wird das Attribut key durch den Wert der Umgebungsvariablen TARGETS_SSL_CLIENT_KEY ersetzt usw.
targets:
- ssl:
client:
key: <E>TARGETS_SSL_CLIENT_KEY</E>
cert: <E>TARGETS_SSL_CLIENT_CERT</E>
passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>
In diesem Beispiel wird das Tag <n> verwendet, um einen Ganzzahlwert anzugeben. Es werden nur positive Ganzzahlen unterstützt.
edgemicro: port: <E><n>EMG_PORT</n></E>
In diesem Beispiel wird das <b>-Tag verwendet, um einen booleschen Wert (also „true“ oder „false“) anzugeben.
quotas: useRedis: <E><b>EMG_USE_REDIS</b></E>