Freigeben über


Erstellen und Ausführen von .NET Code aus Standardworkflows in Azure Logic Apps mithilfe von Visual Studio Code

Gilt für: Azure Logic Apps (Standard)

Wenn Ihr Integrationsszenario benutzerdefinierte Aufgaben oder Logik über die integrierten Vorgänge und Connectors in Azure Logic Apps hinaus benötigt, erstellen und ausführen Sie .NET Code als Custom-Funktionen in Ihren Standardworkflows. Ihr Workflow kann dann Aufgaben wie benutzerdefinierte Analyse, Validierung oder sogar Geschäftsregeln anwenden. Mithilfe dieser Funktion können Sie Szenarien wie die folgenden Aufgaben implementieren:

  • Anpassen der Geschäftslogikimplementierung.
  • Passen Sie die Analyse an, um Informationen aus einer eingehenden Nachricht zu extrahieren.
  • Durchführen von Datenüberprüfungen und einfachen Transformationen.
  • Durchführen von Berechnungen.
  • Gestalten Sie ausgehende Nachrichten, die an ein anderes System gesendet werden, z. B. eine API.

In diesem Handbuch wird gezeigt, wie Sie ihren eigenen .NET Code mithilfe von Visual Studio Code direkt in Standardworkflows schreiben und ausführen. Sie erfahren, wie Sie lokale Funktionen mithilfe von Visual Studio Code erstellen, debuggen und bereitstellen, damit Sie benutzerdefinierten Code und Workflow-Orchestrierung zusammenhalten, in einer Sitzung debuggen und als einzelne Lösung bereitstellen können.

Hinweis

Benutzerdefinierter Inline-.NET-Code eignet sich nicht für die folgenden Szenarien:

  • Ausführen von Prozessen, die 10 Minuten überschreiten können.
  • Versuch großer Nachrichten- und Datentransformationen.
  • Durchführen komplexer Batchverarbeitungs- und Debattierszenarien.
  • Verwenden von BizTalk-Serverpipelinekomponenten, die Streaming implementieren.

Weitere Informationen finden Sie unter "Einschränkungen".

Voraussetzungen

  • Ein Azure Konto und Abonnement. Get a free Azure account.

  • Das neueste Visual Studio Code mit der Erweiterung Azure Logic Apps (Standard).

    Voraussetzungen finden Sie unter Create Standard workflows in single-tenant Azure Logic Apps with Visual Studio Code.

    Die 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.
    • Debuggen Sie Code lokal 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ützen Sie BizTalk Server Migrationsszenarien, damit Sie benutzerdefinierte .NET Investitionen von lokal in die Cloud verschieben können.
  • Ein lokaler Ordner, der für Ihr Codeprojekt verwendet werden soll.

Einschränkungen

  • Sie können die Benutzerdefinierte Funktionen nur in Visual Studio Code verwenden, die auf Windows ausgeführt wird. Diese Funktion unterstützt die Verwendung von .NET Framework und .NET 8 für Workflows der Standardlogik-App, die auf Azure bereitgestellt und gehostet werden.

  • Sie können das Erstellen benutzerdefinierter Funktionen im Azure-Portal nicht nutzen. Führen Sie die folgenden Schritte aus, um mit Ausgaben aus benutzerdefinierten Funktionen in Ihrem Workflow zu arbeiten:

    1. Nachdem Sie Ihre Funktionen für Azure implementiert haben, führen Sie die Schritte in Rufen Sie Ihren Code aus einem Workflow auf für das Azure-Portal aus.

    2. Fügen Sie die integrierte Aktion namens "Aufrufen einer lokalen Funktion" in dieser Logik-App zu Ihrem Workflow hinzu. Wählen Sie die bereitgestellten benutzerdefinierten Funktionen aus, die Sie benötigen, und führen Sie den Code aus.

    3. Verwenden Sie nachfolgende Aktionen im Workflow, um auf die Ausgaben der benutzerdefinierten Funktion zu verweisen, wie Sie es auch in jedem anderen Workflow tun können. Sie können den Ausführungsverlauf, Eingaben und Ausgaben für die integrierte Aktion anzeigen.

