Freigeben über


Erstellen eines Azure Logic Apps Rules Engine-Projekts mit Visual Studio Code

Gilt für: Azure Logic Apps (Standard)

Wenn Sie Geschäftslogik in Ihre Standardworkflows in Azure Logic Apps integrieren möchten, können Sie mit Visual Studio Code ein Azure Logic Apps-Regel-Engine-Projekt erstellen. Regeln steuern die Geschäftslogik für die Ausführung von Geschäftsprozessen.

In dieser Schrittanleitung erfahren Sie, wie Sie ein Azure Logic Apps-Regel-Engine-Projekt erstellen:

  • Voraussetzungen und Setup für das Erstellen Ihres Azure Logic Apps-Regel-Engine-Projekts, einschließlich der Erstellung der Geschäftsregeln für Ihr Projekt mit Microsoft Rules Composer

  • Exportieren Sie ggf. vorhandene Regeln aus Microsoft BizTalk Server.

  • Erstellen Sie mit Visual Studio Code ein Standard-Logic Apps-Projekt für die Azure Logic Apps-Regel-Engine.

Voraussetzungen

Bevor Sie Ihr Projekt erstellen

Um ein erfolgreiches Regel-Engine-Projekt sicherzustellen, führen Sie die folgenden allgemeinen Aufgaben und bewährten Methoden aus:

  1. Bestimmen Sie, wie sich die Geschäftsregeln in Ihre Geschäftsprozesse einfügen.

  2. Planen Sie, wie Sie Geschäftsregeln in die Anwendung integrieren.

  3. Identifizieren Sie die Geschäftslogik, die in der Anwendung durch Regeln dargestellt werden soll.

    Der Begriff „Geschäftslogik“ kann sich auf viele Dinge beziehen. Beispielsweise kann eine Geschäftslogik „Für Bestellungen über 500 Dollar eine Genehmigung durch Vorgesetzte erzwingen“ lauten.

  4. Identifizieren Sie Datenquellen für die Regelelemente. Sie können auch Vokabulare definieren, die domänenspezifische Terminologie für die zugrunde liegenden Bindungen repräsentiert.

  5. Definieren Sie die anzuwendenden Regeln aus den Vokabulardefinitionen oder direkt aus Datenbindungen. Erstellen Sie aus diesen Regeln ein Regelsatz, der Ihre Geschäftslogik darstellt.

Exportieren von Regeln aus Microsoft BizTalk Server

Um vorhandene Regeln aus Microsoft BizTalk Server wiederzuverwenden, können Sie sie exportieren. Datenbankfakten werden derzeit jedoch nicht unterstützt. Bevor Sie Ihre Regeln exportieren, müssen Sie diese mithilfe von Microsoft BizTalk Rules Composer entfernen oder in andere Faktentypen umgestalten.

  1. Starten Sie in Microsoft BizTalk Server den Assistenten für die Bereitstellung von Geschäftsregel-Engines.

  2. Wählen Sie auf der Seite Willkommen die Option Weiter aus.

  3. Wählen Sie auf der Seite Bereitstellungsaufgabe die Option Richtlinie/Vokabular aus einer Datei in eine Datenbank exportieren und dann Weiter aus.

  4. Wählen Sie auf der Seite Richtlinienspeicher in der Liste SQL Server-Name Ihren SQL Server aus. Wählen Sie in der Konfigurationsdatenbank in der ausgewählten Serverliste BizTalkRuleEngineDb und dann Weiter aus.

  5. Wählen Sie auf der Seite Richtlinie/Vokabular exportieren in der Liste Richtlinie die gewünschte Richtlinie aus. Um die Definitionsdatei zu suchen und auszuwählen, wählen Sie Durchsuchen aus.

  6. Klicken Sie abschließend auf Weiter.

  7. Überprüfen Sie die Informationen zu Server, Datenbank und Richtlinie oder Vokabular, und wählen Sie Weiter aus.

  8. Wählen Sie nach dem Abschluss von Import oder Export Weiter aus.

  9. Überprüfen Sie den Abschlussstatus des Import- bzw. Exportvorgangs, und wählen Sie dann auf Fertig stellen aus.

