Erstellen und Ausführen von .NET-Code aus Workflows vom Typ „Standard“ in Azure Logic Apps

Gilt für: Azure Logic Apps (Standard)

Für Integrationslösungen, bei denen Sie .NET-Code über Ihren Standard-Logik-App-Workflow erstellen und ausführen müssen, können Sie Visual Studio Code mit der Erweiterung „Azure Logic Apps (Standard)“ verwenden. Diese Erweiterung bietet die folgenden Funktionen und Vorteile:

  • Erstellen Sie Ihren eigenen Code, indem Sie Funktionen erstellen, die die Flexibilität und Kontrolle haben, um Ihre anspruchsvollsten Integrationsprobleme zu lösen.
  • Lokales Debuggen von Code in Visual Studio Code. Schrittweises Durchlaufen von Code und Workflows in derselben Debugsitzung.
  • Bereitstellen von Code zusammen mit Workflows. Es sind keine weiteren Dienstpläne erforderlich.
  • Unterstützung von BizTalk Server-Migrationsszenarien, damit Sie benutzerdefinierte .NET-Investitionen mit Lift and Shift aus einer lokalen Umgebung in die Cloud verschieben können.

Durch die Möglichkeit, Ihren eigenen Code zu schreiben, können Sie Szenarien wie die folgenden ausführen:

  • Implementierung benutzerdefinierter Geschäftslogik
  • Benutzerdefinierte Analyse zum Extrahieren von Informationen aus einer eingehenden Nachricht
  • Datenüberprüfung und einfache Transformationen
  • Nachrichtenformung für ausgehende Nachrichten an ein anderes System, z. B. eine API
  • Berechnungen

Diese Funktion eignet sich jedoch nicht für Szenarien wie die folgenden:

  • Prozesse, deren Ausführung länger als 10 Minuten dauert
  • Große Nachrichten- und Datentransformationen
  • Komplexe Batchverarbeitungs- und Debatchingszenarien
  • BizTalk Server-Pipelinekomponenten, die Streaming implementieren

Weitere Informationen zu Einschränkungen in Azure Logic Apps finden Sie unter Grenzwerte und Konfiguration – Azure Logic Apps.

Voraussetzungen

  • Ein Azure-Konto und ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.

  • Aktuelle Visual Studio Code-Version mit der Erweiterung „Azure Logic Apps (Standard)“. Informationen zum Erfüllen dieser Anforderungen finden Sie unter den Voraussetzungen zum Erstellen von Standardworkflows in Azure Logic Apps mit einem Mandanten mit Visual Studio Code.

    • Die Funktion für benutzerdefinierte Funktionen ist derzeit nur in Visual Studio Code unter einem Windows-Betriebssystem verfügbar.

    • Das Feature für benutzerdefinierte Funktionen unterstützt derzeit das Aufrufen von .NET Framework und .NET 8 für von Azure gehostete Logik-App-Workflows.

  • Ein lokaler Ordner, der zum Erstellen Ihres Codeprojekts verwendet werden soll

Begrenzungen

  • Eine benutzerdefinierte Funktonserstellung ist derzeit im Azure-Portal nicht verfügbar. Nachdem Sie Ihre Funktionen jedoch aus Visual Studio Code in Azure bereitgestellt haben, führen Sie die Schritte unter Aufrufen des Codes aus einem Workflow für das Azure-Portal aus. Sie können die integrierte Aktion namens Aufrufen einer lokalen Funktion in dieser Logik-App verwenden, um aus den bereitgestellten benutzerdefinierten Funktionen auszuwählen und den Code auszuführen. Nachfolgende Aktionen in Ihrem Workflow können wie in jedem anderen Workflow auf die Ausgaben dieser Funktionen verweisen. Sie können den Ausführungsverlauf, Eingaben und Ausgaben für die integrierte Aktion anzeigen.

  • Benutzerdefinierte Funktionen verwenden einen isolierten Worker, um den Code in Ihrem Logik-App-Workflow aufzurufen. Um Paketverweise zwischen Ihrem eigenen Funktionscode und dem Worker zu vermeiden, verwenden Sie dieselben Paketversionen, auf die vom Worker verwiesen wird. Die vollständige(n) Paketliste und -versionen, auf die der Worker verweist, finden Sie unter Worker- und Paketabhängigkeiten.

