Ein privates Jitterbit-API-Gateway auf Docker ausführen
Einführung
Dieser Abschnitt enthält Beispiele für verschiedene Möglichkeiten, ein privates API-Gateway auf Docker mithilfe von Jitterbits Docker-Image auszuführen.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie Folgendes:
-
Docker installiert und ausgeführt.
-
Ein Harmony-Konto mit Benutzername, Passwort und Organisations-ID.
-
Eine gültige API Manager-API in der Organisation, die dem privaten API-Gateway zugeordnet ist.
-
Falls das System hinter einem Forward-Proxy läuft, konfigurieren Sie die Firewall Ihres Hosts so, dass Proxy-Server-Ausnahmen zulässig sind.
-
(Optional) Für die automatische Generierung von TLS-Zertifikaten eine registrierte benutzerdefinierte Gateway-Domäne und deren vollqualifizierten Domänennamen (FQDN) im Format
mygateway.mydomain.com.
Interaktives Starten und Konfigurieren
Führen Sie Folgendes aus, um den Container zu starten und beantworten Sie dann die Eingabeaufforderungen (folgen Sie den Schritten zur Linux-Installationskonfiguration):
docker run --interactive --tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
jitterbit/private-gateway
Interaktives Starten und Konfigurieren mit Bridge-Netzwerk
Führen Sie Folgendes aus, um ein Bridge-Netzwerk zu erstellen und den Container mit diesem Netzwerk verbunden zu starten, und beantworten Sie dann 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 die folgenden Vorteile:
-
Container-Erkennung: Ermöglicht direkte Kommunikation mithilfe von Container-Namen und vermeidet die Abhängigkeit von IP-Adressen. Dies vereinfacht die Kommunikation zwischen Containern und ermöglicht es privaten Agenten, frei mit privaten Gateways zu kommunizieren.
-
Bessere Isolation: Bietet verbesserte Isolation und reduziert das Risiko unbeabsichtigter Wechselwirkungen zwischen nicht zusammenhängenden Containern.
-
Benutzerdefinierte Konfigurationen: Ermöglicht spezifische Netzwerkeinstellungen, z. B. Anpassung von Subnetz und Gateway.
-
Netzwerksegmentierung: Erleichtert die Segmentierung von Netzwerkverkehr und stellt sicher, dass Container in verschiedenen Bridge-Netzwerken sich nicht gegenseitig beeinflussen.
-
Netzwerkrichtlinien: Ermöglicht die Anwendung unterschiedlicher Netzwerkregeln oder -richtlinien und bietet erweiterte Kontrolle über die Container-Kommunikation.
Vorsicht
Wenn Sie eine containergestützte Multi-Gateway-Umgebung hinter einem Application Load Balancer (ALB) wie AWS ALB konfigurieren, müssen sich alle Gateway-Container auf demselben Host-Computer befinden.
Tipp
Verwenden Sie dasselbe Netzwerk, um Ihre Docker-basierten privaten Agenten auszuführen.
Unbeaufsichtigtes Starten mit Bridge-Netzwerk und Konfigurieren mit Umgebungsvariablen
Führen Sie Folgendes aus, um ein Bridge-Netzwerk zu erstellen und den Container im abgelösten Modus mit Werten zu starten, die ü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>" \
--env "MAX_DOMAIN_PARTS=<MAX_DOMAIN_PARTS>" \
jitterbit/private-gateway
Legen Sie die Variablenwerte wie folgt fest:
| Variable | Beschreibung | Beispiel |
|---|---|---|
HARMONY_USERNAME |
Harmony-Konto-Anmeldung. | name@example.com |
HARMONY_PASSWORD |
Harmony-Kontopasswort, im Klartext oder mit base64 verschlüsselt. |
P@5$w0rdUEA1Cg== (base64-codiert) |
ORGANIZATION_ID |
Harmony-Organisations-ID-Nummer. | 12345 |
SERVICE_URL |
Jitterbit-Service-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 |
Proxy-Server-Benutzername. | $(PROXY_SERVER_USERNAME) |
PROXY_PASSWORD |
Proxy-Server-Passwort, im Klartext oder mit base64 verschlüsselt. |
$(PROXY_SERVER_PASSWORD) |
LETS_ENCRYPT_ENABLED |
Let's Encrypt aktivieren (true oder false). |
true |
LETS_ENCRYPT_DOMAIN |
Let's Encrypt-Domänenname. Wenn der Domänenname Multibyte-Zeichen enthält, geben Sie dessen Punycode-Form ein. | gateway.mydomain.com |
LETS_ENCRYPT_EMAIL |
Let's Encrypt-Konto-E-Mail. | youremail@<mydomain>.com |
MAX_DOMAIN_PARTS |
Maximale Anzahl der in einem benutzerdefinierten vollqualifizierten Domänennamen (FQDN) unterstützten Subdomänen-Ebenen. Verfügbar seit Version 12.9. Das Gateway unterstützt standardmäßig bis zu 10 Subdomänen-Ebenen. Eine Erhöhung über den Standard von 10 erfordert, dass der Schlüssel MaxDomainParts bereits in gatewayconfig.yaml vorhanden ist; siehe Anmerkung unten. |
15 |
Wichtig
Der Schlüssel MaxDomainParts muss bereits in gatewayconfig.yaml vorhanden sein, bevor die Umgebungsvariable MAX_DOMAIN_PARTS wirksam wird. Das Startskript des Gateways aktualisiert nur den Wert eines vorhandenen Schlüssels MaxDomainParts; es fügt den Schlüssel nicht automatisch hinzu. So fügt man den Schlüssel zu einem laufenden Container hinzu:
-
Öffne eine Shell-Sitzung auf dem Container:
docker exec -it jb-gateway bash -
Füge den Schlüssel
MaxDomainPartszu/usr/local/openresty/nginx/conf/onpremise/gatewayconfig.yamlhinzu. Beispiel:MaxDomainParts: 15 -
Stoppe den Container und starte einen neuen Container mit demselben
docker run-Befehl, bei demMAX_DOMAIN_PARTSauf denselben Wert gesetzt ist.
Unbeaufsichtigtes Starten und Konfigurieren mit einer Umgebungsvariablendatei
Folge diesen Schritten, um den Container im Detached-Modus mit Umgebungsvariablen aus einer Datei zu starten:
-
Im Verzeichnis, in dem Docker ausgeführt wird, erstelle ein Unterverzeichnis
conf. Darin erstellst du eine Dateigateway.confmit den folgenden Umgebungsvariablen:conf/gateway.conf## # Jitterbit Private API Gateway Docker configuration # For more information, see https://docs.jitterbit.com/api-gateways/private/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= # Since private API gateway version 12.9, maximum number of subdomain levels supported in a custom fully qualified domain name (FQDN). # If not specified, the gateway supports up to 10 subdomain levels by default. # Requires the MaxDomainParts key to already exist in gatewayconfig.yaml; see the note under "Unattended start with bridge network and configure with environment variables". # MAX_DOMAIN_PARTS= ## 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 # If the domain name contains multibyte characters, enter its Punycode form. LETS_ENCRYPT_DOMAIN= # Used by Lets Encrypt to issue the certificate. (Usually your email address.) LETS_ENCRYPT_EMAIL=Passwortsicherheit
Seit der Private-API-Gateway-Version 11.51 können die Werte für
HARMONY_PASSWORDundPROXY_PASSWORDals Base64-codierte Zeichenfolgen bereitgestellt werden. Ob im Klartext oder Base64-codiert, diese Werte werden in der Ausgabelog maskiert (mit***). -
Lege die Variablenwerte wie im vorherigen Beispiel fest.
-
Führe den folgenden Befehl aus:
docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \ -v "$(pwd)/conf:/conf" \ jitterbit/private-gateway -
(Optional) Teste das Gateway.
Test
Du kannst ein laufendes Docker-Private-API-Gateway mit einer Integritätsprüfung oder dem Self-Test-Utility testen.
Integritätsprüfung
Um sicherzustellen, dass ein Private-API-Gateway wie erwartet funktioniert, teste zunächst die Service-URL einer API Manager-API mit dem Cloud-Gateway und teste dann die URL des Private-API-Gateways für denselben Endpunkt:
-
Erstelle und veröffentliche eine API in API Manager in der Organisation, die mit dem Private-API-Gateway verknüpft ist.
-
Sende mit einem API-Test-Tool oder Befehl eine HTTPS-GET-Anfrage an die Service-URL der API.
Beispiel: Bei Organisationsname
JBExample, Organisations-ID123456, URL-Präfixdevelopment, API-Versionsnummer 1 und Service-RoothealthProbewäre die Service-URL der APIhttps://JBExample123456.jitterbit.net/development/v1/healthProbein der NA-Region. -
Führe den Aufruf erneut durch, ersetze aber deinen Organisationsnamen und die ID sowie den Harmony-Regionsdomain-Namen (
jitterbit.net,jitterbit.ccoderjitterbit.eu) durch die Subdomäne und Domain des Gateways.Mit dem vorherigen Beispiel mit einer Gateway-Domain von
mysubdomain.example.comergibt sich eine Private-API-Gateway-URL vonhttps://mysubdomain.example.com/development/v1/healthProbe.
Self-Test-Utility
Das integrierte Self-Test-Utility des Gateways führt eine Reihe automatischer Tests durch, die das Importieren eines integrierten Projekts und einer API sowie den Aufruf der API über das Gateway umfassen, um eine ordnungsgemäße Konfiguration sicherzustellen.
Die API wird mit der Funktion Nur SSL erstellt, was bedeutet, dass der Zugriff auf die Private-API-Gateway-URL nur über HTTPS getestet wird. Um Zugriff über HTTP zu ermöglichen, kannst du die Funktion Nur SSL in der API-Konfiguration deaktivieren, nachdem die Test-API erstellt wurde.
Eine API-URL muss in deinem Abonnement verfügbar sein, damit das Self-Test erfolgreich ist.
Führe das Self-Test-Utility wie folgt aus:
-
Öffne eine Shell-Sitzung auf einem laufenden Container:
docker exec -it jitterbit-gateway bash -
Starte das Self-Test-Utility:
/usr/bin/jitterbit-api-gateway-config --test