Přidání a spuštění kódu skriptu PowerShellu ve standardních pracovních postupech pro Azure Logic Apps (Preview)
Platí pro: Azure Logic Apps (Standard)
Poznámka:
Tato funkce je ve verzi Preview a podléhá dodatečným podmínkám použití pro microsoft Azure Preview.
Pokud chcete provádět vlastní úlohy integrace vložené s pracovním postupem Standard v Azure Logic Apps, můžete přímo přidat a spustit kód PowerShellu z pracovního postupu. Pro tuto úlohu použijte akci Vložený kód s názvem Spustit kód PowerShellu. Tato akce vrátí výsledky z kódu PowerShellu, abyste tento výstup mohli použít v následných akcích pracovního postupu.
Tato funkce poskytuje následující výhody:
Napište vlastní skripty v návrháři pracovních postupů, abyste mohli řešit složité problémy s integrací. Nejsou potřeba žádné jiné plány služeb.
Tato výhoda zjednodušuje vývoj pracovních postupů a snižuje složitost a náklady při správě dalších služeb.
Vygenerujte vyhrazený soubor kódu, který poskytuje přizpůsobený skriptovací prostor v rámci pracovního postupu.
Integrace s Azure Functions PowerShell Functions, která poskytuje výkonné funkce a dědičnost pro pokročilé provádění úloh.
Nasaďte skripty společně s pracovními postupy.
Tento průvodce ukazuje, jak přidat akci do pracovního postupu a přidat kód PowerShellu, který chcete spustit.
Požadavky
Účet a předplatné Azure. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.
Pracovní postup standardní aplikace logiky, do kterého chcete přidat skript PowerShellu. Pracovní postup už musí začínat triggerem. Další informace najdete v tématu Vytvoření ukázkových pracovních postupů standardní aplikace logiky.
Pro svůj scénář můžete použít libovolnou aktivační událost, ale jako příklad tato příručka používá trigger požadavku s názvem Při přijetí požadavku HTTP a také akci Odpověď. Pracovní postup se spustí, když jiná aplikace nebo pracovní postup odešle požadavek na adresu URL koncového bodu triggeru. Ukázkový skript vrátí výsledky spuštění kódu jako výstup, který můžete použít v následných akcích.
Důležité informace
Azure Portal uloží váš skript jako soubor skriptu PowerShellu (.ps1) ve stejné složce jako soubor workflow.json , který uloží definici JSON pro váš pracovní postup a nasadí ho do prostředku aplikace logiky spolu s definicí pracovního postupu.
Formát souboru .ps1 umožňuje psát méně "často používané" a soustředit se jen na psaní kódu PowerShellu. Pokud akci přejmenujete, soubor se také přejmenuje, ale ne naopak. Pokud soubor přímo přejmenujete, přejmenovaná verze přepíše předchozí verzi. Pokud název akce a názvy souborů neodpovídají, akce nemůže soubor najít a pokusí se vytvořit nový prázdný soubor.
Skript je místní pro pracovní postup. Pokud chcete použít stejný skript v jiných pracovních postupech, zobrazte soubor skriptu v konzole KuduPlus a zkopírujte skript, který chcete použít v jiných pracovních postupech.
Omezení
Název | Omezení | Notes |
---|---|---|
Doba trvání spuštění skriptu | 10 minut | Pokud máte scénáře, které potřebují delší dobu trvání, použijte možnost zpětné vazby k produktu a poskytněte další informace o vašich potřebách. |
Velikost výstupu | 100 MB | Velikost výstupu závisí na limitu velikosti výstupu pro akce, což je obecně 100 MB. |
Přidání akce Spustit kód PowerShellu
Na webu Azure Portal otevřete prostředek aplikace logiky Standard a pracovní postup v návrháři.
V návrháři postupujte podle těchto obecných kroků a přidejte do pracovního postupu akci Operace vloženého kódu s názvem Spustit kód PowerShellu.
Jakmile se otevře podokno s informacemi o akci, aktualizujte na kartě Parametry v poli Soubor kódu předem vyplněný ukázkový kód vlastním kódem.
Pokud chcete získat přístup k datům přicházejícím z pracovního postupu, přečtěte si část Trigger pracovního postupu Accessu a výstupy akcí ve skriptu dále v této příručce.
Pokud chcete vrátit výsledky skriptu nebo jiná data do pracovního postupu, přečtěte si téma Vrácení dat do pracovního postupu.
Následující příklad ukazuje kartu Parametry akce s kódem ukázkového skriptu:
Následující příklad ukazuje vzorový kód skriptu:
# 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 $customResponse
Následující příklad ukazuje vlastní ukázkový skript:
$action = Get-TriggerOutput $results = "Hello from PowerShell!" Push-WorkflowOutput -Output $results
Po dokončení uložte pracovní postup.
Po spuštění pracovního postupu můžete zkontrolovat výstup pracovního postupu v Application Insights, pokud je povolený. Další informace najdete v tématu Zobrazení výstupu v Application Insights.
Přístup k triggerům pracovního postupu a výstupům akcí ve skriptu
Výstupní hodnoty z triggeru a předchozích akcí se vrátí pomocí vlastního objektu, který má více parametrů. Pokud chcete získat přístup k těmto výstupům a ujistěte se, že vracíte požadovanou hodnotu, použijte rutiny Get-TriggerOutput, Get-ActionOutput a Push-WorkflowOutput a všechny příslušné parametry popsané v následující tabulce, například:
$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
Poznámka:
Pokud v PowerShellu odkazujete na objekt s typem JValue uvnitř komplexního objektu a tento objekt přidáte do řetězce, získáte výjimku formátu. Chcete-li se této chybě vyhnout, použijte toString().
Výstupy odpovědi triggeru a akce
Následující tabulka uvádí výstupy, které se generují při volání Get-ActionOutput nebo Get-TriggerOutput. Návratová hodnota je komplexní objekt s názvem PowershellWorkflowOperationResult, který obsahuje následující výstupy.
Name | Typ | Popis |
---|---|---|
Jméno | String | Název triggeru nebo akce. |
Vstupy | JToken | Vstupní hodnoty předané do triggeru nebo akce. |
Výstupy | JToken | Výstupy z spouštěné aktivační události nebo akce. |
Počáteční čas | DateTime | Čas spuštění triggeru nebo akce. |
Koncový čas | DateTime | Koncový čas triggeru nebo akce. |
ScheduledTime | DateTime | Naplánovaný čas spuštění triggeru nebo akce nebo triggeru |
OriginHistoryName | String | Název historie původu pro triggery s povolenou možností Split-On . |
SourceHistoryName | String | Název historie zdroje pro znovu odslaný trigger |
Id sledování | String | ID sledování operace. |
Kód | String | Stavový kód výsledku. |
Stav | Řetězcové | Stav spuštění triggeru nebo akce, například Úspěch nebo Selhání. |
Chyba | JToken | Kód chyby HTTP. |
TrackedProperties | JToken | Všechny sledované vlastnosti, které jste nastavili. |
Vrácení výstupů do pracovního postupu
Pokud chcete vrátit všechny výstupy do pracovního postupu, musíte použít rutinu Push-WorkflowOutput.
Vlastní příkazy PowerShellu
Akce Spustit kód PowerShellu zahrnuje následující vlastní příkazy PowerShellu (rutiny) pro interakci s pracovním postupem a další operace v pracovním postupu:
Get-TriggerOutput
Získá výstup z triggeru pracovního postupu.
Syntaxe
Get-TriggerOutput
Parametry
Žádná
Get-ActionOutput
Získá výstup z jiné akce v pracovním postupu a vrátí objekt s názvem PowershellWorkflowOperationResult.
Syntaxe
Get-ActionOutput [ -ActionName <String> ]
Parametry
Parametr | Typ | Popis |
---|---|---|
ActionName | String | Název akce v pracovním postupu s výstupem, na který chcete odkazovat. |
Push-WorkflowOutput
Nasdílí výstup z akce Spustit kód PowerShellu do pracovního postupu, který může předat jakýkoli typ objektu. Pokud je vrácená hodnota null, z rutiny se zobrazí chyba objektu null.
Poznámka:
Rutiny Write-Debug, Write-Host a Write-Output nevrací hodnoty do pracovního postupu. Příkaz return také nevrací hodnoty do pracovního postupu. Tyto rutiny ale můžete použít k zápisu trasovacích zpráv, které se zobrazí v Application Insights. Další informace naleznete v tématu Microsoft.PowerShell.Utility.
Syntaxe
Push-WorkflowOutput [-Output <Object>] [-Clobber]
Parametry
Parametr | Typ | Popis |
---|---|---|
Výstup | Liší se. | Výstup, který chcete vrátit do pracovního postupu. Tento výstup může mít libovolný typ. |
Udeřit | Liší se. | Volitelný parametr přepínače, který můžete použít k přepsání dříve nabízeného výstupu. |
Ověřování a autorizace přístupu pomocí spravované identity pomocí PowerShellu
Pomocí spravované identity může prostředek aplikace logiky a pracovní postup ověřovat a autorizovat přístup k libovolné službě a prostředku Azure, které podporují ověřování Microsoft Entra bez zahrnutí přihlašovacích údajů do kódu.
V rámci akce Spustit kód PowerShellu můžete ověřit a autorizovat přístup pomocí spravované identity, abyste mohli provádět akce s jinými prostředky Azure, ve kterých jste povolili přístup. Můžete například restartovat virtuální počítač nebo získat podrobnosti o spuštění jiného pracovního postupu aplikace logiky.
Pokud chcete použít spravovanou identitu z akce Spustit kód PowerShellu, musíte postupovat takto:
-
V cílovém prostředku Azure si projděte následující aspekty:
Na kartě Role je obvykle dostatečná role Přispěvatel.
Na stránce Přidat přiřazení role na kartě Členové u vlastnosti Přiřadit přístup k vlastnosti se ujistěte, že jste vybrali spravovanou identitu.
Po výběru možnosti Vybrat členy vyberte v podokně Vybrat spravované identity spravovanou identitu, kterou chcete použít.
Do akce Spustit kód PowerShellu zahrňte jako první příkaz následující kód:
Connect-AzAccount -Identity
Teď můžete pracovat s prostředkem Azure pomocí rutin a modulů.
Zobrazení souboru skriptu
Na webu Azure Portal otevřete prostředek aplikace logiky Standard, který má požadovaný pracovní postup.
V nabídce prostředků aplikace logiky v části Vývojové nástroje vyberte Rozšířené nástroje.
Na stránce Rozšířené nástroje vyberte Přejít, čímž otevřete konzolu KuduPlus.
Otevřete nabídku konzoly Ladění a vyberte CMD.
Přejděte do kořenového umístění aplikace logiky: web/wwwroot
Přejděte do složky pracovního postupu, která obsahuje soubor .ps1, na této cestě: site/wwwroot/{workflow-name}
Vedle názvu souboru vyberte Upravit , abyste soubor otevřeli a zobrazili.
Zobrazení protokolů v Application Insights
Na webu Azure Portal v nabídce prostředků aplikace logiky v části Nastavení vyberte Application Insights a pak vyberte aplikaci logiky.
V nabídce Application Insights v části Monitorování vyberte Protokoly.
Vytvořte dotaz pro vyhledání trasování nebo chyb při provádění pracovního postupu, například:
union traces, errors | project TIMESTAMP, message
Moduly
Moduly PowerShellu jsou samostatné opakovaně použitelné jednotky, které zahrnují různé komponenty, například:
- Rutiny: Jednotlivé příkazy, které provádějí konkrétní úlohy.
- Poskytovatelé: Povolte přístup k úložištům dat, jako je registr nebo systém souborů, jako by šlo o jednotky.
- Funkce: Opakovaně použitelné bloky kódu, které provádějí konkrétní akce.
- Proměnné: Uložte data pro použití v rámci modulu.
- Další typy prostředků.
Modul uspořádá kód PowerShellu, což usnadňuje distribuci. Můžete například vytvořit vlastní moduly pro zabalení a zajistit, aby související funkce byly lépe spravovatelné a sdíletelné. Akce Spustit kód PowerShellu umožňuje importovat veřejné i privátní moduly PowerShellu.
Veřejné moduly
Veřejně dostupné moduly najdete v galerii PowerShellu. Prostředek standardní aplikace logiky může podporovat až 10 veřejných modulů. Pokud chcete použít jakýkoli veřejný modul, musíte tuto funkci povolit pomocí následujících kroků:
Na webu Azure Portal v nabídkách prostředků aplikace logiky v části Vývojové nástroje vyberte Rozšířené nástroje.
Na stránce Rozšířené nástroje vyberte Přejít.
Na panelu nástrojů Kudu Plus v nabídce konzoly Ladění vyberte CMD.
Přejděte na kořenovou úroveň aplikace logiky na adrese C:\home\site\wwwroot pomocí struktury adresáře nebo příkazového řádku.
Otevřete soubor host.json pracovního postupu a nastavte vlastnost spravované závislosti na hodnotu true, která je už ve výchozím nastavení nastavená.
"managedDependency": { "enabled": true }
Otevřete soubor s názvem requirements.psd1. Zadejte název a verzi požadovaného modulu pomocí následující syntaxe: MajorNumber.* nebo přesnou verzi modulu, například:
@{ Az = '1.*' SqlServer = '21.1.18147' }
Důležité informace o veřejných modulech
Pokud používáte správu závislostí, platí následující aspekty:
Ke stažení modulů vyžadují veřejné moduly přístup k Galerie prostředí PowerShell.
Spravované závislosti v současné době nepodporují moduly, které vyžadují přijetí licence, a to buď interaktivním přijetím licence, nebo poskytnutím možnosti -AcceptLicense při spuštění install-Module.
Privátní moduly
Můžete vygenerovat vlastní privátní moduly PowerShellu. Pokud chcete vytvořit první modul PowerShellu, přečtěte si téma Vytvoření modulu skriptu PowerShellu.
Na webu Azure Portal v nabídce prostředků aplikace logiky v části Vývojové nástroje vybere rozšířené nástroje.
Na stránce Rozšířené nástroje vyberte Přejít.
Na panelu nástrojů Kudu Plus v nabídce konzoly Ladění vyberte CMD.
Přejděte na kořenovou úroveň aplikace logiky na adrese C:\home\site\wwwroot pomocí struktury adresáře nebo příkazového řádku.
Vytvořte složku s názvem Modules.
Ve složce Modules vytvořte podsložku se stejným názvem jako váš privátní modul.
Do složky privátního modulu přidejte soubor privátního modulu PowerShellu s příponou názvu souboru psm1 . Můžete také zahrnout volitelný soubor manifestu PowerShellu s příponou názvu souboru psd1 .
Po dokončení se kompletní struktura souboru aplikace logiky zobrazí podobně jako v následujícím příkladu:
MyLogicApp
-- execute_powershell_script.ps1
-- mytestworkflow.json
Modules
-- MyPrivateModule
--- MyPrivateModule.psd1
--- MyPrivateModule.psm1
-- MyPrivateModule2
--- MyPrivateModule2.psd1
--- MyPrivateModule2.psm1
requirements.psd1
host.json
Chyby kompilace
V této verzi webový editor zahrnuje omezenou podporu Technologie IntelliSense, která se stále vylepšuje. Všechny chyby kompilace se zjistí při uložení pracovního postupu a modul runtime Azure Logic Apps zkompiluje váš skript. Tyto chyby se zobrazují v protokolech chyb vaší aplikace logiky prostřednictvím Application Insights.
Chyby za běhu
Akce pracovního postupu nevrací žádný výstup.
Ujistěte se, že používáte rutinu Push-WorkflowOutput .
Provedení akce kódu PowerShellu se nezdaří: Výraz {some-text} se nerozpoznal...
Pokud nesprávně odkazujete na veřejný modul v souboru requirements.psd1 nebo pokud váš soukromý modul neexistuje v následující cestě: C:\home\site\wwwroot\Modules{název_modulu}, zobrazí se následující chyba:
Termín {some-text} není rozpoznán jako název rutiny, funkce, souboru skriptu nebo spustitelného programu. Zkontrolujte pravopis názvu nebo jestli byla zahrnuta cesta, ověřte správnost cesty a zkuste to znovu.
Poznámka:
Moduly Az* se ve výchozím nastavení zobrazují v souboru requirements.psd1 , ale zakomentují se při vytváření souboru. Při odkazování na rutinu z modulu nezapomeňte modul zrušit.
Provedení akce kódu PowerShellu selže: Nelze vytvořit vazbu argumentu s parametrem Output, protože má hodnotu null.
K této chybě dochází, když se pokusíte odeslat objekt null do pracovního postupu. Ověřte, jestli objekt, který odesíláte, nemá hodnotu null.