Erstellen eines Codeprojekts

Die neueste Erweiterung Azure Logic Apps (Standard) für Visual Studio Code enthält eine Codeprojektvorlage, die eine optimierte Benutzeroberfläche zum Schreiben, Debuggen und Bereitstellen Ihres eigenen Codes mit Ihren Workflows bietet. Diese Projektvorlage erstellt eine Arbeitsbereichsdatei und zwei Beispielprojekte: ein Projekt zum Schreiben Ihres Codes, das andere Projekt zum Erstellen Ihrer Workflows.

Hinweis

Sie können nicht denselben Projektordner sowohl für Ihren Code als auch für Workflows verwenden.

  1. Öffnen Sie Visual Studio Code. Wählen Sie in der Aktivitätsleiste das Symbol Azure 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 MyLogicAppWorkspacefortgesetzt.

  5. Wenn das Eingabeaufforderungsfeld Wählen Sie eine Vorlage für Ihr Ihren logischen Arbeitsbereich aus angezeigt wird, wählen Sie Logik-App mit benutzerdefiniertem Code-Projekt aus.

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

  6. Befolgen Sie für von Azure gehostete Standard-Logik-App-Workflows die Eingabeaufforderung, um entweder .NET Framework oder .NET 8 auszuwählen.

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

    Artikel Beispielwert
    Funktionsname für Ihr .NET-Funktionsprojekt WeatherForecast
    Namespacename für Ihr .NET-Funktionsprojekt Contoso.Enterprise
    Workflowvorlage:
    - Zustandsbehafteter Workflow
    - Zustandsloser Workflow
    Zustandsbehafteter Workflow
    Workflowname MyWorkflow
  8. Wählen Sie In aktuellem Fenster öffnen aus.

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

    Screenshot: Visual Studio Code mit erstelltem Arbeitsbereich.

    Knoten BESCHREIBUNG
    <arbeitsbereichname> Enthält sowohl Ihr .NET-Funktionsprojekt als auch Ihr Logik-App-Workflowprojekt.
    Funktionen Enthält die Artefakte für Ihr .NET-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-Projekt, einschließlich eines leeren Workflows.

Schreiben Ihres Codes

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

  2. Öffnen Sie die Datei <function-name>.cs-Datei, die in diesem Beispiel WeatherForecast.cs- heißt.

    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:

    //------------------------------------------------------------
    // Copyright (c) Microsoft Corporation. All rights reserved.
    //------------------------------------------------------------
    
    namespace Contoso.Enterprise
    {
        using System;
        using System.Collections.Generic;
        using System.Threading.Tasks;
        using Microsoft.Azure.Functions.Extensions.Workflows;
        using Microsoft.Azure.WebJobs;
        using Microsoft.Extensions.Logging;
    
        /// <summary>
        /// Represents the WeatherForecast flow invoked function.
        /// </summary>
        public class WeatherForecast
        {
    
            private readonly ILogger<WeatherForecast> logger;
    
            public WeatherForecast(ILoggerFactory loggerFactory)
            {
                logger = loggerFactory.CreateLogger<WeatherForecast>();
            }
    
            /// <summary>
            /// Executes the logic app workflow.
            /// </summary>
            /// <param name="zipCode">The zip code.</param>
            /// <param name="temperatureScale">The temperature scale (e.g., Celsius or Fahrenheit).</param>
            [FunctionName("WeatherForecast")]
            public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale)
            {
    
                this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale);
    
                // Generate random temperature within a range based on the temperature scale
                Random rnd = new Random();
                var currentTemp = temperatureScale == "Celsius" ? rnd.Next(1, 30) : rnd.Next(40, 90);
                var lowTemp = currentTemp - 10;
                var highTemp = currentTemp + 10;
    
                // Create a Weather object with the temperature information
                var weather = new Weather()
                {
                    ZipCode = zipCode,
                    CurrentWeather = $"The current weather is {currentTemp} {temperatureScale}",
                    DayLow = $"The low for the day is {lowTemp} {temperatureScale}",
                    DayHigh = $"The high for the day is {highTemp} {temperatureScale}"
                };
    
                return Task.FromResult(weather);
            }
    
            /// <summary>
            /// Represents the weather information for WeatherForecast.
            /// </summary>
            public class Weather
            {
                /// <summary>
                /// Gets or sets the zip code.
                /// </summary>
                public int ZipCode { get; set; }
    
                /// <summary>
                /// Gets or sets the current weather.
                /// </summary>
                public string CurrentWeather { get; set; }
    
                /// <summary>
                /// Gets or sets the low temperature for the day.
                /// </summary>
                public string DayLow { get; set; }
    
                /// <summary>
                /// Gets or sets the high temperature for the day.
                /// </summary>
                public string DayHigh { get; set; }
            }
        }
    }
    

    Die Funktionsdefinition enthält eine Run-Standardmethode, die Sie für die ersten Schritte verwenden können. Diese Run-Beispielmethode veranschaulicht einige der mit dem Feature verfügbaren Funktionen, z. B. das Übergeben verschiedener Ein- und Ausgaben, einschließlich komplexer .NET-Typen.

    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, z. B.:

    private readonly ILogger<WeatherForecast> logger;
    
    public WeatherForecast(ILoggerFactory loggerFactory)
    {
        logger = loggerFactory.CreateLogger<WeatherForecast>();
    }
    
    [FunctionName("WeatherForecast")]
    public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale)
    {
    
        this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale);
    
        <...>
    
    }
    
  3. Ersetzen Sie den Beispielfunktionscode durch Ihren eigenen, und bearbeiten Sie die Run-Standardmethode für Ihre eigenen Szenarien. Alternativ können Sie die Funktion (einschließlich der [FunctionName("<*function-name*>")] Deklaration) kopieren und dann die Funktion mit einem eindeutigen Namen umbenennen. Sie können dann die umbenannte Funktion gemäß Ihren Anforderungen bearbeiten.