Erstellen eines Azure Logic Apps-Regel-Engine-Projekts

  1. Wählen Sie auf der Aktivitätsleiste in Visual Studio Code das Azure-Symbol aus. (Tastatur: UMSCHALT+ALT+A)

  2. Wählen Sie im dadurch geöffneten Fenster Azure auf der Symbolleiste des Abschnitts Arbeitsbereich im Menü Azure Logic Apps die Option Neuen Logik-App-Arbeitsbereich erstellen aus.

    Screenshot: Visual Studio Code, Fenster „Azure“, Symbolleiste des Abschnitts „Arbeitsbereich“ und ausgewählte Option „Neuen Logik-App-Arbeitsbereich erstellen“.

  3. Navigieren Sie im Feld Ordner auswählen zum lokalen Ordner, den Sie für Ihr Projekt erstellt haben.

  4. Wenn das Eingabeaufforderungsfeld Erstellen eines neuen Logik-App-Arbeitsbereichs angezeigt wird, geben Sie einen Namen für Ihren Arbeitsbereich ein:

    Screenshot von Visual Studio Code mit der Aufforderung zur Eingabe des Arbeitsbereichsnamens

    Dieses Beispiel wird mit MyLogicAppRulesWorkspace fortgesetzt.

  5. Wenn das Eingabeaufforderungsfeld "Auswählen einer Projektvorlage für Ihren Logik-App-Arbeitsbereich " angezeigt wird, wählen Sie "Logik-App mit Regelmodulprojekt" aus.

    Screenshot von Visual Studio Code mit Aufforderung zur Auswahl der Projektvorlage für den Logik-App-Arbeitsbereich

  6. Geben Sie anhand der nachfolgenden Eingabeaufforderungen die folgenden Informationen an:

    Artikel Beispielswert
    Funktionsname für Funktionsprojekt RulesFunction
    Namespacename für Funktionsprojekt Contoso
    Logik-App: LogicApp-
    Workflowvorlage:
    - Zustandsbehafteter Workflow
    - Zustandsloser Workflow
    Zustandsbehafteter Workflow
    Workflowname MyRulesWorkflow
  7. Wählen Sie In aktuellem Fenster öffnen aus.

    Nachdem Sie diesen Schritt abgeschlossen haben, erstellt Visual Studio Code Ihren Arbeitsbereich, der standardmäßig ein Funktionsprojekt und ein Logik-App-Regel-Engine-Projekt enthält, z. B.:

    Screenshot: Visual Studio Code mit erstelltem Arbeitsbereich.

    Knoten BESCHREIBUNG
    < arbeitsbereichname> Enthält sowohl Ihr Funktionsprojekt als auch Ihr Logik-App-Workflowprojekt.
    Funktion Enthält die Artefakte für Ihr Funktionsprojekt. Beispielsweise ist die Datei <funktionsname>.cs die Codedatei, in der Sie Ihren Code erstellen können.
    LogicApp- Enthält die Artefakte für Ihr Logik-App-Regel-Engine-Projekt, einschließlich eines Workflows.

