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.
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 Erstellung 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 eine verbesserte Isolation, wodurch das Risiko unbeabsichtigter Interaktionen zwischen nicht verwandten Containern verringert wird.
-
Benutzerdefinierte Konfigurationen: Ermöglicht spezifische Netzwerkeinstellungen, wie z.B. Anpassungen 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. | P@5$w0rd |
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. | $(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-Email. | 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=
-
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 Self-Test-Utility testen.
Health-Check
Um sicherzustellen, dass ein privates API-Gateway wie erwartet funktioniert, testen Sie zunächst die Dienst-URL eines API Manager-APIs mit dem 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 denhealthProbe
-Service-Root wäre die Dienst-URL der APIhttps://JBExample123456.jitterbit.net/development/v1/healthProbe
in 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.cc
oderjitterbit.eu
) durch die Subdomain und Domain Ihres Gateways.Mit dem vorherigen Beispiel mit einer Gateway-Domain von
mysubdomain.example.com
ergibt sich eine URL des privaten API-Gateways vonhttps://mysubdomain.example.com/development/v1/healthProbe
.
Self-Test-Utility
Die integrierte Selbsttestfunktion 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 SSL nur 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 SSL nur 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 die Selbsttestfunktion auszuführen, befolgen Sie diese Schritte:
-
Öffnen Sie eine Shell-Sitzung in einem laufenden Container:
docker exec -it jitterbit-gateway bash
-
Führen Sie die Selbsttestfunktion aus:
/usr/bin/jitterbit-api-gateway-config --test