Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Azure Logic Apps (Standard)
Ha egyéni integrációs feladatokat szeretne végrehajtani a Standard munkafolyamattal az Azure Logic Appsben, közvetlenül hozzáadhat és futtathat PowerShell-kódot a munkafolyamatból. Ehhez a feladathoz használja a PowerShell-kód végrehajtása nevű Beágyazott kód műveletet. Ez a művelet visszaadja a PowerShell-kód eredményeit, hogy ezt a kimenetet a munkafolyamat későbbi műveleteiben is használni tudja.
Ez a funkció a következő előnyöket nyújtja:
Saját szkripteket írhat a munkafolyamat-tervezőben, így összetett integrációs kihívásokat oldhat meg. Nincs szükség más szolgáltatási csomagokra.
Ez az előny csökkenti a bonyolultságot és a költségeket, mivel több szolgáltatást kezelhet, és egyszerűsítheti a munkafolyamat-fejlesztést.
Hozzon létre egy dedikált kódfájlt, amely személyre szabott szkriptelési helyet biztosít a munkafolyamaton belül.
Integrálható az Azure Functions PowerShell-függvényeivel, amely hatékony funkciókat és öröklést biztosít a speciális feladatvégrehajtáshoz.
Szkriptek üzembe helyezése a munkafolyamatok mellett.
Ez az útmutató bemutatja, hogyan vehet fel műveletet a munkafolyamatba, és hogyan veheti fel a futtatni kívánt PowerShell-kódot.
Előfeltételek
Azure-fiók és -előfizetés. Ingyenes Azure-fiók lekérése.
A Standard logikai alkalmazás erőforrása azzal a munkafolyamattal, amelyhez hozzá szeretné adni a PowerShell-szkriptet.
A munkafolyamatnak már egy eseményindítóval kell kezdődnie. A forgatókönyvhöz bármilyen eseményindítót használhat, de ez az útmutató például a HTTP-kérések fogadása és a Válasz művelet neve alatt található Kérelem eseményindítót használja. A munkafolyamat akkor fut, amikor egy másik alkalmazás vagy munkafolyamat kérést küld az eseményindító végpontJÁNAK URL-címére. A mintaszkript a kódvégrehajtás eredményeit adja vissza kimenetként, amelyet a későbbi műveletekben használhat.
Ha nem rendelkezik logikaialkalmazás-erőforrással és munkafolyamattal, az alábbi lépések végrehajtásával hozza létre őket:
Megfontolások
Az Azure Portal PowerShell-szkriptfájlként (.ps1) menti a szkriptet a workflow.json fájllal megegyező mappába, amely a munkafolyamat JSON-definícióját tárolja, és üzembe helyezi a fájlt a logikai alkalmazás erőforrásában a munkafolyamat-definícióval együtt.
A .ps1 fájlformátum lehetővé teszi, hogy kevesebb "sablont" írjon, és csak a PowerShell-kód írására összpontosítson. Ha átnevezi a műveletet, a fájl is átnevezve lesz, de nem fordítva. Ha közvetlenül átnevezi a fájlt, az átnevezett verzió felülírja az előző verziót. Ha a művelet neve és a fájlnevek nem egyeznek, a művelet nem találja a fájlt, és megpróbál létrehozni egy új üres fájlt.
A szkript helyi a munkafolyamatban. Ha ugyanazt a szkriptet más munkafolyamatokban szeretné használni, tekintse meg a szkriptfájlt a Kudu-konzolon, majd másolja a szkriptet más munkafolyamatokban való újrafelhasználáshoz.
Korlátozások
| Név szerint | Határ | Jegyzetek |
|---|---|---|
| Szkriptfuttatás időtartama | 10 perc | Ha olyan forgatókönyvei vannak, amelyek hosszabb időtartamot igényelnek, a termékvisszajelzési lehetőséggel további információt kaphat az igényeiről. |
| Kimeneti méret | 100 MB | A kimeneti méret a műveletek kimeneti méretkorlátjától függ, amely általában 100 MB. |
A PowerShell-verzió frissítése
Az alkalmazásbeállítások szerkesztésével módosíthatja a PowerShell-verziót a logikai alkalmazás erőforrásában. Az alkalmazás frissítése előtt azonban tekintse át a következő szempontokat:
A verziófrissítések kompatibilitástörő változásokat eredményezhetnek a Standard logikai alkalmazásban, amely az Azure Functions-futtatókörnyezet bővítményeként üzemeltetett futtatókörnyezetet használja. A frissítés előtt tekintse át a következő migrálási útmutatót: Azure Functions-alkalmazások frissítése PowerShell 7.4-en való futtatásra.
Győződjön meg arról, hogy a logikai alkalmazás az Azure-beli Azure Functions-futtatókörnyezet legújabb, 4.x-es verzióját használja. További információt az aktuális futtatókörnyezeti verzió megtekintése című témakörben talál.
Feljegyzés
Ha nem ad meg PowerShell-verziót, az Azure Logic Apps alapértelmezés szerint ugyanazt az alapértelmezett verziót használja, mint az Azure Functions. Jelenleg a PowerShell 7.4 általánosan elérhető. Az elérhető verziókkal kapcsolatos további információkért tekintse meg az Azure Functions PowerShell fejlesztői útmutatóját.
A PowerShell-verzió frissítésének helyétől függően kövesse a megfelelő lépéseket:
Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávjának Beállítások területén válassza a Környezeti változók lehetőséget.
Az Alkalmazásbeállítások lapon válassza a + Hozzáadás lehetőséget.
Az Alkalmazásbeállítás hozzáadása/szerkesztése panelen adja hozzá a következő új alkalmazásbeállítást:
Paraméter Érték Leírás Név LOGIC_APPS_POWERSHELL_VERSIONAz alkalmazásbeállítás neve. Érték < PowerShell-verzió> A PowerShell jelenleg 7.4-es verziója. Ha végzett, válassza az Alkalmaz elemet. Amikor megjelenik az újraindítási figyelmeztetés, válassza a Folytatás lehetőséget.
A logikai alkalmazás a frissített verzióval újraindul.
A PowerShell-kód végrehajtása művelet hozzáadása
Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávJának Munkafolyamatok területén válassza a Munkafolyamatok lehetőséget, majd válassza ki az üres munkafolyamatot.
A munkafolyamat oldalsávjának Eszközök csoportjában válassza ki a tervezőt a munkafolyamat megnyitásához.
Adja hozzá a PowerShell-kód végrehajtása nevű beágyazott kódműveletet a munkafolyamathoz a művelet hozzáadásának általános lépéseit követve.
A műveletinformációs panel megnyitása után a Paraméterek lap Kódfájl mezőjében frissítse az előre feltöltött mintakódot a saját kódjával.
A munkafolyamatból származó adatok eléréséhez tekintse meg az Útmutató későbbi részében az Access munkafolyamat-eseményindítóját és műveletkimeneteit a szkriptben .
Ha vissza szeretné adni a szkript eredményeit vagy más adatait a munkafolyamatnak, olvassa el az Adatok visszaküldése a munkafolyamatba című témakört.
Az alábbi példa a művelet Paraméterek lapját mutatja be a példaszkript kódjával:
Az alábbi példa a példaszkriptkódot mutatja be:
# Use the following cmdlets to retrieve outputs from prior steps. # $triggerOutput = Get-TriggerOutput # $ActionOutput = Get-ActionOutput -ActionName <action-name> $customResponse = [PSCustomObject]@{ Message = "Hello world!" } # Use Write-Debug/Write-Host/Write-Output/ to log messages to Application Insights. # Write-Host/Write-Output/Write-Debug and 'return' won't return an output to the workflow. # Write-Host "Sending to Application Insight logs" # Use Push-WorkflowOutput to push outputs into subsequent actions. Push-WorkflowOutput -Output $customResponseAz alábbi példa egy egyéni példaszkriptet mutat be:
$action = Get-TriggerOutput $results = "Hello from PowerShell!" Push-WorkflowOutput -Output $resultsHa végzett, mentse a munkafolyamatot.
A munkafolyamat futtatása után áttekintheti a munkafolyamat kimenetét az Application Insightsban, ha engedélyezve van. További információ: Kimenet megtekintése az Application Insightsban.
Munkafolyamat-eseményindítók és műveleti kimenetek elérése a szkriptben
Az eseményindító és az előző műveletek kimeneti értékeit a rendszer egy egyéni objektummal adja vissza, amely több paraméterrel rendelkezik. A kimenetek eléréséhez és a kívánt érték visszaadásához használja a Get-TriggerOutput, a Get-ActionOutput és a Push-WorkflowOutput parancsmagokat, valamint az alábbi táblázatban leírt megfelelő paramétereket, például:
$trigger = Get-TriggerOutput
$statusCode = $trigger.status.ToString();
$action = Get-ActionOutput -ActionName Compose
$actionOutput = $action.outputs['actionOutput'].ToString();
$populatedString = "Send the $statusCode for the trigger status and $actionOutputName."
Push-WorkflowOutput -Output $populatedString
Feljegyzés
Ha a PowerShellben olyan objektumra hivatkozik, amelynek JValue típusa egy összetett objektumon belül van, és ezt az objektumot egy sztringhez adja hozzá, formátumkivételt kap. A hiba elkerülése érdekében használja a következőt ToString(): .
Trigger- és műveletválasz-kimenetek
Az alábbi táblázat azokat a kimeneteket sorolja fel, amelyek a Get-ActionOutput vagy a Get-TriggerOutput hívásakor jönnek létre. A visszatérési érték egy összetett, úgynevezett PowershellWorkflowOperationResultobjektum, amely az alábbi kimeneteket tartalmazza.
| Név szerint | Típus | Leírás |
|---|---|---|
| Név | Sztring | Az eseményindító vagy művelet neve |
| Bemenetek | JToken | Az eseményindítónak vagy műveletnek átadott bemeneti értékek |
| Kimenetek | JToken | A végrehajtott eseményindító vagy művelet kimenetei |
| StartTime | Dátum/idő | Az eseményindító vagy művelet kezdési időpontja |
| EndTime | Dátum/idő | Az eseményindító vagy művelet befejezési ideje |
| ScheduledTime | Dátum/idő | Az eseményindító vagy művelet futtatásának ütemezett ideje |
| OriginHistoryName | Sztring | A tulajdonságot használó splitOn eseményindítók forráselőzményeinek neve |
| SourceHistoryName | Sztring | Az újraküldett eseményindító forráselőzményeinek neve |
| TrackingId | Sztring | A műveletkövetés azonosítója |
| Kód | Sztring | Az eredmény állapotkódja |
| Állapot | Sztring | Az eseményindító vagy művelet futtatási állapota, például "Sikeres" vagy "Sikertelen" |
| Hiba | JToken | A HTTP hibakódja |
| TrackedProperties | JToken | Az ön által beállított követett tulajdonságok |
Kimenetek visszaadása a munkafolyamatba
Ha bármilyen kimenetet vissza szeretne adni a munkafolyamatnak, a Push-WorkflowOutput parancsmagot kell használnia.
Egyéni PowerShell-parancsok
A PowerShell-kód végrehajtása művelet az alábbi egyéni PowerShell-parancsokat (parancsmagokat) tartalmazza a munkafolyamat és a munkafolyamat egyéb műveleteinek kezelésére:
Get-TriggerOutput
Lekéri a kimenetet a munkafolyamat eseményindítójából.
Szemantika
Get-TriggerOutput
Paraméterek
Nincs.
Get-ActionOutput
Lekéri a kimenetet a munkafolyamat egy másik műveletéből, és visszaad egy nevű PowershellWorkflowOperationResultobjektumot.
Szemantika
Get-ActionOutput [ -ActionName <String> ]
Paraméterek
| Paraméter | Típus | Leírás |
|---|---|---|
| ActionName | Sztring | A munkafolyamatban a hivatkozni kívánt kimenettel rendelkező művelet neve. |
Push-WorkflowOutput
Leküldi a kimenetet a PowerShell-kód végrehajtása műveletből a munkafolyamatba, amely bármilyen objektumtípust átadhat. Ha a visszatérési érték null, null objektumhiba jelenik meg a parancsmagból.
Feljegyzés
A Write-Debug, Write-Hostés Write-Output parancsmagok nem ad vissza értékeket a munkafolyamatnak. Az return utasítás nem ad vissza értékeket a munkafolyamatnak.
Ezek a parancsmagok azonban az Application Insightsban megjelenő nyomkövetési üzenetek írására használhatók.
További információ: Microsoft.PowerShell.Utility.
Szemantika
Push-WorkflowOutput [-Output <Object>] [-Clobber]
Paraméterek
| Paraméter | Típus | Leírás |
|---|---|---|
| Hozam | Változik | A munkafolyamathoz visszatérni kívánt kimenet. Ennek a kimenetnek bármilyen típusa lehet. |
| Felülír | Változik | Választható kapcsolóparaméter, amellyel felülbírálhatja a korábban leküldéses kimenetet. |
Hozzáférés hitelesítése és engedélyezése felügyelt identitással a PowerShell használatával
A felügyelt identitással a logikai alkalmazás erőforrása és munkafolyamata hitelesítheti és engedélyezheti a Hozzáférést minden olyan Azure-szolgáltatáshoz és erőforráshoz, amely támogatja a Microsoft Entra-hitelesítést anélkül, hogy hitelesítő adatokat tartalmaz a kódban.
A PowerShell-kód végrehajtása műveleten belül hitelesítheti és engedélyezheti a hozzáférést egy felügyelt identitással, hogy műveleteket hajthasson végre más Azure-erőforrásokon, ahol engedélyezte a hozzáférést. Újraindíthat például egy virtuális gépet, vagy lekérheti egy másik logikai alkalmazás munkafolyamatának futtatási adatait.
Ha a felügyelt identitást a PowerShell-kód végrehajtása műveletből szeretné használni, kövesse az alábbi lépéseket:
Állítsa be a felügyelt identitást a logikai alkalmazásban, és adjon hozzáférést a felügyelt identitáshoz a cél Azure-erőforráson. Részletes lépésekért tekintse meg az Azure-erőforrások hozzáférésének és kapcsolatainak hitelesítése felügyelt identitásokkal című témakört.
A cél Azure-erőforráson tekintse át a következő szempontokat:
A Szerepkör lapon általában elegendő közreműködőiszerepkör.
A Szerepkör-hozzárendelés hozzáadása lap Tagok lapján, a Hozzáférés hozzárendelése tulajdonságnál győződjön meg arról, hogy a felügyelt identitást választja.
Miután kiválasztotta a Tagok kijelölése lehetőséget, a Felügyelt identitások kiválasztása panelen válassza ki a használni kívánt felügyelt identitást.
A PowerShell-kód végrehajtása műveletben első utasításként adja meg a következő kódot:
Connect-AzAccount -IdentityMostantól parancsmagokkal és modulokkal dolgozhat az Azure-erőforrással.
A szkriptfájl megtekintése
Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávjának Fejlesztési eszközök csoportjában válassza a Speciális eszközök lehetőséget.
A Speciális eszközök lapon válassza az Ugrás lehetőséget, amely megnyitja a Kudu-konzolt .
Nyissa meg a Hibakeresési konzol menüjét, és válassza a CMD lehetőséget.
Nyissa meg a logikai alkalmazás gyökérhelyét: site/wwwroot
Nyissa meg a munkafolyamat mappáját, amely a .ps1 kiterjesztésű fájlt tartalmazza a következő elérési út mentén: site/wwwroot/{workflow-name}
A fájl neve mellett válassza a Szerkesztés lehetőséget a fájl megnyitásához és megtekintéséhez.
Naplók megtekintése az Application Insightsban
Az Azure Portalon, a logikai alkalmazás oldalsávján, a Figyelés területen válassza az Application Insights (nem az Elemzések) lehetőséget.
Válassza ki az Application Insights-erőforrásra mutató hivatkozást.
Az Application Insights erőforrás oldalsávjának Figyelés területén válassza a Naplók lehetőséget.
Hozzon létre egy lekérdezést a munkafolyamat végrehajtásából származó nyomkövetések vagy hibák megkereséséhez, például:
union traces, errors | project TIMESTAMP, message
Modulok
A PowerShell-modulok önálló, újrafelhasználható egységek, amelyek különböző összetevőket tartalmaznak, például:
- Parancsmagok: Adott feladatokat végrehajtó egyéni parancsok.
- Szolgáltatók: Engedélyezze az adattárakhoz, például a beállításjegyzékhez vagy a fájlrendszerhez való hozzáférést, mintha meghajtók lennének.
- Függvények: Adott műveleteket végrehajtó újrahasználható kódblokkok.
- Változók: Adatok tárolása a modulon belül.
- Egyéb típusú erőforrások.
A modul rendszerezi a PowerShell-kódot, így könnyebben terjeszthető. Létrehozhat például saját modulokat a csomagok csomagolásához, valamint a kapcsolódó funkciók kezelhetőbbé és megoszthatóbbá tétele érdekében. A PowerShell-kód végrehajtása művelet lehetővé teszi a nyilvános és a privát PowerShell-modulok importálását.
Nyilvános modulok
A nyilvánosan elérhető modulok megkereséséhez látogasson el a PowerShell-gyűjteménybe. Egy standard logikai alkalmazás erőforrása legfeljebb 10 nyilvános modult támogat. Bármely nyilvános modul használatához engedélyeznie kell ezt a képességet az alábbi lépések végrehajtásával:
Az Azure Portalon, a logikai alkalmazás oldalsávján, a Fejlesztési eszközök területen válassza a Speciális eszközök lehetőséget.
A Speciális eszközök lapon válassza az Ugrás lehetőséget.
A Kudu eszköztár hibakeresési konzol menüjében válassza a CMD lehetőséget.
Keresse meg a logikai alkalmazás gyökérszintjét a C:\home\site\wwwroot helyen a címtárstruktúra vagy a parancssor használatával.
Nyissa meg a munkafolyamat host.json fájlját, és állítsa a
ManagedDependency.enabledtulajdonságottrueaz alapértelmezett beállításra."managedDependency": { "enabled": true }Nyissa meg a requirements.psd1 nevű fájlt. Adja meg a kívánt modul nevét és verzióját a következő szintaxissal:
MajorNumber.*vagy a modul pontos verziója, például:@{ Az = '1.*' SqlServer = '21.1.18147' }
A nyilvános modulok szempontjai
Ha függőségkezelést használ, az alábbi szempontokat kell figyelembe vennie:
A modulok letöltéséhez a nyilvános moduloknak hozzá kell férniük a PowerShell-galéria.
A felügyelt függőségek jelenleg nem támogatják azokat a modulokat, amelyek megkövetelik a licenc elfogadását, akár a licenc interaktív elfogadásával, akár az
-AcceptLicenseInstall-Module futtatásakor történő beállítással.
Privát modulok
Létrehozhat saját privát PowerShell-modulokat. Az első PowerShell-modul létrehozásához tekintse meg a PowerShell-szkriptmodul írása című témakört.
Az Azure Portalon, a logikai alkalmazás erőforrás-oldalsávján, a Fejlesztési eszközök területen válassza a Speciális eszközök lehetőséget.
A Speciális eszközök lapon válassza az Ugrás lehetőséget.
A Kudu eszköztár hibakeresési konzol menüjében válassza a CMD lehetőséget.
Keresse meg a logikai alkalmazás gyökérszintjét a C:\home\site\wwwroot helyen a címtárstruktúra vagy a parancssor használatával.
Hozzon létre egy Modulok nevű mappát.
A Modulok mappában hozzon létre egy, a privát modul nevével megegyező nevű almappát.
A privát modul mappájában adja hozzá a privát PowerShell-modulfájlt a .psm1 kiterjesztéssel. Egy választható PowerShell-jegyzékfájlt is hozzáadhat a .psd1 kiterjesztéssel.
Ha elkészült, a logikai alkalmazás teljes fájlstruktúrája az alábbi példához hasonlóan jelenik meg:
MyLogicApp
-- execute_powershell_script.ps1
-- mytestworkflow.json
Modules
-- MyPrivateModule
--- MyPrivateModule.psd1
--- MyPrivateModule.psm1
-- MyPrivateModule2
--- MyPrivateModule2.psd1
--- MyPrivateModule2.psm1
requirements.psd1
host.json
Fordítási hibák
Ebben a kiadásban a webes szerkesztő korlátozott IntelliSense-támogatást tartalmaz, amely még fejlesztés alatt áll. A rendszer fordítási hibákat észlel a munkafolyamat mentésekor, és az Azure Logic Apps-futtatókörnyezet lefordítja a szkriptet. Ezek a hibák megjelennek a logikai alkalmazás hibanaplóiban az Application Insightson keresztül.
Futtatókörnyezeti hibák
A munkafolyamat-műveletek nem adnak vissza kimenetet.
Győződjön meg arról, hogy a Push-WorkflowOutput parancsmagot használja.
A PowerShell-kód végrehajtása sikertelen: "A(z) "{some-text}" kifejezés nem ismerhető fel..."
Ha helytelenül hivatkozik egy nyilvános modulra a requirements.psd1 fájlban, vagy ha a privát modul nem létezik a C:\home\site\wwwroot\Modules{module-name} elérési úton, a következő hibaüzenet jelenik meg:
"A(z) "{some-text}" kifejezés nem ismerhető fel parancsmag, függvény, szkriptfájl vagy végrehajtható program neveként. Ellenőrizze a név helyesírását, vagy ha tartalmazott egy elérési utat, ellenőrizze, hogy helyes-e az elérési út, és próbálkozzon újra."
Feljegyzés
Alapértelmezés szerint az Az* modulok megjelennek a requirements.psd1 fájlban, de a fájl létrehozásakor megjegyzést fűznek hozzá. Amikor a modulból származó parancsmagra hivatkozik, mindenképpen bontsa ki a modult.
A PowerShell-kód végrehajtása sikertelen: "Nem lehet argumentumot kötni a "Kimenet" paraméterhez, mert null.
Ez a hiba akkor fordul elő, ha null értékű objektumot próbál leküldni a munkafolyamatba. Ellenőrizze, hogy az elküldött Push-WorkflowOutput objektum nem null értékű-e.