Schreiben des Codes für die Regel-Engine

  1. Erweitern Sie in Ihrem Arbeitsbereich den Knoten Funktionen, falls dieser noch nicht erweitert ist.

  2. Öffnen Sie die Datei <funktionsname>.cs (in diesem Beispiel RulesFunction.cs).

    Standardmäßig enthält diese Datei Beispielcode, der die folgenden Codeelemente sowie ggf. die zuvor bereitgestellten Beispielwerte enthält:

    • Namespacename
    • Klassenname
    • Funktionsname
    • Funktionsparameter
    • Rückgabetyp
    • Komplexer Typ

    Das folgende Beispiel zeigt den vollständigen Beispielcode für die Funktion mit dem Namen RulesFunction:

    //------------------------------------------------------------
    // Copyright (c) Microsoft Corporation. All rights reserved.
    //------------------------------------------------------------
    
    namespace Contoso
    {
         using System;
         using System.Collections.Generic;
         using System.Threading.Tasks;
         using Microsoft.Azure.Functions.Extensions.Workflows;
         using Microsoft.Azure.WebJobs;
         using Microsoft.Azure.Workflows.RuleEngine;
         using Microsoft.Azure.Workflows.RuleEngine.Common;
         using Microsoft.Extensions.Logging;
         using System.Xml;
         using System.Text;
    
         /// <summary>
         /// Represents the RulesFunction flow invoked function.
         /// </summary>
         public class RulesFunction
         {
             private readonly ILogger<RulesFunction> logger;
    
             private FileStoreRuleExplorer ruleExplorer;
    
             public RulesFunction(ILoggerFactory loggerFactory)
             {
                 logger = loggerFactory.CreateLogger<RulesFunction>();
                 this.ruleExplorer = new FileStoreRuleExplorer(loggerFactory); 
             }
    
             /// <summary>
             /// Executes the logic app workflow.
             /// </summary>
             /// <param name="ruleSetName">The rule set name.</param>
             /// <param name="documentType">document type of input xml.</param>
             /// <param name="inputXml">input xml type fact</param>
             /// <param name="purchaseAmount">purchase amount, value used to create .NET fact </param>
             /// <param name="zipCode">zip code value used to create .NET fact .</param>
             [FunctionName("RulesFunction")]
             public Task<RuleExecutionResult> RunRules(
                 [WorkflowActionTrigger] string ruleSetName, 
                 string documentType, 
                 string inputXml, 
                 int purchaseAmount, 
                 string zipCode)
             {
             /***** Summary of steps below *****
                  * 1. Get the rule set to Execute 
                  * 2. Check if the rule set was retrieved successfully
                  * 3. create the rule engine object
                  * 4. Create TypedXmlDocument facts for all xml document facts
                  * 5. Initialize .NET facts
                  * 6. Execute rule engine
                  * 7. Retrieve relevant updates facts and send them back
             */
    
                 try
                 {
                     var ruleSet = this.ruleExplorer.GetRuleSet(ruleSetName);
    
                     // Check if ruleset exists
                     if(ruleSet == null)
                     {
                         // Log an error in finding the rule set
                         this.logger.LogCritical($"RuleSet instance for '{ruleSetName}' was not found(null)");
                         throw new Exception($"RuleSet instance for '{ruleSetName}' was not found.");
                     }             
    
                     // Create rule engine instance
                     var ruleEngine = new RuleEngine(ruleSet: ruleSet);
    
                     // Create a typedXml Fact(s) from input xml(s)
                     XmlDocument doc = new XmlDocument();
                     doc.LoadXml(inputXml);
                     var typedXmlDocument = new TypedXmlDocument(documentType, doc);
    
                     // Initialize .NET facts
                     var currentPurchase = new ContosoNamespace.ContosoPurchase(purchaseAmount, zipCode);
    
                     // Provide facts to rule engine and run it
                     ruleEngine.Execute(new object[] { typedXmlDocument, currentPurchase });
    
                     // Send the relevant results(facts) back
                     var updatedDoc = typedXmlDocument.Document as XmlDocument;
                     var ruleExectionOutput = new RuleExecutionResult()
                     {
                         XmlDoc = updatedDoc.OuterXml,
                         PurchaseAmountPostTax = currentPurchase.PurchaseAmount + currentPurchase.GetSalesTax()
                     };
    
                     return Task.FromResult(ruleExectionOutput);
                 }
                 catch(RuleEngineException ruleEngineException)
                 {
                     // Log any rule engine exceptions
                     this.logger.LogCritical(ruleEngineException.ToString());
                     throw;
                 }
                 catch(XmlException xmlException)
                 {
                     // Log any xml exceptions
                     this.logger.LogCritical("Encountered exception while handling xml. " + xmlException.ToString());
                     throw;
                 }
                 catch(Exception ex)
                 {
                     // Log any other exceptions
                     this.logger.LogCritical(ex.ToString());
                     throw;
                 }
             }
    
             /// <summary>
             /// Results of the rule execution
             /// </summary>
             public class RuleExecutionResult
             {
                 /// <summary>
                 /// rules updated xml document
                 /// </summary>
                 public string XmlDoc { get; set;}
    
                 /// <summary>
                 /// Purchase amount post tax
                 /// </summary>
                 public int PurchaseAmountPostTax { get; set;}
             }
         }
    }
    

    Die Funktionsdefinition für RulesFunction enthält eine RunRules-Standardmethode, die Sie für die ersten Schritte verwenden können. Diese RunRules-Beispielmethode zeigt, wie Parameter an die Azure Logic Apps-Regel-Engine übergeben werden. In diesem Beispiel übergibt die Methode den Regelsatznamen, den Eingabedokumenttyp, einen XML-Fakt und noch andere Werte für die weitere Verarbeitung.

    Die Datei <function-name>.cs enthält außerdem die ILogger-Schnittstelle, die Unterstützung für die Protokollierung von Ereignissen einer Application Insights-Ressource bietet. Sie können Ablaufverfolgungsinformationen an Application Insights senden und diese Informationen zusammen mit den Ablaufverfolgungsinformationen aus Ihren Workflows speichern. Die <Datei "Funktionsname>.cs " enthält auch das FileStoreRuleExplorer Objekt, das auf das Regelset zugreift. Wie Sie beobachten können, verwendet der Konstruktor für das FileStoreRuleExplorerloggerFactory Senden von Telemetrieinformationen auch an Application Insights:

    private readonly ILogger<RulesFunction> logger;
    
    private FileStoreRuleExplorer ruleExplorer;
    
    public RulesFunction(ILoggerFactory loggerFactory)
         {
             logger = loggerFactory.CreateLogger<RulesFunction>();
             this.ruleExplorer = new FileStoreRuleExplorer(loggerFactory); 
         }
    
        <...>
    
    

    Die Azure Logic Apps-Regel-Engine funktioniert wie in den folgenden Schritten beschrieben:

    1. Die Engine verwendet das FileStoreRuleExplorer-Objekt, um auf den Regelsatz zuzugreifen. Die Regelsatzdatei wird im Verzeichnis Rules für Ihre Standard-Logik-App gespeichert.

      In diesem Beispiel hat die Regelsatzdatei die Bezeichnung SampleRuleSet.xml und wurde entweder mit Microsoft Rules Composer erstellt oder mit Microsoft BizTalk Server exportiert.

    var ruleSet = this.ruleExplorer.GetRuleSet(ruleSetName);
    
    // Check if ruleset exists
    if(ruleSet == null)
    {
    // Log an error in finding the rule set
      this.logger.LogCritical($"RuleSet instance for '{ruleSetName}' was not found(null)");
      throw new Exception($"RuleSet instance for '{ruleSetName}' was not found.");
    }             
    

    Wichtig

    Regelsätze enthalten Verweise auf ihre Fakten. Microsoft Rules Composer sucht nach den Assemblys der Fakten, um das Regelset für die Bearbeitung zu validieren. Zum Öffnen von Regelsätzen wie SampleRuleSet.xml in Microsoft Rules Composer müssen Sie sie zusammen mit den zugehörigen .NET-Faktenassemblys speichern. Andernfalls wird eine Ausnahme ausgelöst.

    1. Die Engine verwendet das ruleSet-Objekt, um eine Instanz des RuleEngine-Objekts zu erstellen.

    2. Das RuleEngine-Objekt empfängt die Fakten der Regel mit der Execute-Methode.

      In diesem Beispiel empfängt die Execute-Methode zwei Fakten: einen XML-Fakt namens typedXmlDocument und einen .NET-Fakt namens currentPurchase.

      Nachdem die Engine ausgeführt wurde, werden die Faktenwerte mit den Werten überschrieben, die sich aus der Engine-Ausführung ergeben:

    // Create rule engine instance
    var ruleEngine = new RuleEngine(ruleSet: ruleSet);
    // Create a typedXml Fact(s) from input xml(s)
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(inputXml);
    var typedXmlDocument = new TypedXmlDocument(documentType, doc);
    // Initialize .NET facts
    var currentPurchase = new ContosoNamespace.ContosoPurchase(purchaseAmount, zipCode);
    // Provide facts to rule engine and run it
    ruleEngine.Execute(new object[] { typedXmlDocument, currentPurchase });
    // Send the relevant results(facts) back
       var updatedDoc = typedXmlDocument.Document as XmlDocument;
    
    1. Das Modul verwendet die benutzerdefinierte RuleExecutionResult-Klasse, um die Werte an die RunRules-Methode zurückzugeben:
    var ruleExectionOutput = new RuleExecutionResult()
                 {
                     XmlDoc = updatedDoc.OuterXml,
                     PurchaseAmountPostTax = currentPurchase.PurchaseAmount + currentPurchase.GetSalesTax()
                 };
    
                 return Task.FromResult(ruleExectionOutput);
    
    1. Ersetzen Sie den Beispielfunktionscode durch Ihren eigenen, und bearbeiten Sie die RunRules-Standardmethode für Ihre eigenen Szenarien.

      In diesem Beispiel wird der Beispielcode weiterhin ohne Änderungen genutzt.

