Führen Sie ein Jitterbit Private API Gateway auf Docker aus
Einführung
Dieser Abschnitt gibt Beispiele für verschiedene Möglichkeiten, ein privates API-Gateway auf Docker mit Jitterbits Docker-Image auszuführen.
Wichtig
Das Docker Private API Gateway wird von Jitterbit nicht offiziell unterstützt oder zertifiziert. Für eine vollständig unterstützte Umgebung empfehlen wir die Installation auf einem Linux-Rechner.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie Folgendes:
-
Docker installiert und ausgeführt.
-
Ein Harmony-Konto sowie dessen Benutzername, Passwort und Organisations-ID.
-
Eine gültige API Manager API in der Organisation, die mit dem privaten API-Gateway verbunden ist.
-
Wenn Sie hinter einem Forward-Proxy arbeiten, konfigurieren Sie die Firewall Ihres Hosts so, dass Ausnahmen für den Proxy-Server erlaubt sind.
-
(Optional) Für die automatische Generierung von TLS-Zertifikaten eine registrierte benutzerdefinierte Gateway-Domain und deren vollständig qualifizierter Domainname (FQDN) in der Form
mygateway.mydomain.com.
Interaktiver Start und Konfiguration
Führen Sie Folgendes aus, um den Container zu starten, und antworten Sie dann auf die Eingabeaufforderungen (die den Schritten der Linux-Installationskonfiguration folgen):
docker run --interactive --tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
jitterbit/private-gateway
Interaktiver Start und Konfiguration mit Bridge-Netzwerk
Führen Sie Folgendes aus, um ein Bridge-Netzwerk zu erstellen und den Container mit diesem Netzwerk zu verbinden, und antworten Sie dann auf die Eingabeaufforderungen:
docker network create -d bridge jitterbit
docker run --interactive -tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
jitterbit/private-gateway
Ein Bridge-Netzwerk bietet folgende Vorteile:
-
Containerentdeckung: Ermöglicht die direkte Kommunikation unter Verwendung von Containernamen, wodurch die Abhängigkeit von IP-Adressen vermieden wird. Dies vereinfacht die Kommunikation zwischen Containern und ermöglicht es privaten Agenten, frei mit privaten Gateways zu kommunizieren.
-
Bessere Isolation: Bietet verbesserte Isolation und verringert das Risiko unbeabsichtigter Interaktionen zwischen nicht verwandten Containern.
-
Benutzerdefinierte Konfigurationen: Ermöglicht spezifische Netzwerkeinstellungen, wie die Anpassung von Subnetz und Gateway.
-
Netzwerksegmentierung: Erleichtert die Segmentierung des Netzwerkverkehrs und stellt sicher, dass Container in verschiedenen Bridge-Netzwerken sich nicht gegenseitig stören.
-
Netzwerkrichtlinien: Ermöglicht die Anwendung unterschiedlicher Netzwerkregeln oder -richtlinien und bietet eine verbesserte Kontrolle über die Kommunikation zwischen Containern.
Vorsicht
Wenn Sie eine containerisierte Multi-Gateway-Umgebung hinter einem Application Load Balancer (ALB) wie AWS ALB konfigurieren, müssen sich alle Gateway-Container auf demselben Host befinden.
Tipp
Verwenden Sie dasselbe Netzwerk, um Ihre Docker-basierten privaten Agenten auszuführen.
Unbeaufsichtigter Start mit Bridge-Netzwerk und Konfiguration mit Umgebungsvariablen
Führen Sie Folgendes aus, um ein Bridge-Netzwerk zu erstellen und den Container im Detached-Modus zu starten, wobei die Werte über Umgebungsvariablen bereitgestellt werden:
docker network create -d bridge jitterbit
docker run --detach --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
--env "HARMONY_USERNAME=<USERNAME>" \
--env "HARMONY_PASSWORD=<PASSWORD>" \
--env "ORGANIZATION_ID=<ORG_ID>" \
--env "SERVICE_URL=<SERVICE_URL>" \
--env "PROXY_ENABLED=true|false" \
--env "PROXY_HOSTNAME=<PROXY_HOSTNAME>"
--env "PROXY_USERNAME=<PROXY_SERVER_USERNAME>" \
--env "PROXY_PASSWORD=<PROXY_SERVER_PASSWORD>" \
--env "LETS_ENCRYPT_ENABLED=true|false" \
--env "LETS_ENCRYPT_DOMAIN=<DOMAIN>" \
--env "LETS_ENCRYPT_EMAIL=<EMAIL>" \
jitterbit/private-gateway
Setzen Sie die Variablenwerte wie folgt:
| Variable | Beschreibung | Beispiel |
|---|---|---|
HARMONY_USERNAME |
Harmony-Kontoanmeldung. | name@example.com |
HARMONY_PASSWORD |
Harmony-Konto-Passwort, im Klartext oder mit base64 codiert. |
P@5$w0rdUEA1Cg== (base64-codiert) |
ORGANIZATION_ID |
Harmony-Organisations-ID-Nummer. | 12345 |
SERVICE_URL |
Jitterbit-Dienst-URL für Ihre Region:
|
https://services.jitterbit.eu/apis |
PROXY_ENABLED |
Proxy aktivieren (true oder false). |
true |
PROXY_HOSTNAME |
Proxy-Hostname und Port. | host.docker.internal:12121 |
PROXY_USERNAME |
Benutzername des Proxy-Servers. | $(PROXY_SERVER_USERNAME) |
PROXY_PASSWORD |
Passwort des Proxy-Servers, im Klartext oder mit base64 codiert. |
$(PROXY_SERVER_PASSWORD) |
LETS_ENCRYPT_ENABLED |
Let's Encrypt aktivieren (true oder false). |
true |
LETS_ENCRYPT_DOMAIN |
Let's Encrypt-Domainname. | gateway.mydomain.com |
LETS_ENCRYPT_EMAIL |
Let's Encrypt-Konto-E-Mail. | youremail@<mydomain>.com |
Unbeaufsichtigter Start und Konfiguration mit einer Umgebungsvariablen-Datei
Befolgen Sie diese Schritte, um den Container im Hintergrundmodus mit in einer Datei festgelegten Umgebungsvariablen zu starten:
-
Erstellen Sie im Verzeichnis, in dem Docker ausgeführt wird, ein Unterverzeichnis
conf. Erstellen Sie darin eine Dateigateway.conf, die die folgenden Umgebungsvariablen enthält:conf/gateway.conf## # Jitterbit Private API Gateway Docker configuration # For more information, see https://docs.jitterbit.com/api-gateways/private-api-gateway/docker/ ## ## Jitterbit API Gateway Configuration # # Your Harmony account username. (Usually your email address.) HARMONY_USERNAME= # Your Harmony account password. # IMPORTANT: Follow your shell's quoting and escape rules for passwords with special characters. # Example: 'P@5$w0rD' HARMONY_PASSWORD= # Your Harmony account organization ID. # Example: 12345 ORGANIZATION_ID= # The Jitterbit service URL for your Harmony account region, one of the following: # - For NA: https://services.jitterbit.net/apis # - For EMEA: https://services.jitterbit.eu/apis # - For APAC: https://services.jitterbit.cc/apis SERVICE_URL= ## Proxy Configuration (Optional) # # When true, enable proxy. PROXY_ENABLED=false ## When PROXY_ENABLED=true, uncomment and set the following: # # Proxy server URL, as http://your_proxy_server:port # PROXY_HOSTNAME= # Proxy server username # PROXY_USERNAME= # Proxy server password # PROXY_PASSWORD= ## Let's Encrypt certificates # When true, enable automatic generation of TLS certificate. # IMPORTANT: You must first create a DNS record pointing to the public IP address of your server. LETS_ENCRYPT_ENABLED=true # Fully-qualified domain name of your server, matching the A record or CNAME of the DNS record. # Example: gateway.mydomain.com LETS_ENCRYPT_DOMAIN= # Used by Lets Encrypt to issue the certificate. (Usually your email address.) LETS_ENCRYPT_EMAIL=Passwortsicherheit
Seit der Version 11.51 des privaten API-Gateways können die Werte für
HARMONY_PASSWORDundPROXY_PASSWORDals base64-kodierte Zeichenfolgen bereitgestellt werden. Unabhängig davon, ob im Klartext oder base64-kodiert, werden diese Werte im Ausgabelog maskiert (mit***). -
Setzen Sie die Variablenwerte wie im vorherigen Beispiel.
-
Führen Sie den folgenden Befehl aus:
docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \ -v "$(pwd)/conf:/conf" \ jitterbit/private-gateway -
(Optional) Testen Sie das Gateway.
Test
Sie können ein laufendes Docker-privates API-Gateway mit einem Health-Check oder dem Selbsttest-Utility testen.
Health-Check
Um sicherzustellen, dass ein privates API-Gateway wie erwartet funktioniert, testen Sie zunächst die Dienst-URL eines API Managers über das Cloud-Gateway und testen Sie dann die URL des privaten API-Gateways für denselben Endpunkt:
-
Erstellen und veröffentlichen Sie im API Manager in der mit dem privaten API-Gateway verbundenen Organisation eine API.
-
Verwenden Sie ein API-Testtool oder einen Befehl, um eine HTTPS GET-Anfrage an die Dienst-URL der API zu stellen.
Zum Beispiel, für den Organisationsnamen
JBExample, die Organisations-ID123456, den Umgebungs-URL-Präfixdevelopment, die API-Version 1 und den DienststammhealthProbewäre die Dienst-URL der APIhttps://JBExample123456.jitterbit.net/development/v1/healthProbein der NA-Region. -
Führen Sie den Aufruf erneut aus, ersetzen Sie jedoch Ihren Organisationsnamen und Ihre ID sowie den Harmony-Region-Domainnamen (
jitterbit.net,jitterbit.ccoderjitterbit.eu) durch die Subdomain und Domain Ihres Gateways.Die Verwendung des vorherigen Beispiels mit einer Gateway-Domain von
mysubdomain.example.comführt zu einer privaten API-Gateway-URL vonhttps://mysubdomain.example.com/development/v1/healthProbe.
Selbsttest-Utility
Das integrierte Selbsttest-Utility des Gateways führt eine Reihe automatischer Tests durch, die das Importieren eines integrierten Projekts und einer API sowie das Aufrufen der API über das Gateway umfassen, um die ordnungsgemäße Konfiguration sicherzustellen.
Die API wird mit der Option Nur SSL aktiviert erstellt, was bedeutet, dass der Zugriff auf die private API-Gateway-URL nur über HTTPS getestet wird. Um den Zugriff über HTTP zu ermöglichen, können Sie die Option Nur SSL in der API-Konfiguration deaktivieren, nachdem die Test-API erstellt wurde.
Eine API-URL muss in Ihrem Abonnement verfügbar sein, damit der Selbsttest erfolgreich ist.
Um das Selbsttest-Utility auszuführen, befolgen Sie diese Schritte:
-
Öffnen Sie eine Shell-Sitzung auf einem laufenden Container:
docker exec -it jitterbit-gateway bash -
Führen Sie das Selbsttest-Utility aus:
/usr/bin/jitterbit-api-gateway-config --test