<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Debuggen on dsyr.DataBridge</title><link>https://databridge.docs.dsyr.de/entwicklung/debuggen/</link><description>Recent content in Debuggen on dsyr.DataBridge</description><generator>Hugo</generator><language>de</language><atom:link href="https://databridge.docs.dsyr.de/entwicklung/debuggen/index.xml" rel="self" type="application/rss+xml"/><item><title>Gegen Podman debuggen</title><link>https://databridge.docs.dsyr.de/entwicklung/debuggen/podman/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/entwicklung/debuggen/podman/</guid><description>&lt;p&gt;Voraussetzung ist die &lt;a href="../../lokale-testumgebung/"&gt;Podman-Testumgebung&lt;/a&gt;. Der &lt;code&gt;databridge&lt;/code&gt;-Container&#10;würde sonst Port 7062 belegen, deshalb startet &lt;code&gt;up.sh&lt;/code&gt;/&lt;code&gt;up.ps1&lt;/code&gt; alles außer der DataBridge selbst:&lt;/p&gt;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="windows (powershell)" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Windows (PowerShell)&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="linux / macos" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; Linux / macOS&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev\up.ps1 -HostMode mssql &lt;span style="color:#66d9ef"&gt;process&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="tab-body tab-pane fade"&#10; id="tabs-00-01" role="tabpanel" aria-labelled-by="tabs-00-01-tab" tabindex="0"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev/up.sh --host mssql process&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;code&gt;--host&lt;/code&gt; (bzw. &lt;code&gt;-HostMode&lt;/code&gt;) lässt sich mit allen anderen Argumenten kombinieren (Datenbanken,&#10;Mocks, &lt;code&gt;getchanges&lt;/code&gt;, &lt;code&gt;process&lt;/code&gt;, &lt;code&gt;servicebus&lt;/code&gt;) und startet alles außer dem &lt;code&gt;databridge&lt;/code&gt;-Container&#10;selbst (dafür gibt es das Profil &lt;code&gt;databridge&lt;/code&gt;, das sonst automatisch aktiv ist). Der Befehl&#10;generiert zusätzlich&#10;&lt;code&gt;src/DataBridge/local.settings.json&lt;/code&gt; aus der Vorlage &lt;code&gt;dev/local.settings.dev.json&lt;/code&gt; (Azurite über&#10;&lt;code&gt;UseDevelopmentStorage=true&lt;/code&gt;, Service-Bus-Emulator über &lt;code&gt;localhost&lt;/code&gt; statt über den&#10;Compose-Servicenamen &lt;code&gt;servicebus&lt;/code&gt;, sowie die Toggles aus &lt;code&gt;dev/.env&lt;/code&gt;, siehe&#10;&lt;a href="https://databridge.docs.dsyr.de/entwicklung/debuggen/podman/#getchangesprocessqueueitems-steuern"&gt;GetChanges/Process*QueueItems steuern&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Gegen echtes Azure debuggen</title><link>https://databridge.docs.dsyr.de/entwicklung/debuggen/cloud/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/entwicklung/debuggen/cloud/</guid><description>&lt;p&gt;Hier läuft kein Podman-Stack mit — die lokal gestartete DataBridge verbindet sich direkt mit einem&#10;echten Storage Account, einem echten Service Bus Namespace und den echten Quell-/Zielsystemen (BC,&#10;CE, NAV, SQL). Das ist der klassische Weg, um ein Problem aus einer konkreten Umgebung&#10;(z. B. &lt;code&gt;dsyr-wysatest&lt;/code&gt;) lokal nachzuvollziehen oder mit dem Debugger zu untersuchen.&lt;/p&gt;&#10;&lt;h2 id="localsettingsjson-vorbereiten"&gt;&lt;code&gt;local.settings.json&lt;/code&gt; vorbereiten&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;code&gt;src/DataBridge/sample.local.settings.json&lt;/code&gt; nach &lt;code&gt;src/DataBridge/local.settings.json&lt;/code&gt; kopieren&#10;(falls noch nicht vorhanden — die Datei ist in &lt;code&gt;.gitignore&lt;/code&gt;, geht also nicht versehentlich in&#10;einen Commit).&lt;/li&gt;&#10;&lt;li&gt;Die Platzhalter durch echte Werte aus dem Azure Portal bzw. Key Vault ersetzen:&#10;&lt;code&gt;AzureWebJobsStorage&lt;/code&gt; (Storage-Account-Connection-String), &lt;code&gt;ExportQueueServiceBus&lt;/code&gt;&#10;(Service-Bus-Connection-String) sowie die Connection-Strings/Secrets der Quell- und&#10;Zielsysteme, je nachdem was getestet werden soll. &lt;strong&gt;Diese Werte niemals committen&lt;/strong&gt; und nicht in&#10;Chats/Tickets einfügen.&lt;/li&gt;&#10;&lt;li&gt;Wenn &lt;code&gt;enableManagedIdentity&lt;/code&gt; in der Zielumgebung aktiv ist (siehe&#10;&lt;a href="https://databridge.docs.dsyr.de/entwicklung/architektur/"&gt;Identity-Verbindungen&lt;/a&gt; bzw. &lt;code&gt;SettingsService&lt;/code&gt;), fehlen dort&#10;Connection-Strings ganz — stattdessen &lt;code&gt;AzureWebJobsStorage__accountName&lt;/code&gt; und&#10;&lt;code&gt;ExportQueueServiceBus__fullyQualifiedNamespace&lt;/code&gt; setzen und lokal per &lt;code&gt;az login&lt;/code&gt; angemeldet&#10;sein, damit &lt;code&gt;DefaultAzureCredential&lt;/code&gt; greift. Das erfordert eine Rollenzuweisung für den&#10;eigenen Benutzer auf Storage und Service Bus (Data-Rollen, nicht nur Management), sonst schlägt&#10;der Verbindungstest beim Start fehl.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Podman überschreibt dieselbe Datei&lt;/div&gt;&#10;&lt;p&gt;&lt;code&gt;src/DataBridge/local.settings.json&lt;/code&gt; ist die &lt;strong&gt;einzige&lt;/strong&gt; Datei, aus der sowohl der Podman-Host-Modus&#10;als auch dieses Cloud-Setup lesen — es gibt keine zweite, von der Function-Runtime automatisch&#10;erkannte Datei. Läuft danach &lt;code&gt;dev/up.sh --host&lt;/code&gt;/&lt;code&gt;dev\up.ps1 -HostMode&lt;/code&gt; (siehe&#10;&lt;a href="../podman/"&gt;Debuggen → Gegen Podman&lt;/a&gt;), wird die Datei &lt;strong&gt;kommentarlos überschrieben&lt;/strong&gt; und die&#10;gerade eingetragenen echten Zugangsdaten sind weg. Wer beides abwechselnd nutzt, siehe&#10;&lt;a href="https://databridge.docs.dsyr.de/entwicklung/debuggen/cloud/#podman--und-cloud-settings-parallel-halten"&gt;Podman- und Cloud-Settings parallel halten&lt;/a&gt; weiter&#10;unten.&lt;/p&gt;&#10;&lt;/div&gt;</description></item></channel></rss>