Container-Betrieb

Die DataBridge als Container bauen, in eine Azure Container Registry veröffentlichen und lokal starten — Beta.

Die DataBridge lässt sich als Container-Image bauen und betreiben. Das Image basiert auf der Azure-Functions-Laufzeit und enthält dieselbe Anwendung wie das reguläre Deployment.

Sinnvoll ist der Container-Betrieb derzeit vor allem für lokale Tests und Entwicklung: Die HTTP-Trigger lassen sich damit ohne Azure-Deployment aufrufen.

Voraussetzungen

WerkzeugZweck
Docker Desktop oder PodmanImage bauen und Container starten
Azure CLI (az)Anmeldung an der Azure Container Registry (nur zum Veröffentlichen)

Alle Befehle auf dieser Seite werden aus dem Ordner src/ ausgeführt — dort liegen Dockerfile, compose.yml und die Start-Scripts.

Image bauen

Das Dockerfile liegt in src/. Bei Bedarf lässt sich dort das Basis-Image anpassen.

docker build --tag acrwysatest.azurecr.io/containered-connector:v2.2.0 .
podman build --tag acrwysatest.azurecr.io/containered-connector:v2.2.0 .

Allgemein aufgebaut ist der Tag so:

{acr-name}.azurecr.io/{image-name}:{version}
BestandteilBedeutung
acr-nameName der Azure Container Registry
image-nameName des Images, z. B. containered-connector
versionVersionsnummer, üblicherweise dreistellig in der Form v2.1.0

In die Azure Container Registry veröffentlichen

Zunächst an Azure und anschließend an der Registry anmelden:

az login
az acr login --name acrwysatest

Danach das gebaute Image veröffentlichen:

docker push acrwysatest.azurecr.io/containered-connector:v2.2.0

Damit steht das Image unter der angegebenen Versionsnummer in der Registry bereit.

Lokal betreiben

Umgebungsdatei anlegen

In src/.podman/ liegt die Vorlage podman.env.sample. Diese kopieren und unter dem Namen podman.<Umgebung>.env ablegen, zum Beispiel podman.wysatest.env:

cp .podman/podman.env.sample .podman/podman.wysatest.env

Anschließend die Datei mit den Verbindungsdaten der Zielumgebung füllen. Sie enthält unter anderem AzureWebJobsStorage, ConnectionStrings__ExportQueueServiceBus, APPLICATIONINSIGHTS_CONNECTION_STRING, den Timer-Ausdruck GetChangesTimerExpression sowie die Funktions-Toggles.

Danach in src/compose.yml prüfen, dass env_file auf die richtige Datei verweist:

    env_file:
      - .podman/podman.wysatest.env

Der Container veröffentlicht seinen Port unter 7071 und setzt AzureWebJobsSecretStorageType=files, damit die Function-Keys im Container abgelegt werden können.

Start-Script (empfohlen)

Der einfachste Weg sind die mitgelieferten Start-Scripts in src/. Sie bauen das Image, starten den Container und geben anschließend alle HTTP-Trigger-URLs inklusive Authentication-Key aus.

bash start-local.sh
.\start-local.ps1

Die Ausgabe sieht dann ungefähr so aus:

============================================
 DataBridge lokal gestartet
============================================
 Master Key: abc123...

 HTTP-Trigger URLs:

 [GET]  http://127.0.0.1:7071/api/GetInfo?code=abc123...
 [GET]  http://127.0.0.1:7071/api/CheckList?code=abc123...
 [POST] http://127.0.0.1:7071/api/ExecuteJob?code=abc123...
 [POST] http://127.0.0.1:7071/api/ExecuteHttpRequest?code=abc123...
============================================

Die URLs lassen sich direkt im Browser öffnen oder in Bruno beziehungsweise curl verwenden.

Manueller Start

Wer den Container selbst steuern möchte, startet ihn aus dem Ordner src/:

podman compose up --build -d

Logs anzeigen:

podman compose logs -f

Container beenden:

podman compose down

Installation prüfen

Ob der Container korrekt läuft, lässt sich über die HTTP-Trigger prüfen — GetInfo liefert die Version, CheckList und Validate prüfen Mappings und Konfiguration. Die Details dazu stehen unter Installation.