Release v2.0
Was ist neu
Neue Funktionen
Containerisierung mit Docker Compose: Die DataBridge kann nun direkt über
docker compose(bzw. Podman) lokal gestartet werden. Eine neuecompose.ymlsowie eine Beispiel-Umgebungsdatei (.podman/podman.env.sample) sind enthalten. Das Start-Skriptstart-local.sh/start-local.ps1baut den Container, startet ihn und gibt alle HTTP-Trigger-URLs inkl. Authentication-Key direkt aus.Robustere Initialisierung in GetChanges: Die Timer-Funktion
GetChangesinitialisiert den CoreService jetzt threadsicher (Mutex-Pattern). Schlägt die Initialisierung fehl, wird sie beim nächsten Timer-Durchlauf automatisch erneut versucht (Self-Repair) — analog zuProcessQueueItems.ASP.NET Core HTTP-Integration: Die Azure Functions App nutzt nun das ASP.NET Core-Integrationsmodell (
ConfigureFunctionsWebApplication). Dies ist die empfohlene Methode ab .NET 8+ und ermöglicht vollständigere HTTP-Features.Custom Metrics: Die DataBridge sendet eigene, pre-aggregierte Metriken an Application Insights (Namespace
DataBridge). Erste Metrik:ChangesDetectedmit DimensionJobName— Anzahl erkannter Änderungen pro Job und GetChanges-Lauf, inkl. Null-Werten. Sichtbar im Metrics Explorer und in der TabellecustomMetrics; Details unter Betrieb → Logging.Gepuffertes Logging mit selektiver App-Insights-Weiterleitung: Alle Log-Einträge einer Funktionsausführung werden zunächst im Arbeitsspeicher gepuffert und erst am Ende der Ausführung — abhängig vom Ergebnis — selektiv an Azure Application Insights gesendet. Im Fehlerfall stehen damit auch alle Debug-Einträge rückwirkend zur Verfügung, ohne dass sie bei erfolgreichen Läufen Kosten verursachen. Das Verhalten lässt sich über die Umgebungsvariablen
TELEMETRY_CONTROLundTELEMETRY_INFO_SAMPLE_RATEsteuern. Eine vollständige Beschreibung befindet sich unter Betrieb → Logging.Trace-Level für Live-Diagnose: Log-Einträge auf Level
Trace(LogTrace) werden nie an Application Insights gesendet — auch nicht bei Fehler-Läufen. Sie sind ausschließlich live sichtbar: lokal in der Konsole bzw. im Container-Log, in Azure im Log Stream der Function App. Details unter Betrieb → Logging.
Fehlerbehebungen & Verbesserungen
Korrekte Zeitstempel und Request-Zuordnung für gepufferte Traces: Gepufferte Log-Einträge tragen in Application Insights jetzt den Zeitpunkt des ursprünglichen Log-Aufrufs statt des Sendens am Invocation-Ende. Zusätzlich wird
operation_ParentIdgesetzt, sodass Traces in der End-to-End-Transaktionsansicht korrekt unter dem Request der Invocation eingeordnet werden statt als verwaiste Einträge zu erscheinen.CheckList erkennt
_-Felder korrekt: Die Diagnose-FunktionCheckListhat_-präfixierte Source-Felder (z.B._wysa_address1_countryid) fälschlich als fehlende Attribute gemeldet. Diese Felder werden zur Laufzeit überSourceOperationsaufgelöst und sind keine direkten Connector-Attribute — sie werden nun korrekt übersprungen.HTTP-Funktionen auf async umgestellt:
GetInfo,CheckListundExecuteHttpRequestverwendeten synchrone I/O-Operationen (WriteString,.Wait()), die mit dem ASP.NET Core-Modus nicht kompatibel sind. Alle drei Funktionen sind jetzt vollständig aufasync/awaitumgestellt.Blockierendes Initialisierungsproblem in GetChanges behoben: Die bisherige Initialisierung blockierte den Thread (
.Wait()). Dies wurde aufasync/awaitumgestellt, womit Deadlocks unter Last verhindert werden.Versionsverwaltung in der Pipeline zentralisiert: Major- und Minor-Version (
2.0) werden nun zentral in der Pipeline-Datei gepflegt statt verteilt in den Build-Templates.Automatischer Pipeline-Trigger: Die Build-Pipeline startet jetzt automatisch bei Push auf
mainundpreview(vorher: nur manuell auslösbar).Global-Artifact-Veröffentlichung nur von
main: Das NuGet-Paketdsyr-databridgewird nur noch beim Build aus demmain-Branch veröffentlicht, nicht mehr auspreview.NuGet-Pakete aktualisiert: Alle Abhängigkeiten wurden auf aktuelle Versionen angehoben (u.a.
Azure.Identity1.21,Microsoft.Data.SqlClient7.0,MySql.Data9.7,Npgsql10.0.2,Oracle.ManagedDataAccess.Core23.26.200).BcConnector: Duplikate bei HTTP-Fehlern verhindert: Beim Nachschlagen von Datensätzen (
RetrieveRecordByKey,RetrieveRecordByFilter) wurde bei unerwarteten HTTP-Statuscodes bisher stillschweigendnullzurückgegeben — das System legte daraufhin fälschlich einen neuen Datensatz an und erzeugte Duplikate. Beide Methoden werfen jetzt eine Exception mit dem konkreten Statuscode, wenn der Server weder Erfolg noch 404 zurückliefert.Veraltete ARM-Templates entfernt: Legacy-ARM-Deployment-Profile und veraltete AppInsights-ARM-Dateien wurden aus dem Repository entfernt.
Docker-Build-Kontext bereinigt: Das
.dockerignorewurde erweitert, sodass nur noch der tatsächlich benötigte Anwendungscode ins Image gelangt (.git/,docfx/,bicep/,cicd/,bruno/und lokale Start-Scripts werden nun explizit ausgeschlossen).
Installationshinweise
Neue / geänderte App-Settings (Azure Function)
Folgende neue App-Settings stehen zur Verfügung. Beide sind optional — ohne Konfiguration gelten die dokumentierten Standardwerte.
| Setting | Typ | Standard | Beschreibung |
|---|---|---|---|
TELEMETRY_CONTROL | String | (leer) | TRACE_ALL sendet alle Log-Einträge unabhängig vom Ergebnis; TRACE_NONE unterdrückt alle Einträge; TRACE_SAMPLE entspricht dem Standardverhalten (selektives Sampling, wie leer) |
TELEMETRY_INFO_SAMPLE_RATE | Integer (0–100) | 20 | Prozentsatz der Information-Einträge, die bei erfolgreichen Läufen an App Insights gesendet werden |
Neue Azure-Ressourcen (Bicep)
Es wurden keine neuen Azure-Ressourcen hinzugefügt.
Breaking Changes & Migrationsschritte
Laufzeitversion auf .NET 10 aktualisieren Die Azure Function App muss auf .NET 10 (Isolated Worker) aktualisiert werden. Im Azure Portal: Function App → Konfiguration → Allgemeine Einstellungen → .NET-Version → 10 (LTS, Isolated) Im Bicep-Script wird
netFrameworkVersionautomatisch auf10.0gesetzt — ein Redeployment über die Pipeline genügt.Container-Image aktualisieren Falls die DataBridge containerisiert betrieben wird: Das neue Image basiert auf .NET 10. Tag:
acrwysatest.azurecr.io/containered-connector:v2.0.0Bestehende Images auf .NET 8 Basis sind nicht kompatibel und müssen ersetzt werden.Build-Agent in eigenen Pipelines prüfen Die offizielle Pipeline nutzt jetzt
windows-2025als Build-Agent. Eigene abgeleitete Pipelines sollten entsprechend angepasst werden.