Allgemeine Einschränkungen finden Sie unter Limits und Konfigurationsreferenz für Azure Logic Apps.

1: Erstellen eines Codeprojekts

Die Azure Logic Apps -Erweiterung (Standard) für Visual Studio Code enthält eine Codeprojektvorlage, die eine optimierte Oberflä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 des Codes und eines anderen Projekts zum Erstellen Ihrer Workflows.

Hinweis

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

Führen Sie die folgenden Schritte aus, um ein Codeprojekt zu erstellen:

  1. Melden Sie sich bei Ihrem Azure-Konto in Visual Studio Code an.

    Wenn die Anmeldung länger als üblich dauert, werden Sie von Visual Studio Code aufgefordert, sich über eine Microsoft-Authentifizierungswebsite anzumelden, indem Sie einen Gerätecode angeben. Führen Sie die folgenden Schritte aus, um sich stattdessen mit dem Code anzumelden:

    1. Wählen Sie "Gerätecode verwenden" und dann "Kopieren & Öffnen" aus.

    2. Wählen Sie "Link öffnen" , um ein neues Browserfenster zu öffnen und mit der Authentifizierungswebsite fortzufahren.

    3. Geben Sie auf der Seite Bei Ihrem Konto anmelden Ihren Authentifizierungscode ein, und wählen Sie Weiter aus.

  2. Wählen Sie auf der Aktivitätsleiste das Symbol Azure aus.

  3. Wechseln Sie im Fenster Azure zum Abschnitt Workspace. Bewegen Sie den Mauszeiger über den Titelbereich, sodass die Symbolleiste angezeigt wird.

  4. Wählen Sie im Menü Azure Logic Apps Neue Logik-App-Arbeitsbereich erstellen aus.

    Screenshot zeigt Visual Studio Code mit Azure-Fenster, Symbolleiste des Arbeitsbereichs und der ausgewählten Option für den 'Neue Logik-App erstellen'-Arbeitsbereich.

  5. Navigieren Sie im Fenster "Ordner auswählen " zum lokalen Projektordner, wählen Sie den Ordner und dann "Auswählen" aus.

  6. Geben Sie im Fenster " Neue Logik-App-Arbeitsbereich erstellen" für die Eingabeaufforderung " Arbeitsbereichsname " einen Namen für Ihren Arbeitsbereich ein, und drücken Sie dann die EINGABETASTE.

    In diesem Beispiel wird weather-app als der Arbeitsbereichsname verwendet.

    Screenshot der Eingabeaufforderung zum Eingeben eines Arbeitsbereichsnamens.

    In diesem Beispiel wird der Arbeitsbereichsname verwendet weather-project .

  7. Wählen Sie für die Eingabeaufforderung "Vorlage für das neue Projekt auswählen" die Option "Logik-App" mit benutzerdefiniertem Codeprojekt aus.

    Der Screenshot zeigt die Aufforderung zum Auswählen einer Projektvorlage.

  8. Wählen Sie für die Eingabeaufforderung Auswahl eines Zielframeworks entweder .NET Framework oder .NET 8 aus.

  9. Folgen Sie den nachfolgenden Anweisungen, um die folgenden Informationen bereitzustellen:

    Prompt Beispielwert
    Name der Logik-App weather-logic-app
    Funktionsname für Ihr .NET-Funktionsprojekt WeatherForecast
    Namespace für Ihr .NET-Funktionenprojekt Contoso.Enterprise
    Wählen Sie eine Vorlage für den ersten Workflow Ihres Projekts aus:

    - Zustandsbehafteter Workflow
    - Zustandsloser Workflow
    - Autonomer Agent
    - Konversationsagent
    - Jetzt überspringen
    Zustandsbehafteter Workflow
    Workflowname weather-workflow
  10. Wählen Sie bei der Aufforderung Auswahl, wie Sie Ihr Projekt öffnen möchten die Option "Im aktuellen Fenster öffnen" aus.

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

    Der Screenshot zeigt den erstellten Arbeitsbereich mit dem Logik-App-Projekt und dem .NET-Funktionen-Projekt.

    Beachten Sie im Explorer-Fenster die folgenden Ordner in Ihrem Arbeitsbereich:

    Ordner BESCHREIBUNG
    < Arbeitsbereichsname> Enthält sowohl Ihr .NET-Funktionen-Projekt als auch das Logik-App-Workflow-Projekt.
    < Logic-App-Name> Enthält die Dateien und andere Artefakte für Ihr Logik-App-Projekt. Beispielsweise ist die workflow.json Datei die Workflowdefinitionsdatei, in der Sie Ihren Workflow erstellen können.
    < Funktionsname> Enthält die Dateien und andere Artefakte für Ihr .NET Funktionen-Projekt. Beispielsweise ist die Datei <funktionsname>.cs die Codedatei, in der Sie Ihren Code erstellen können.
  11. Wählen Sie für die Enable Connectors für Azure für Logik-Apps <logic-app-name> Eingabeaufforderung Verbinder aus Azure aus.

  12. Wählen Sie für die Aufforderung Select subscription das gewünschte Azure Abonnement aus.

  13. Wählen Sie für die Eingabeaufforderung "Ressourcengruppe für neue Ressourcen auswählen" die gewünschte Ressourcengruppe oder "Neue Ressourcengruppe erstellen" aus.

  14. Wählen Sie bei der Aufforderung Auswahl eines Speicherorts für neue Ressourcen die Azure-Region zur Bereitstellung aus.

  15. Wählen Sie für die Select-Authentifizierungsmethode für Azure Connectors den Authentifizierungstyp aus, der für Verbindungen verwendet werden soll, die Authentifizierung benötigen.

    Authentifizierungsart BESCHREIBUNG
    Verwaltete Identität Wählen Sie verwaltete Dienstidentität aus, um die vom System zugewiesene oder vom Benutzer zugewiesene Identität in Ihrer Logik-App-Ressource zu verwenden.

    Standardmäßig verfügen Standardlogik-App-Ressourcen bereits über die vom System zugewiesene Identität. Sie müssen jedoch die Identität mit Rollenzugriff auf die Zielressource sowie alle anderen Anforderungen einrichten.

    Weitere Informationen finden Sie unter Zuweisen des rollenbasierten Zugriffs auf eine verwaltete Identität.
    Verbindungsschlüssel Richten Sie den Zugriff auf die Zielressource mithilfe von Verbindungszeichenfolgen und Zugriffstasten ein.