In diesem Beispiel wird der Beispielcode 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 .NET-Funktionsprojekt enthält automatisch Buildtasks, die Ihren Code kompilieren und anschließend dem Ordner lib\custom in Ihrem Logik-App-Projekt hinzufügen, wo Workflows nach benutzerdefinierten Funktionen suchen, die ausgeführt werden sollen. Diese Aufgaben platzieren die Assemblys basierend auf Ihrer .NET-Version im Ordner lib\custom\net472 oder lib\custom\net8.

  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 ein.

    Visual Studio Code analysiert Ihre Projekte und ermittelt, ob sie auf dem neuesten Stand sind.

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

  4. Nachdem die Eingabeaufforderung erneut angezeigt wird, geben Sie dotnet build ein. Wählen Sie im Menü Terminal die Option Task ausführen aus. Wählen Sie in der Taskliste Build (Functions) aus.

    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 je nach .NET-Version die folgenden Ordner: LogicApp>lib\custom>net472 oder net8. Vergewissern Sie sich, dass der Unterordner mit dem Namen net472 oder net8 die Assemblydateien (DLL) 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: Visual Studio Code und Logik-App-Arbeitsbereich mit .NET-Funktionsprojekt und Logik-App-Projekt, jetzt mit den generierten Assemblys und anderen erforderlichen Dateien

Aufrufen des Codes aus einem Workflow

Nachdem Sie bestätigt haben, dass Ihr Code kompiliert wird und dass Ihr Logik-App-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 Aufrufen einer lokalen Funktion in dieser Logik-App 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 Funktion 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. Fügen Sie den Debugger an Ihr Logik-App-Projekt an, indem Sie die folgenden Schritte ausführen:

    1. 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“.

    2. 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.

  3. Fügen Sie den Debugger an Ihr .NET-Funktionsprojekt an, indem Sie basierend auf Ihrem Code die folgenden Schritte ausführen:

    .NET 8-Projekte

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

    2. Suchen Sie in der Befehlspalette Debuggen: An einen .NET 5+- oder .NET Core-Prozess anfügen, und wählen Sie die Option aus.

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

    3. Suchen Sie in der Liste den Prozess dotnet.exe, und wählen Sie ihn aus. Wenn mehrere Prozess vom Typ dotnet.exe vorhanden sind, wählen Sie den Prozess mit dem folgenden Pfad aus:

      <Treibername>:\Users<Benutzername>.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows<Erweiterungspaketversion>\CustomCodeNetFxWorker\net8\Microsoft.Azure.Workflows.Functions.CustomCodeNetFxWorker.dll

    .NET Framework-Projekte

    Wählen Sie in der Liste Ausführen und Debuggen die Option An .NET-Funktionen anfügen (Funktionen) aus, sofern noch nicht geschehen, und wählen Sie dann Wiedergeben (grüner Pfeil) aus.

    Screenshot: Liste „Ausführen und Debuggen“ mit ausgewählter Option „An .NET-Funktionen anfügen (Funktionen)“ und Schaltfläche „Wiedergeben“

  4. Um Breakpoints festzulegen, suchen Sie in Ihrer Funktionsdefinition (<funktionsname>.cs) oder Workflowdefinition (workflow.json) nach der Zeilennummer, an der Sie den Breakpoint 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.

