esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
A következőkre vonatkozik: Azure Logic Apps (Standard)
Olyan integrációs megoldások esetén, ahol a Standard logikai alkalmazás munkafolyamatából kell létrehoznia és futtatnia a .NET-kódot, használhatja a Visual Studio Code-ot az Azure Logic Apps (Standard) bővítménysel. Ez a bővítmény a következő képességeket és előnyöket biztosítja:
A saját kód megírásának képességével olyan forgatókönyveket hajthat végre, mint a következők:
Ez a képesség nem alkalmas olyan helyzetekre, mint például a következők:
Az Azure Logic Apps korlátaival kapcsolatos további információkért lásd: Korlátok és konfiguráció – Azure Logic Apps.
Azure-fiók és -előfizetés. Ha még nincs előfizetése, regisztráljon egy ingyenes Azure-fiókra.
A legújabb Visual Studio Code az Azure Logic Apps (Standard) kiterjesztéssel. Ezeknek a követelményeknek való megfeleléshez tekintse meg az egybérlős Azure Logic Apps és a Visual Studio Code standard munkafolyamatainak létrehozásának előfeltételeit.
Az egyéni függvények képessége jelenleg csak Windows operációs rendszeren futó Visual Studio Code-ban érhető el.
Az egyéni függvények képessége jelenleg támogatja a .NET-keretrendszer és a .NET 8 meghívását az Azure által üzemeltetett logikai alkalmazások munkafolyamataihoz.
A kódprojekt létrehozásához használandó helyi mappa
Az egyéni függvények létrehozása jelenleg nem érhető el az Azure Portalon. Miután azonban üzembe helyezi a függvényeket a Visual Studio Code-ból az Azure-ba, kövesse a Kód meghívása az Azure Portal munkafolyamatából című témakörben leírt lépéseket. Ebben a logikai alkalmazásban a Helyi függvény meghívása nevű beépített művelet használatával választhat az üzembe helyezett egyéni függvényekből, és futtathatja a kódot. A munkafolyamat későbbi műveletei hivatkozhatnak ezekből a függvényekből származó kimenetekre, mint bármely más munkafolyamatban. Megtekintheti a beépített művelet futtatási előzményeit, bemeneteit és kimeneteit.
Az egyéni függvények izolált feldolgozóval hívják meg a kódot a logikai alkalmazás munkafolyamatában. Annak érdekében, hogy elkerülje a csomaghivatkozások ütközését a saját függvénykódja és a feldolgozó között, használja a feldolgozó által hivatkozott csomagverziókat. A teljes csomaglistát és a feldolgozó által hivatkozott verziókat lásd : Feldolgozó és csomagfüggőségek.
A Visual Studio Code legújabb Azure Logic Apps (Standard) bővítménye tartalmaz egy kódprojekt-sablont, amely leegyszerűsíti a saját kód írását, hibakeresését és üzembe helyezését a munkafolyamatokkal. Ez a projektsablon létrehoz egy munkaterületfájlt és két mintaprojektet: egy projektet a kód megírásához, a másik projektet a munkafolyamatok létrehozásához.
Megjegyzés
Nem használhatja ugyanazt a projektmappát a kódhoz és a munkafolyamatokhoz.
Nyissa meg a Visual Studio Code-ot. A tevékenységsávon válassza az Azure ikont. (Billentyűzet: Shift+Alt+A)
A megnyíló Azure-ablakban, a Munkaterület szakasz eszköztárán, az Azure Logic Apps menüben válassza az Új logikaialkalmazás-munkaterület létrehozása lehetőséget.
A Mappa kiválasztása párbeszédpanelen keresse meg és válassza ki a projekthez létrehozott helyi mappát.
Amikor megjelenik az Új logikaialkalmazás-munkaterület létrehozása párbeszédpanel, adja meg a munkaterület nevét:
Ez a példa a MyLogicAppWorkspace használatával folytatódik.
Amikor megjelenik a Select a project template for your logic app workspace prompt box, válassza az egyéni kódprojekttel rendelkező Logikai alkalmazás lehetőséget.
Az Azure által üzemeltetett Standard logikai alkalmazás munkafolyamatai esetén kövesse az utasításokat a .NET-keretrendszer vagy a .NET 8 kiválasztásához.
Kövesse a következő utasításokat a következő példaértékek megadásához:
Elem | Példaérték |
---|---|
A .NET-függvényprojekt függvényneve | WeatherForecast |
A .NET-függvényprojekt névterének neve | Contoso.Enterprise |
Munkafolyamat-sablon: - Állapotalapú munkafolyamat - Állapot nélküli munkafolyamat |
Állapotalapú munkafolyamat |
Munkafolyamat neve | MyWorkflow |
Válassza a Megnyitás az aktuális ablakban lehetőséget.
A lépés befejezése után a Visual Studio Code létrehozza a munkaterületet, amely alapértelmezés szerint tartalmaz egy .NET-függvényprojektet és egy logikai alkalmazásprojektet, például:
Csomópont | Leírás |
---|---|
<munkaterület neve> | A .NET-függvényprojektet és a logikai alkalmazás munkafolyamat-projektét is tartalmazza. |
Functions | A .NET-függvényprojekt összetevőit tartalmazza. A függvénynév.cs fájl például <az a kódfájl, amelyben a kódot létrehozhatja.> |
Logikai alkalmazás | Tartalmazza a logikai alkalmazásprojekt összetevőit, beleértve egy üres munkafolyamatot is. |
A munkaterületen bontsa ki a Functions csomópontot, ha még nem bontotta ki.
Nyissa meg a <példában WeatherForecast.cs nevű függvénynevet>.cs fájlt.
Alapértelmezés szerint ez a fájl mintakódot tartalmaz, amely a következő kódelemeket tartalmazza a korábban megadott példaértékekkel együtt, ha szükséges:
Az alábbi példa a teljes mintakódot mutatja be:
//------------------------------------------------------------
// 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; }
}
}
}
A függvénydefiníció egy alapértelmezett Run
metódust tartalmaz, amelyet az első lépésekhez használhat. Ez a mintametódus Run
bemutatja az egyéni függvények funkcióval elérhető képességek némelyikét, például különböző bemenetek és kimenetek átadását, beleértve az összetett .NET-típusokat is.
A <függvénynév>.cs fájl tartalmazza a ILogger
felületet is, amely támogatja az Application Insights-erőforrásokba történő naplózást. Nyomkövetési információkat küldhet az Application Insightsnak, és ezeket az információkat a munkafolyamatok nyomkövetési információi mellett tárolhatja, például:
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);
<...>
}
Cserélje le a mintafüggvénykódot a sajátra, és szerkessze a saját forgatókönyvek alapértelmezett Run
metódusát. Másolhatja a függvényt, beleértve a [FunctionName("<*function-name*>")]
deklarációt is, majd átnevezheti a függvényt egyedi névvel. Ezután szerkesztheti az átnevezett függvényt az igényeinek megfelelően.
Ez a példa módosítások nélkül folytatódik a mintakóddal.
Miután befejezte a kód írását, lefordítva győződjön meg arról, hogy nincsenek buildelési hibák. A .NET-függvényprojekt automatikusan tartalmazza a buildelési feladatokat, amelyek lefordítják, majd hozzáadják a kódot a logikai alkalmazás projekt lib\egyéni mappájához, ahol a munkafolyamatok egyéni függvényeket keresnek a futtatáshoz. Ezek a feladatok a .NET-verzió alapján a lib\custom\net472 vagy lib\custom\net8 mappába helyezik a szerelvényeket.
A Visual Studio Code Terminál menüjében válassza az Új terminál lehetőséget.
A megjelenő munkakönyvtár-listából válassza a Functions elemet az új terminál aktuális munkakönyvtáraként.
A Visual Studio Code egy parancssort tartalmazó terminálablakot nyit meg.
A terminálablak parancssorában adja meg a dotnet-visszaállítást.
A Visual Studio Code elemzi a projekteket, és meghatározza, hogy naprakészek-e.
Miután a parancssor ismét megjelent, adja meg a dotnet buildet. Vagy a Terminál menüben válassza a Feladat futtatása lehetőséget. A feladatlistában válassza a Build (Functions) lehetőséget.
Ha a build sikeres, a terminálablak azt jelenti, hogy a build sikeres volt.
Győződjön meg arról, hogy a következő elemek szerepelnek a logikai alkalmazás projektjében:
A munkaterületen bontsa ki a következő mappákat: LogicApp>lib\custom>net472 vagy net8, a .NET-verzió alapján. Ellenőrizze, hogy a net472 vagy net8 nevű almappá tartalmazza-e a kód futtatásához szükséges szerelvényfájlokat (DLL-fájlokat, beleértve a függvénynév> nevű <fájlt.dll.
A munkaterületen bontsa ki a következő mappákat: LogicApp>lib\custom<>function-name.> Győződjön meg arról, hogy a függvénynév> nevű< almappában található egy function.json fájl, amely tartalmazza az Ön által írt függvénykód metaadatait. A munkafolyamat-tervező ezzel a fájllal határozza meg a kód meghívásakor szükséges bemeneteket és kimeneteket.
Az alábbi példa a logikai alkalmazás projektjében létrehozott mintaszerelvényeket és más fájlokat mutatja be:
Miután meggyőződett arról, hogy a kód lefordítva van, és hogy a logikaialkalmazás-projekt tartalmazza a kód futtatásához szükséges fájlokat, nyissa meg a logikai alkalmazás projektjéhez tartozó alapértelmezett munkafolyamatot.
A munkaterületen a LogicApp alatt bontsa ki a< munkafolyamat-név> csomópontot, nyissa meg a workflow.json helyi menüjét, és válassza a Tervező megnyitása lehetőséget.
A megnyíló munkafolyamat-tervezőben a logikai alkalmazás projektjéhez tartozó alapértelmezett munkafolyamat a következő eseményindítóval és műveletekkel jelenik meg:
Válassza ki a helyi függvény meghívása nevű műveletet ebben a logikai alkalmazásban.
A művelet információs panelje jobbra nyílik meg.
Ellenőrizze és ellenőrizze, hogy a függvénynév paraméter értéke a futtatni kívánt függvényre van-e beállítva. Tekintse át vagy módosítsa a függvény által használt egyéb paraméterértékeket.
Ismételje meg a következő lépéseket az Azurite Storage Emulator háromszori elindításához: egyenként a következő Azure Storage-szolgáltatásokhoz:
A Visual Studio Code View menüjében válassza a Parancskatalógus lehetőséget.
A megjelenő parancssorban keresse meg és válassza az Azurite: Blob Service indítása lehetőséget.
A megjelenő munkakönyvtár-listából válassza a LogicApp lehetőséget.
Ismételje meg az alábbi lépéseket az Azurite: Queue Service indítása és az Azurite: Táblaszolgáltatás indítása.
Sikeresnek bizonyul, ha a képernyő alján található Visual Studio Code tálcán látható a három futó tárolási szolgáltatás, például:
Csatolja a hibakeresőt a logikai alkalmazás projektjéhez az alábbi lépések végrehajtásával:
A Visual Studio Code tevékenységsávján válassza a Futtatás és hibakeresés lehetőséget. (Billentyűzet: Ctrl+Shift+D)
A Futtatás és hibakeresés listában válassza a Csatolás a logikai alkalmazáshoz (LogicApp) lehetőséget, ha még nincs kijelölve, majd válassza a Lejátszás (zöld nyíl) lehetőséget.
Megnyílik a terminálablak , és megjeleníti az elindított hibakeresési folyamatot. Ekkor megjelenik a Hibakeresési konzol ablak, és megjeleníti a hibakeresési állapotokat. A Visual Studio Code alján a tevékenységsáv narancssárgára változik, ami azt jelzi, hogy a .NET-hibakereső be van töltve.
Csatolja a hibakeresőt a .NET-függvények projektjéhez az alábbi lépések végrehajtásával, a kód alapján:
.NET 8-projektek
A Visual Studio Code View menüjében válassza a Parancskatalógus lehetőséget.
A parancskatalógusban keresse meg és válassza a Hibakeresés: Csatolás .NET 5+ vagy .NET Core-folyamathoz.
A listában keresse meg és válassza ki a dotnet.exe folyamatot. Ha több dotnet.exe folyamat létezik, válassza ki a következő elérési utat tartalmazó folyamatot:
<meghajtónév>:\Users<user-name.azure-functions-core-tools>\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows<extension-bundle-version>\CustomCodeNetFxWorker\net8\Microsoft.Azure.Workflows.Functions.CustomCodeNetFxWorker.dll
.NET-keretrendszer projektek
A Futtatás és hibakeresés listában válassza a Csatolás a .NET-függvényekhez (Functions) lehetőséget, ha még nincs kijelölve, majd válassza a Lejátszás (zöld nyíl) lehetőséget.
Töréspontok beállításához a függvénydefinícióban (<függvénynév>.cs) vagy munkafolyamat-definícióban (workflow.json) keresse meg azt a sorszámot, ahol a töréspontot használni szeretné, és válassza ki a bal oldali oszlopot, például:
Ha manuálisan szeretné futtatni a Kérelem eseményindítót a munkafolyamatban, nyissa meg a munkafolyamat Áttekintés lapját.
A logikai alkalmazás projektjében nyissa meg a workflow.json fájl helyi menüjét, és válassza az Áttekintés lehetőséget.
A munkafolyamat Áttekintés lapján a Futtatás eseményindító gomb érhető el, ha manuálisan szeretné elindítani a munkafolyamatot. A Munkafolyamat tulajdonságai területen a visszahívási URL-érték egy meghívható végpont URL-címe, amelyet a munkafolyamat Kérés eseményindítója hozott létre. Erre az URL-címre küldhet kéréseket a munkafolyamat más alkalmazásokból való aktiválásához, beleértve az egyéb logikai alkalmazások munkafolyamatait is.
Az Áttekintés lap eszköztárán válassza a Futtatás eseményindítót.
A munkafolyamat futtatása után a hibakereső aktiválja az első töréspontot.
A Futtatás menüben vagy a hibakereső eszköztáron válasszon egy hibakeresési műveletet.
A munkafolyamat futtatása után az Áttekintés lapon látható a futtatás befejeződött és a futtatás alapvető részletei.
A munkafolyamat futtatásával kapcsolatos további információk áttekintéséhez válassza ki a befejezett futtatás lehetőséget. Vagy az Időtartam oszlop melletti listából válassza a Futtatás megjelenítése lehetőséget.
Az egyéni függvényeket ugyanúgy helyezheti üzembe, mint a logikai alkalmazásprojektet. Akár a Visual Studio Code-ból telepít, akár CI/CD DevOps-folyamatot használ, a telepítés előtt győződjön meg arról, hogy létrehozza a kódot, és hogy az összes függő összeállítás szerepel-e a következő logikai alkalmazás projektmappájában:
.NET 4.7.2: lib/custom/net472 mappa
.NET 8: lib/custom/net8 mappa
További információ: Standard munkafolyamatok üzembe helyezése a Visual Studio Code-ból az Azure-ba.
A munkafolyamat-tervezőben, amikor kiválasztja a helyi függvény meghívása nevű beépített műveletet ebben a logikai alkalmazásban, a művelet információs paneljén a következő üzenet jelenik meg:
Failed to retrieve dynamic inputs. Error details:
Ebben a forgatókönyvben vizsgálja meg a logikai alkalmazásprojektet annak ellenőrzéséhez, hogy a LogicApp\lib\custom mappa üres-e. Ha üres, a Terminál menüben válassza a Feladat>buildelési függvényeinek futtatása lehetőséget.
Ha ezt a hibaüzenetet kapja a munkafolyamat futtatásakor, valószínűleg a hibakereső folyamat a .NET Functionshez van csatlakoztatva a logikai alkalmazás helyett.
A probléma megoldásához válassza a Futtatás és hibakeresés listában a Csatolás a logikai alkalmazáshoz (LogicApp) lehetőséget, majd a Lejátszás (zöld háromszög) lehetőséget.
Ha a Kimenet ablak az alábbi üzenethez hasonló hibaüzenetet jelenít meg, győződjön meg arról, hogy legalább a .NET 6.0 telepítve van. Ha telepítve van ez a verzió, próbálja meg eltávolítani, majd újratelepíteni.
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]
Ha a függvény nem tartalmaz változókat, és létrehozza a kódot, a Kimenet ablakban a következő hibaüzenetek jelenhetnek meg:
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)
A probléma megoldásához a kód metódusában Run
fűzze hozzá a következő paramétert:
string parameter1 = null
Az alábbi példa bemutatja, hogyan jelenik meg a Run
metódus aláírása:
public static Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale, string parameter1 = null)
Standard munkafolyamatok létrehozása a Visual Studio Code használatával
esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációOktatás
Képzési terv
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Tanúsítvány
Microsoft Certified: Azure Developer Associate - Certifications
A Microsoft Azure-ban végpontok közötti megoldásokat hozhat létre az Azure Functions létrehozásához, webalkalmazások implementálásához és kezeléséhez, az Azure Storage használatával történő megoldások fejlesztéséhez stb.