Nachdem Sie diese Schritte ausgeführt haben, fahren Sie mit dem nächsten Abschnitt fort, damit Sie Ihren Code erstellen können.

2: Schreiben des Codes

  1. Erweitern Sie im Explorer-Fenster den Funktionsprojektordner, und öffnen Sie die <Datei "Funktionsname>.cs ".

    Diese Datei enthält Beispielcode und bestimmte Codeelemente mit Werten, die Sie zuvor angegeben haben.

    In diesem Beispiel enthält die WeatherForecast.cs-Funktionsdatei diese Codeelemente mit Beispielwerten:

    Code-Element Wert
    Namespacename Contoso.Enterprise
    Klassenname WeatherForecast
    Funktionsname WeatherForecast
    Funktionsparameter zipcode, temperatureScale
    Rückgabetyp Task
    Komplexer Typ Weather

    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. In diesem Beispiel Run-Methode werden einige Funktionen veranschaulicht, die mit dem Feature für benutzerdefinierte Funktionen verfügbar sind, z. B. das Übergeben verschiedener Eingaben und Ausgaben, einschließlich komplexer .NET Typen.

    Die <Datei "Funktionsname>.cs enthält auch die Schnittstelle, die unterstützung für die ILogger Protokollierung von Ereignissen in einer Application Insights-Ressource bietet. Sie können Ablaufverfolgungsinformationen an Application Insights senden und diese Informationen 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);
    
        <...>
    
    }
    
  2. Ersetzen Sie den Beispielfunktionscode durch Ihren eigenen Code, und bearbeiten Sie die Standardmethode Run für Ihre spezifischen 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.