Kompilieren und Erstellen Ihres Codes

Nachdem Sie das Schreiben des Codes abgeschlossen haben, kompilieren Sie ihn, um sicherzustellen, dass keine Buildfehler vorhanden sind. Ihr Funktionsprojekt enthält automatisch Buildaufgaben, die Ihre benutzerdefinierten Codebibliotheken, einschließlich Ihrer .NET-Faktenassemblys, kompilieren und dann im Ordner lib\custom in Ihrem Logik-App-Projekt hinzufügen. In diesem Ordner suchen Workflows nach benutzerdefinierten Funktionen, die ausgeführt werden sollen. Diese Aufgaben legen die Assemblys im Ordner lib\custom\net472 ab.

  1. Wählen Sie in Visual Studio Code im Menü Terminal die Option Neues Terminal aus.

  2. Wählen Sie in der angezeigten Arbeitsverzeichnisliste Funktionen als aktuelles Arbeitsverzeichnis für das neue Terminal aus.

    Screenshot: Visual Studio Code, Eingabeaufforderung für aktuelles Arbeitsverzeichnis und ausgewähltes Verzeichnis „Funktionen“.

    Visual Studio Code öffnet ein Terminalfenster mit einer Eingabeaufforderung.

  3. Geben Sie im Terminalfenster an der Eingabeaufforderung dotnet restore .\RulesFunction.csproj ein.

    Screenshot: Visual Studio Code, Terminalfenster und ausgeführter Befehl „dotnet restore“.

  4. Wenn die Eingabeaufforderung wieder angezeigt wird, geben Sie dotnet build .\RulesFunction.csproj ein.

    Wenn Ihr Build erfolgreich ist, wird im Terminalfenster die Meldung Build erfolgreich ausgegeben.

  5. Vergewissern Sie sich, dass die folgenden Elemente in Ihrem Logik-App-Projekt vorhanden sind:

    • Erweitern Sie in Ihrem Arbeitsbereich die folgenden Ordner: LogicApp>lib\custom>net472. Vergewissern Sie sich, dass der Unterordner net472 die verschiedenen Assemblys enthält, die zum Ausführen des Codes erforderlich sind, einschließlich einer Datei namens <funktionsname>.dll.

    • Erweitern Sie in Ihrem Arbeitsbereich die folgenden Ordner: LogicApp>lib\custom><function-name>. Vergewissern Sie sich, dass der Unterordner <function-name> eine Datei namensfunction.json enthält, die die Metadaten für den von Ihnen geschriebenen Funktionscode enthält. Der Workflow-Designer verwendet diese Datei, um die erforderlichen Eingaben und Ausgaben zu bestimmen, wenn Ihr Code aufgerufen wird.

    Das folgende Beispiel zeigt generierte Assemblys und andere Dateien im Logik-App-Projekt:

    Screenshot des Logik-App-Arbeitsbereichs mit Funktionsprojekt und Logik-App-Projekt, jetzt mit den generierten Assemblys und anderen erforderlichen Dateien

