Zum Inhalt springen

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:
  • NA: https://services.jitterbit.net/apis
  • EMEA: https://services.jitterbit.eu/apis
  • APAC: https://services.jitterbit.cc/apis
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:

  1. Erstellen Sie im Verzeichnis, in dem Docker ausgeführt wird, ein Unterverzeichnis conf. Erstellen Sie darin eine Datei gateway.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=
    
  2. Setzen Sie die Variablenwerte wie im vorherigen Beispiel.

  3. 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
    
  4. (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:

  1. Erstellen und veröffentlichen Sie im API Manager in der mit dem privaten API-Gateway verbundenen Organisation eine API.

  2. 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-ID 123456, den Umgebungs-URL-Präfix development, die API-Version 1 und den healthProbe-Service-Root wäre die Dienst-URL der API https://JBExample123456.jitterbit.net/development/v1/healthProbe in der NA-Region.

  3. Führen Sie den Aufruf erneut aus, ersetzen Sie jedoch Ihren Organisationsnamen und Ihre ID sowie den Harmony-Region-Domainnamen (jitterbit.net, jitterbit.cc oder jitterbit.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 von https://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:

  1. Öffnen Sie eine Shell-Sitzung in einem laufenden Container:

    docker exec -it jitterbit-gateway bash
    
  2. Führen Sie die Selbsttestfunktion aus:

    /usr/bin/jitterbit-api-gateway-config --test