Dieses Beispiel wird mit dem ursprünglichen Beispielcode fortgesetzt, wobei keine Änderungen vorausgesetzt werden.

3: Kompilieren und Erstellen des Codes

Nachdem Sie den Code geschrieben haben, kompilieren Sie ihn, um sicherzustellen, dass keine Buildfehler vorhanden sind. Ihr .NET-Funktionsprojekt enthält automatisch Buildaufgaben, die Ihren Code zum lib\customOrdner in Ihrem Logik-App-Projekt kompilieren und hinzufügen, in dem Workflows nach benutzerdefinierten Funktionen suchen, die ausgeführt werden sollen. Je nach .NET-Version werden die Assemblies im Ordner lib\custom\net472 oder lib\custom\net8 abgelegt.

führen Sie die folgenden Schritte aus:

  1. Wählen Sie in Visual Studio Code auf der Aktivitätsleiste Explorer aus.

  2. Öffnen Sie im Explorer-Fenster das Kontextmenü für den Projektordner "Funktionen", und wählen Sie "Projekt für Buildfunktionen" aus.

    Screenshot des Kontextmenüs für das Projekt 'Funktionen' mit ausgewählter Option für das Erstellen des Funktionenprojekts.

    Der Buildvorgang wird für das Funktionsprojekt ausgeführt. Wenn ihr Build erfolgreich ist, zeigt das Terminalfenster eine Meldung "Build erfolgreich " an.

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

    • Erweitern Sie in Ihrem Arbeitsbereich die folgenden Ordner: <your-logic-app>>lib\custom>net472 oder net8, basierend auf Ihrer .NET-Version. Vergewissern Sie sich, dass der Unterordner mit dem Namen net472 oder net8 die Assemblydateien enthält, die zum Ausführen des Codes erforderlich sind, einschließlich einer Datei mit dem Namen<>.dll.

    • Erweitern Sie in Ihrem Arbeitsbereich die folgenden Ordner: <Ihre Logik-App>>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 zeigt den Logik-App-Arbeitsbereich mit .NET Funktionen und Logik-App-Projekten an. Die neu generierten Assemblys und andere erforderliche Dateien sind sichtbar.

4: Aufrufen des Codes aus einem Workflow

Nachdem Sie bestätigt haben, dass Ihr Code kompiliert wird und Ihr Logik-App-Projekt die erforderlichen Dateien enthält, damit Der Code ausgeführt werden kann, richten Sie den Workflow so ein, dass Der Code aufgerufen wird.

  1. Erweitern Sie im Explorer-Fenster den <Arbeitsbereichsnamen>, den <Logik-App-Namen> und dann den <Workflownamen>.

  2. Öffnen Sie das Kontextmenü für workflow.json, und wählen Sie "Designer öffnen" aus.

    Der Workflow-Designer wird geöffnet und zeigt den Standardworkflow mit den folgenden Triggern und Aktionen an:

    Operation BESCHREIBUNG
    Auslöser Der integrierte Anforderungstrigger namens "Wenn eine HTTP-Anforderung empfangen wird".
    Action Die integrierte Aktion namens "Aufrufen einer lokalen Funktion" in dieser Logik-App.
    Action Die integrierte Antwortaktion namens "Antwort ", die Sie verwenden, um dem Aufrufer nur zu antworten, wenn Sie den Anforderungstrigger verwenden.
  3. Wählen Sie im Designer die Aktion namens "Lokale Funktion aufrufen" in dieser Logik-App aus.

    Der Informationsbereich der Aktion wird geöffnet, sodass Sie den aufruf der benutzerdefinierten Funktion einrichten können, z. B.:

    Der Screenshot zeigt den Standardworkflow und dessen Trigger und Aktionen, die im Workflow-Designer geöffnet wurden.

  4. Überprüfen und bestätigen Sie, dass der Wert des Funktionsnamenparameters auf die Funktion festgelegt ist, die Sie ausführen möchten. Überprüfen oder ändern Sie alle anderen Parameterwerte, die ihre Funktion verwendet.