Aufrufen Ihrer Regeln aus einem Workflow

Nachdem Sie sich vergewissert haben, dass Ihr Code kompiliert wird und dass Ihr Logik-App-Regel-Engine-Projekt die erforderlichen Dateien für die Ausführung Ihres Codes enthält, öffnen Sie den Standardworkflow, der in Ihrem Logik-App-Projekt enthalten ist.

  1. Erweitern Sie in Ihrem Arbeitsbereich unter LogicApp den Knoten <workflowname>, öffnen Sie das Kontextmenü für workflow.json, und wählen Sie Designer öffnen aus.

    Im Workflow-Designer, der geöffnet wird, wird der Standardworkflow, der in Ihrem Logik-App-Projekt enthalten ist, mit dem folgenden Trigger und den folgenden Aktionen angezeigt:

  2. Wählen Sie die Aktion namens Lokale Funktion in dieser Logik-App aufrufen aus.

    Der Informationsbereich der Aktion wird auf der rechten Seite geöffnet.

    Screenshot: Visual Studio Code, Workflow-Designer und Standardworkflow mit Trigger und Aktionen.

  3. Überprüfen Sie, ob der Parameterwert Funktionsname auf die auszuführende Regelfunktion festgelegt ist. Überprüfen oder ändern Sie alle anderen Parameterwerte, die ihre Funktion verwendet.