Bereitstellen Ihres Codes

Sie können Ihre benutzerdefinierten Funktionen auf die gleiche Weise wie Ihr Logik-App-Projekt bereitstellen. Unabhängig davon, ob Sie die Bereitstellung über Visual Studio Code vornehmen oder einen CI/CD-DevOps-Prozess verwenden, stellen Sie sicher, dass Sie Ihren Code erstellen und dass alle abhängigen Assemblys im folgenden Logik-App-Projektordner vorhanden sind, bevor Sie die Bereitstellung vornehmen:

  • .NET 4.7.2: Ordner lib/custom/net472

  • .NET 8: Ordner lib/custom/net8

Weitere Informationen finden Sie unter Bereitstellen von Standardworkflows aus Visual Studio Code in Azure.

Behandeln von Problemen

Fehler im Bereich „Aktionsinformationen“

Wenn Sie im Workflow-Designer die integrierte Aktion namens Lokale Funktion in dieser Logik-App aufrufen auswählen, wird im Informationsbereich der Aktion die folgende Meldung angezeigt:

Failed to retrieve dynamic inputs. Error details:

Überprüfen Sie in diesem Szenario Ihr Logik-App-Projekt, um herauszufinden, ob der Ordner LogicApp\lib\custom leer ist. Wenn er leer ist, wählen Sie im Terminalmenü die OptionTask ausführen>Funktionen erstellen aus.

Derzeit wird kein Prozess mit dem angegebenen Namen ausgeführt.

Wenn Sie diese Fehlermeldung erhalten, wenn Sie Ihren Workflow ausführen, ist der Debuggerprozess wahrscheinlich nicht an Ihre Logik-App, sondern an .NET Functions angefügt.

Um dieses Problem zu beheben, wählen Sie in der Liste Ausführen und Debuggen die Option An Logik-App anfügen (LogicApp) aus, und wählen Sie dann Wiedergeben (grünes Dreieck) aus.

Paket nicht ordnungsgemäß importiert

Wenn im Ausgabefenster ein Fehler ähnlich der folgenden Meldung angezeigt wird, stellen Sie sicher, dass mindestens .NET 6.0 installiert ist. Wenn Sie diese Version installiert haben, versuchen Sie, sie zu deinstallieren und dann erneut zu installieren.

C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.targets(83,5): warning : The ExtensionsMetadataGenerator package was not imported correctly. Are you missing 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets' or 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props'? [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] WeatherForecast -> C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\\bin\Debug\net472\WeatherForecast.dll C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : It was not possible to find any compatible framework version [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The specified framework 'Microsoft.NETCore.App', version '6.0.0' was not found. [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : - Check application dependencies and target a framework version installed at: [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj]

Buildfehler

Wenn Ihre Funktion keine Variablen enthält und Sie Ihren Code erstellen, werden im Ausgabefenster möglicherweise die folgenden Fehlermeldungen angezeigt:

C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]

Build FAILED.

C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]

0 Warning(s)
2 Error(s)

Um dieses Problem zu beheben, fügen Sie in der Run-Methode Ihres Codes den folgenden Parameter an:

string parameter1 = null

Das folgende Beispiel zeigt, wie die Run-Methodensignatur angezeigt wird:

public static Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale, string parameter1 = null)

Nächste Schritte

Erstellen von Standardworkflows mit Visual Studio Code