Erstellen und Ausführen von .NET Framework-Code aus Standardworkflows in Azure Logic Apps

Gilt für: Azure Logic Apps (Standard)

Für Integrationslösungen, bei denen Sie .NET Framework-Code aus Ihrem Logik-App-Standardworkflow 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 Framework-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.

  • Visual Studio Code 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.

    • Diese benutzerdefinierten Funktion unterstützen derzeit nur das Aufrufen von .NET Framework 4.7.2-Assemblys.

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

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 shows Visual Studio Code, Azure window, Workspace section toolbar, and selected option for Create new logic app workspace.

  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 shows Visual Studio Code with prompt to enter workspace name.

    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 shows Visual Studio Code with prompt to select project template for logic app workspace.

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

    Artikel Beispielswert
    Funktionsname für Funktionsprojekt WeatherForecast
    Namespacename für Funktionsprojekt Contoso.Enterprise
    Workflowvorlage:
    - Zustandsbehafteter Workflow
    - Zustandsloser Workflow
    Zustandsbehafteter Workflow
    Workflowname MyWorkflow
  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-Projekt enthält, z. B.:

    Screenshot shows Visual Studio Code with created workspace.

    Node BESCHREIBUNG
    <arbeitsbereichname> Enthält sowohl Ihr Funktionsprojekt als auch Ihr Logik-App-Workflowprojekt.
    Funktionen 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-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 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 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 shows Visual Studio Code, prompt for current working directory, and selected Functions directory.

    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 shows Visual Studio Code, Terminal window, and completed dotnet restore command.

  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 die folgenden Ordner: LogicApp>lib\custom>net472. Vergewissern Sie sich, dass der Unterordner mit dem Namen net472 die verschiedenen Assemblydateien (DLL) enthält, die zum Ausführen des Codes erforderlich sind, einschließlich einer Datei namens <function-name>.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 shows Visual Studio Code and logic app workspace with function project and logic app project, now with the generated assemblies and other required files.

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 shows Visual Studio Code, workflow designer, and default workflow with trigger and actions.

  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 shows Visual Studio Code taskbar with Azure Blob Service, Azure Queue Service, and Azure Table Service running.

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

    Screenshot shows Visual Studio Code Activity Bar with Run and Debug selected.

  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 shows Run and Debug list with Attach to logic app selected and Play button selected.

    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. Wählen Sie in der Liste Ausführen und Debuggen die Option An .NET Functions anfügen (Functions) und dann Wiedergeben (grüner Pfeil) aus.

    Screenshot shows Run and Debug list with Attach to NET Functions selected and Play button selected.

  5. 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 shows Visual Studio Code and the open function code file with a breakpoint set for a line in code.

  6. 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 shows Visual Studio Code and workflow's Overview page opened.

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

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

  9. 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 shows Visual Studio Code and finished workflow run.

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 von Visual Studio Code aus vornehmen oder einen CI/CD-DevOps-Prozess verwenden, stellen Sie sicher, dass Sie Ihren Code erstellen und dass alle abhängigen Assemblys im Ordner lib/custom/net472 des Logic-App-Projekts vorhanden sind, bevor Sie die Bereitstellung vornehmen. 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 .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