Debuggen von Code und Workflow

  1. Wiederholen Sie die folgenden Schritte, um den Azurite-Speicheremulator drei Mal zu starten: jeweils ein Mal für die folgenden Azure Storage-Dienste:

    • Azure-Blob-Dienst
    • Azure Queue Service
    • Azure-Tabellendienst
    1. Wählen Sie in Visual Studio Code im Menü Ansicht die Option Befehlspalette aus.

    2. Suchen Sie an der angezeigten Eingabeaufforderung nach Azurite: Blobdienst starten, und wählen Sie diese Option aus.

    3. Wählen Sie in der angezeigten Arbeitsverzeichnisliste LogicApp aus.

    4. Wiederholen Sie diese Schritte für Azurite: Warteschlangendienst starten und Azurite: Tabellendienst starten.

    Sie sind erfolgreich, wenn die Taskleiste von Visual Studio Code unten auf dem Bildschirm die drei ausgeführten Speicherdienste anzeigt, z. B.:

    Screenshot: Taskleiste von Visual Studio Code mit ausgeführten Azure Blob Service-, Azure Queue Service- und Azure Table Service-Instanzen.

  2. Wählen Sie auf der Aktivitätsleiste von Visual Studio Code Ausführen und Debuggen aus. (Tastenkombination: STRG+UMSCHALT+D)

    Screenshot: Visual Studio Code-Aktivitätsleiste mit ausgewählter Option „Ausführen und Debuggen“.

  3. Wählen Sie in der Liste Ausführen und Debuggen die Option An Logik-App anfügen (LogicApp) aus, falls nicht bereits ausgewählt, und wählen Sie dann Wiedergeben (grüner Pfeil) aus.

    Screenshot: Liste „Ausführen und Debuggen“ mit ausgewählter Option „An Logik-App anfügen“ und Schaltfläche „Wiedergeben“.

    Das Terminalfenster wird geöffnet und zeigt den gestarteten Debugprozess an. Anschließend wird das Fenster Debugkonsole angezeigt, in dem die Debugstatus angezeigt werden. Unten in Visual Studio Code färbt sich die Taskleiste orange und zeigt damit an, dass der .NET-Debugger geladen ist.

  4. Um Haltepunkte festzulegen, suchen Sie in Ihrer Funktionsdefinition (<funktionsname>.cs) oder Workflowdefinition (workflow.json) nach der Zeilennummer, an der Sie den Haltepunkt verwenden möchten, und wählen Sie die Spalte auf der linken Seite aus, z. B.:

    Screenshot: Visual Studio Code und die geöffnete Funktionscodedatei mit für eine Zeile im Code festgelegtem Breakpoint.

  5. Um den Anforderungstrigger in Ihrem Workflow manuell auszuführen, öffnen Sie die Seite Übersicht des Workflows.

    1. Öffnen Sie in Ihrem Logik-App-Projekt das Kontextmenü der Datei workflow.json, und wählen Sie Übersicht aus.

      Auf der Seite Übersicht des Workflows ist die Schaltfläche Trigger ausführen verfügbar, wenn Sie den Workflow manuell starten möchten. Unter Workfloweigenschaften ist der Wert der Rückruf-URL die URL für einen aufrufbaren Endpunkt, der vom Anforderungstrigger in Ihrem Workflow erstellt wird. Sie können Anforderungen an diese URL senden, um Ihren Workflow aus anderen Apps auszulösen, einschließlich anderer Logik-App-Workflows.

      Screenshot: Visual Studio Code und geöffnete Seite „Übersicht“ des Workflows.

  6. Wählen Sie in der Symbolleiste der Seite Übersicht die Option Trigger ausführen aus.

    Nachdem der Workflow mit der Ausführung begonnen hat, aktiviert der Debugger Ihren ersten Breakpoint.

  7. Wählen Sie im Menü Ausführen oder in der Symbolleiste des Debuggers eine Debugaktion aus.

    Nach Abschluss der Workflowausführung werden auf der Seite Übersicht die fertige Ausführung und grundlegende Details zu dieser Ausführung angezeigt.

  8. Wählen Sie die beendete Ausführung aus, um weitere Informationen zur Workflowausführung zu überprüfen. Sie können auch in der Liste neben der Spalte Dauer die Option Ausführung anzeigen auswählen.

    Screenshot: Visual Studio Code und abgeschlossene Workflowausführung.

  9. Führen Sie die Schritte unter "Vorbereiten für die Bereitstellung" aus, um Ihre Logik-Apps mit dem Regelmodul-Projekt in Azure Logic Apps bereitzustellen.