5: Debuggen ihres Codes und Workflows

  1. Starten Sie für jeden der folgenden Azure Storage Dienste den Azurite-Speicher-Emulator:

    • Azure Blob-Dienst
    • Azure Warteschlangendienst
    • Azure Tabellendienst
    1. Wählen Sie im Menü Visual Studio Code ViewBefehlspalette aus.

    2. Wählen Sie an der angezeigten Eingabeaufforderung "Azurite: Blob-Dienst starten " aus der Liste aus.

    3. Wählen Sie in der angezeigten Arbeitsverzeichnisliste Ihre Logik-App aus.

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

    Wenn Sie erfolgreich sind, zeigt die Visual Studio Code Taskleiste unten auf dem Bildschirm die drei ausgeführten Speicherdienste an.

  2. Fügen Sie den Debugger sowohl Ihrem Logik-App-Projekt als auch Ihrem .NET-Funktionen-Projekt an, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie in Visual Studio Code auf der Aktivitätsleiste Run and Debug (Tastatur: STRG+UMSCHALT+D) aus.

      Screenshot zeigt die Visual Studio Code Aktivitätsleiste mit ausgewählter Option

    2. Wählen Sie in der Liste Ausführen und Debuggen die Option Ausführen/Debuggen Logik-App mit lokaler Funktion (<Ihrer Logik-App>), und dann Start (grüner Pfeil).

      Screenshot der Liste

      Die folgenden Ereignisse treten auf:

      • Das Terminalfenster wird geöffnet und zeigt den gestarteten Debugprozess an.
      • Das Fenster "Debugkonsole " wird geöffnet und der Debugstatus angezeigt.
      • Am unteren Rand von Visual Studio Code wird die Statusleiste orange, was anzeigt, dass der .NET-Debugger geladen ist.
  3. Um Haltepunkte festzulegen, suchen Sie in Ihrer Funktionsdefinition (<Funktionsname>.cs) oder Workflowdefinition (workflow.json) die Zeilennummer, an der Sie den Haltepunkt wünschen, und wählen Sie die angrenzende Spalte aus, z. B.:

    Screenshot der geöffneten Funktionscodedatei mit einem Haltepunktsatz für eine Zeile im Code.

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

    1. Öffnen Sie im Logik-App-Projekt das Kontextmenü der workflow.json Datei, und wählen Sie dann "Ü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.

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

      Screenshot zeigt die geöffnete Übersichtsseite des Workflows und Visual Studio Code.

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

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

  5. 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 zeigt Visual Studio Code und fertige Workflowausführung.

6: Stelle deinen Code bereit

Stellen Sie Ihre benutzerdefinierten Funktionen auf die gleiche Weise bereit, wie Sie Ihr Logik-App-Projekt bereitstellen. Unabhängig davon, ob Sie von Visual Studio Code aus bereitstellen oder einen CI/CD-DevOps-Prozess verwenden, stellen Sie sicher, dass Sie Ihren Code kompilieren, bevor Sie ihn bereitstellen. Stellen Sie außerdem sicher, dass alle abhängigen Assemblys im folgenden Logik-App-Projektordner vorhanden sind, bevor Sie die Bereitstellung ausführen:

  • .NET 4.7.2: ordner lib/custom/net472

  • .NET 8: ordner lib/custom/net8

Weitere Informationen finden Sie unter Deploy Standard workflows from Visual Studio Code to 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 festzustellen, ob der Ordner LogicApp\lib\custom leer ist. Wenn sie leer ist, wählen Sie im Menü „Terminal“ die Option „Aufgabe ausführen>Funktionen bauen“ aus.

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

Wenn beim Ausführen des Workflows diese Fehlermeldung angezeigt wird, haben Sie wahrscheinlich den Debuggerprozess an .NET Funktionen und nicht an die Logik-App 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 angezeigt wird, der der folgenden Meldung ähnelt, 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)

Erstellen von Standardlogik-App-Workflows mit Visual Studio Code