Modulok kezelése Azure Automation

Megjegyzés

A 2025. február 1.-től kezdve az Azure Automation megszünteti az AzureRM modulokat használó összes runbook futtatását. 2024. november 1-jétől nem hozhat létre új runbookokat az AzureRM-modulok segítségével. Az AzureRM PowerShell-modulját 2024. február 29-én hivatalosan elavultnak nyilvánítottuk. Javasoljuk, hogy migráljon az AzureRM modulból az Az PowerShell-modulba a folyamatos támogatás és frissítések biztosítása érdekében. Bár az AzureRM-modul továbbra is működik, az már nem tartható fenn vagy támogatott, és az AzureRM-modul folyamatos használata a felhasználó saját felelősségére történik. További információért tekintse meg a költöztetéssel kapcsolatos erőforrásokat, ha útmutatást szeretne az Az-modulra való áttéréshez.

Azure Automation számos PowerShell-modult használ a parancsmagok engedélyezéséhez runbookokban és DSC-erőforrásokban DSC-konfigurációkban. A támogatott modulok a következők:

  • Azure PowerShell Az modules.
  • Egyéb PowerShell-modulok.
  • Belső Orchestrator.AssetManagement.Cmdlets modul (Linux Hibrid Runbook Worker-en nem érhető el).
  • Python 2 és Python 3 modult.
  • Egyéni modulok, amelyeket létrehoz.

Automation-fiók létrehozásakor alapértelmezés szerint Azure Automation importálni néhány modult. Lásd: Alapértelmezett modulok.

Fontos

Az új futtatókörnyezeti felület lehetővé teszi a modulok és csomagok kezelését azáltal, hogy lehetővé teszi a feladatvégrehajtási környezet konfigurálását. Az új felületen a Modulok és Csomagok panelei (blade-ek) nem érhetők el. A modulok és csomagok kezelésével kapcsolatban lásd : Futtatókörnyezet és kapcsolódó runbookok kezelése.

Tesztkörnyezetek

Amikor az Automation runbook- és DSC-fordítási feladatokat hajt végre, a modulokat olyan tesztkörnyezetekbe tölti be, ahol a runbookok futtathatók, és a DSC-konfigurációk lefordíthatók. Az Automation automatikusan a DSC-erőforrásokat is modulokba helyezi a DSC lekéréses kiszolgálón. A gépek lekérhetik az erőforrásokat a DSC-konfigurációk alkalmazásakor.

A felhőalapú tesztkörnyezet legfeljebb 48 rendszerhívást támogat, és biztonsági okokból korlátozza az összes többi hívást. Más funkciók, például a hitelesítő adatok kezelése és néhány hálózatkezelés nem támogatott a felhőbeli tesztkörnyezetben.

A benne foglalt modulok és parancsmagok száma miatt nehéz előre tudni, hogy a parancsmagok közül melyik nem támogatott hívásokat fog kezdeményezni. Általában olyan problémákat tapasztaltunk a parancsmagokkal kapcsolatban, amelyek emelt szintű hozzáférést igényelnek, hitelesítő adatokat igényelnek paraméterként, vagy a hálózatkezeléshez kapcsolódó parancsmagokat. A tesztkörnyezet nem támogatja a teljes hálózati veremben végzett műveleteket végző parancsmagokat, beleértve az AIPService PowerShell-modulból származó Connect-AipService és a DNSClient modulból származó Resolve-DnsName parancsmagokat.

Ezek a tesztkörnyezettel kapcsolatos ismert korlátozások. Az ajánlott alternatív megoldás egy Hybrid Runbook Worker vagy Azure Functions használata.

Fontos

Ne foglalja bele az "AzureRm" kulcsszót az Az modullal való végrehajtásra tervezett szkriptekbe. A kulcsszó belefoglalása akár megjegyzésbe is, az AzureRm betöltését okozhatja, majd ütközhet az Az modullal.

Alapértelmezett modulok

Minden új Automation-fiók alapértelmezés szerint a PowerShell Az modul legújabb verzióját importálja. Az Az modul lecseréli az AzureRM-et, és az Azure-hoz ajánlott modul. Az új Automation-fiók alapértelmezett moduljai a meglévő 24 AzureRM-modult és 60+ Az modult tartalmazzák.

Az Automation-fiókok felhasználója natív lehetőséggel frissítheti a modulokat a legújabb Az modulra. A művelet kezeli az összes modulfüggőséget a háttérrendszerben, így eltávolítja a modulok manuális frissítésének vagy a runbook Azure modulok frissítésére való végrehajtásának bonyodalmait.

Ha a meglévő Automation-fiók csak AzureRM-modulokkal rendelkezik, az Az modulok frissítése lehetőség frissíti az Automation-fiókot az Az modul felhasználó által kiválasztott verziójával.

Ha a meglévő Automation-fiók azureRM-et és néhány Az-modult tartalmaz, a lehetőség importálja a fennmaradó Az-modulokat az Automation-fiókba. A meglévő Az-modulok lesznek előnyben, és a frissítési művelet nem frissíti ezeket a modulokat. Ennek célja annak biztosítása, hogy a frissítési modul művelete ne vezessen runbook-végrehajtási hibához, ha véletlenül frissít egy runbook által használt modult. Ebben a forgatókönyvben ajánlott először törölni a meglévő Az-modulokat, majd végrehajtani a frissítési műveleteket, hogy a legújabb Az-modult importálja az Automation-fiókba. Az ilyen, alapértelmezés szerint nem importált modultípusokat egyéninek nevezzük. Az egyéni modulok mindig előnyben részesítik az alapértelmezett modulokat.

Például: Ha már importálta a modult a Az.Aks 2.3.0-s verzióval, amelyet az Az modul 6.3.0 biztosít, és megpróbálja frissíteni az Az modult a legújabb 6.4.0-s verzióra. A frissítési művelet az összes Az-modult importálja a 6.4.0-s csomagból, kivéve Az.Aks. Ha a legújabb verziót szeretné használni a Az.Aks, előbb törölje a meglévő modult, majd hajtsa végre a frissítést, vagy a modult külön is frissítheti, ahogy az Import Az modulok részben le van írva, hogy egy adott modul másik verzióját importálja.

Az alábbi táblázat felsorolja azokat a modulokat, amelyeket alapértelmezés szerint Azure Automation importálni az Automation-fiók létrehozásakor. Az Automation importálhatja ezeknek a moduloknak az újabb verzióit. Az eredeti verziót azonban nem távolíthatja el az Automation-fiókjából, még akkor sem, ha újabb verziót töröl.

Az alapértelmezett modulokat globális moduloknak is nevezik. A Azure portálon a Global modul tulajdonság true lesz a fiók létrehozásakor importált modul megtekintésekor.

Az Azure portál globális modultulajdonságának képernyőképe.

Megjegyzés

Nem javasoljuk a modulok és runbookok módosítását az Automation-fiókokban, amelyeket a virtuális gépek üzembe helyezéséhez használnak munkaidőn kívül

Modul neve Verzió
Az.* A teljes lista a Package Details alatt található PowerShell-galéria
AuditPolicyDsc 1.1.0.0
Azure 1.0.3
Azure.Storage 1.0.3
AzureRM.Automation 1.0.3
AzureRM.Compute 1.2.1
AzureRM.Profile 1.0.3
AzureRM.Resources 1.0.3
AzureRM.Sql 1.0.3
AzureRM.Storage 1.0.3
ComputerManagementDsc 5.0.0.0
GPRegistryPolicyParser 0,2
Microsoft.PowerShell.Core 0
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft. WSMan.Management
Orchestrator.AssetManagement.Cmdlets 1
PSDscResources 2.9.0.0
BiztonságiIrányelvDsc 2.1.0.0
StateConfigCompositeResources 1
xDSCDomainjoin 1,1
xPowerShellVégrehajtásiIrányelv 1.1.0.0
xRemoteDesktopAdmin 1.1.0.0

Belső parancsmagok

Azure Automation olyan belső parancsmagokat biztosít, amelyek kizárólag akkor érhetők el, ha a runbookok végrehajtása Azure tesztkörnyezetben vagy Windows hibrid runbook-feldolgozón történik. A belső parancsmagokat tartalmazó Orchestrator.AssetManagement.Cmdlets modul alapértelmezés szerint telepítve van az Automation-fiókban, különösen akkor, ha a Windows hibrid runbook-feldolgozó szerepkör telepítve van egy Windows gépen.

Megjegyzés

Ez a funkció linuxos hibrid runbook-feldolgozókon nem érhető el.

Az alábbi táblázat a belső parancsmagokat határozza meg. Ezeket a parancsmagokat úgy tervezték, hogy Azure PowerShell parancsmagok helyett használják az Automation-fiók erőforrásaival való interakciót. Titkos kulcsokat lekérhetnek titkosított változókból, hitelesítő adatokból és titkosított kapcsolatokból.

Név Leírás
Get-AutomationCertificate Get-AutomationCertificate [-Name] <string> [<CommonParameters>]
Get-AutomationConnection Get-AutomationConnection [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Get-AutomationPSCredential Get-AutomationPSCredential [-Name] <string> [<CommonParameters>]
Get-AutomationVariable Get-AutomationVariable [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Set-AutomationVariable Set-AutomationVariable [-Name] <string> -Value <Object> [<CommonParameters>]
Start-AutomationRunbook Start-AutomationRunbook [-Name] <string> [-Parameters <IDictionary>] [-RunOn <string>] [-JobId <guid>] [<CommonParameters>]
Wait-AutomationJob Wait-AutomationJob -Id <guid[]> [-TimeoutInMinutes <int>] [-DelayInSeconds <int>] [-OutputJobsTransitionedToRunning] [<CommonParameters>]

Vegye figyelembe, hogy a belső parancsmagok elnevezése eltér az Az és az AzureRM parancsmagoktól. A belső parancsmagok nevei nem tartalmaznak olyan szavakat, mint Azure vagy Az a főnévben, de használja a Automation szót. Javasoljuk az Az vagy AzureRM parancsmagok használatát a runbook végrehajtása során egy Azure tesztkörnyezetben vagy egy Windows hibrid runbook-feldolgozóban, mert ezek kevesebb paramétert igényelnek, és a végrehajtás során a feladat kontextusában futnak.

Az vagy AzureRM parancsmagok használatával manipulálhatja az Automation-erőforrásokat egy runbook környezetén kívül.

Python modulok

Python 2 runbookokat hozhat létre az Azure Automationben. Python modulinformációkért lásd: Python 2 csomagok kezelése az Azure Automationben.

Egyéni modulok

Azure Automation támogatja az egyedi PowerShell-modulokat, amelyeket a futtatási könyvekkel és DSC-konfigurációkkal való használatra hoz létre. Az egyéni modul egyik típusa egy integrációs modul, amely opcionálisan tartalmaz egy metaadatfájlt, amely meghatározza a modul parancsmagjainak egyéni funkcióit. Az integrációs modul használatára példa a Kapcsolattípus hozzáadása című témakörben található.

Azure Automation importálhat egy egyéni modult a parancsmagok elérhetővé tétele érdekében. A háttérben tárolja a modult, és a Azure tesztkörnyezetekben használja, ahogyan más modulokat is.

Migrálás Az-modulokba

Ez a szakasz bemutatja, hogyan migrálhat az Az-modulokra az Automationben. További információért lásd: Frissítse az Azure PowerShellt az AzureRM-ről Az-re.

Nem javasoljuk, hogy az AzureRM-modulokat és az Az-modulokat ugyanabban az Automation-fiókban futtassa. Ha biztos abban, hogy az AzureRM-ből az Az-be szeretné áttelepíteni a modulokat, a legjobb, ha teljes körű áttelepítést végez. Az Automation gyakran újra felhasználja a tesztkörnyezeteket az Automation-fiókban az indítási idők lerövidítése érdekében. Ha nem végez teljes moduláttelepítést, elindíthat egy olyan feladatot, amely csak AzureRM-modulokat használ, majd egy olyat, amely csak Az-modulokat használ. A tesztkörnyezet hamarosan összeomlik, és hibaüzenet jelenik meg, amely szerint a modulok nem kompatibilisek. Ez a helyzet véletlenszerű összeomlásokat eredményez egy adott runbook vagy konfiguráció esetében.

Megjegyzés

Amikor új Automation-fiókot hoz létre, akár az Az-modulokra való migrálás után is, az Automation alapértelmezés szerint telepíti az AzureRM-modulokat.

Runbookok és DSC-konfigurációk tesztelése a modulmigrálás előtt

Mielőtt az Az-modulokra migrálna, mindenképpen gondosan tesztelje az összes runbookot és DSC-konfigurációt egy külön Automation-fiókban.

Az AzureRM-modulokat használó összes runbook leállítása és ütemezésének megszüntetése

Annak érdekében, hogy ne futtasson olyan meglévő runbookokat vagy DSC-konfigurációkat, amelyek AzureRM-modulokat használnak, le kell állítania és ki kell ütemeznie az összes érintett runbookot és konfigurációt. Először tekintse át egyenként az összes runbookot vagy DSC-konfigurációt és azok ütemezéseit, hogy szükség esetén a jövőben átütemezhesse őket.

Ha készen áll az ütemezések eltávolítására, használhatja a Azure portált vagy a Remove-AzAutomationSchedule parancsmagot. Lásd: Ütemezés eltávolítása.

AzureRM-modulok eltávolítása

Az Az-modulok importálása előtt eltávolíthatja az AzureRM-modulokat. Ezzel azonban megszakíthatja a verziókövetés szinkronizálását, és a még beütemezett szkriptek meghiúsulhatnak. Ha úgy dönt, hogy eltávolítja a modulokat, olvassa el az AzureRM eltávolítása című témakört.

Az-modulok importálása

Ha egy Az-modult importál az Automation-fiókjába, az nem importálja automatikusan a modult a runbookok által használt PowerShell-munkamenetbe. A modulok a következő helyzetekben lesznek importálva a PowerShell-munkamenetbe:

  • Amikor egy runbook parancsmagot hív meg egy modulból.
  • Amikor egy runbook explicit módon importálja a modult az Import-Module parancsmaggal.
  • Amikor egy runbook explicit módon importálja a modult a modulutasítás használatával. A felhasználói utasítás Windows PowerShell 5.0-s verziótól kezdve támogatott, és támogatja az osztályok és az enumerálási típus importálását.
  • Amikor egy runbook egy másik függő modult importál.

Az Az-modulokat importálhatja az Automation-fiókba a Azure portálról. Mivel az Az.Accounts a többi Az-modul függősége, mindenképpen importálja ezt a modult mások előtt.

Megjegyzés

A PowerShell 7.1 (előzetes verzió) támogatásának bevezetésével a Tallózás gyűjtemény lehetőség az alábbi módosításokkal frissült:

  • Tallózás a galériában a Folyamatautomatizálás>modulok pengéjén érhető el.
  • A Modulok lapon két új oszlop jelenik meg – a modul verziója és a futtatókörnyezet verziója
  1. Jelentkezzen be az Azure portálra.

  2. Keressen rá, és jelölje ki az Automatizálási fiókok elemet.

  3. Az Automation-fiókok oldalon válassza ki az Automation-fiókját a listából.

  4. Az Automation-fiók Megosztott erőforrások területén válassza a Modulok lehetőséget.

  5. Válassza a Modul hozzáadása lehetőséget. A Modul hozzáadása lapon az alábbi lehetőségek közül választhat:

    1. Keresse meg a fájlt – kiválaszt egy fájlt a helyi gépről.
    2. Tallózás a katalógusból – tallózhat, és kiválaszthat egy meglévő modult a katalógusból.
  6. A modul kiválasztásához kattintson a Kiválasztás gombra.

  7. Válassza a Futtatókörnyezet verziója lehetőséget, és kattintson az Importálás gombra.

    Képernyőkép a modulok Automation-fiókba való importálásáról.

  8. A Modulok lapon az Automation-fiók alatt megtekintheti az importált modult.

Ezt az importálást a PowerShell-galéria segítségével is elvégezheti, ha megkeresi az importálni kívánt modult. Amikor megtalálta a modult, jelölje ki, és válassza a Azure Automation lapot. Válassza a Telepítés az Azure Automationba.

Modulok importálása közvetlenül a PowerShell-galéria-ből.

Tesztelje a saját runbookjait

Miután importálta az Az-modulokat az Automation-fiókba, megkezdheti a runbookok és DSC-konfigurációk szerkesztését az új modulok használatához. A runbook új parancsmagok használatára való módosításának tesztelésére az egyik módszer a Enable-AzureRmAlias -Scope Process runbook elején található parancs használata. Ha hozzáadja ezt a parancsot a runbookhoz, a szkript módosítás nélkül is futtatható.

Szerzői modulok

Javasoljuk, hogy kövesse az ebben a szakaszban ismertetett szempontokat, amikor egyéni PowerShell-modult hoz létre a Azure Automation való használatra. A modul importálásához előkészítésként létre kell hoznia legalább egy .psd1, .psm1 vagy PowerShell modul .dll fájlt, amely ugyanazt a nevet viseli, mint a modul mappa. Ezután tömörítse a modulmappát, hogy Azure Automation egyetlen fájlként importálhassa. A .zip csomagnak ugyanazzal a névvel kell rendelkeznie, mint a tartalmazott modulmappának.

Ha többet szeretne megtudni a PowerShell-modul készítéséről, olvassa el a PowerShell-szkriptmodul írása című témakört.

Verziómappa

A PowerShell-modulok párhuzamos verziószámozása lehetővé teszi egy modul több verziójának használatát a PowerShellben. Ez akkor lehet hasznos, ha régebbi, tesztelt szkriptekkel rendelkezik, és csak egy PowerShell-modul egy bizonyos verzióján dolgozik, de más szkriptekhez ugyanannak a PowerShell-modulnak egy újabb verziója szükséges.

Ha PowerShell-modulokat szeretne létrehozni, hogy azok több verziót tartalmazzanak, hozza létre a modulmappát, majd hozzon létre egy mappát a modul minden olyan verziójához, amelyet használni szeretne. Az alábbi példában a TestModule nevű modul két verziót biztosít: 1.0.0 és 2.0.0.

TestModule
   1.0.0
   2.0.0

Az egyes verziómappákban másolja a PowerShell modulhoz tartozó .psm1, .psd1 vagy .dll fájlokat a megfelelő verziómappába. Tömörítse be a modulmappát, hogy Azure Automation egyetlen .zip fájlként importálhassa. Bár az Automation csak az importált modul egyik verzióját jeleníti meg, ha a modulcsomag a modul egymás melletti verzióit tartalmazza, ezek mindegyike használható a runbookokban vagy a DSC-konfigurációkban.

Bár az Automation támogatja azokat a modulokat, amelyek ugyanazon csomagon belül egymás mellett találhatók, nem támogatja a modul több verziójának használatát a modulcsomagok importálása során. Importálja például az A modult, amely az 1. és a 2. verziót tartalmazza az Automation-fiókjába. Később úgy frissíti az A modult, hogy tartalmazza a 3. és a 4. verziót, amikor importálja az Automation-fiókjába, csak a 3. és a 4. verzió használható bármilyen runbookon vagy DSC-konfiguráción belül. Ha az összes - 1, 2, 3 és 4 verziót - elérhetővé szeretné tenni, az importált .zip fájlnak tartalmaznia kell az 1., 2., 3. és 4. verziót.

Ha ugyanazt a modul különböző verzióit fogja használni a runbookok között, a parancsmag használatával mindig deklarálnia kell a Import-Module runbookban használni kívánt verziót, és tartalmaznia kell a paramétert -RequiredVersion <version>. Még akkor is, ha a használni kívánt verzió a legújabb verzió. Ennek az az oka, hogy a runbook-feladatok ugyanabban a tesztkörnyezetben futhatnak. Ha a tesztkörnyezet már betöltött egy bizonyos verziószámú modult, mert a tesztkörnyezetben egy korábbi feladat ezt mondta, a tesztkörnyezetben lévő jövőbeli feladatok nem töltik be automatikusan a modul legújabb verzióját. Ennek az az oka, hogy a tesztkörnyezetben már be van töltve néhány verziója.

DSC-erőforrás esetén az alábbi paranccsal adjon meg egy adott verziót:

Import-DscResource -ModuleName "<ModuleName>" -ModuleVersion "<version>"

Súgóinformációk

Adjon meg egy összefoglalót, leírást és súgó URI-t a modul minden parancsmagjához. A PowerShellben a parancsmagok súgóadatait a Get-Help parancsmag használatával határozhatja meg. Az alábbi példa bemutatja, hogyan definiálhat egy szinopszist, és hogyan segítheti az URI-t egy .psm1 modulfájlban.

<#
     .SYNOPSIS
      Gets a Contoso User account
#>
function Get-ContosoUser {
[CmdletBinding](DefaultParameterSetName='UseConnectionObject', `
HelpUri='https://www.contoso.com/docs/information')]
[OutputType([String])]
param(
   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $UserName,

   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $Password,

   [Parameter(ParameterSetName='ConnectionObject', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [Hashtable]
   $Connection
)

switch ($PSCmdlet.ParameterSetName) {
   "UserAccount" {
      $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $Password
      Connect-Contoso -Credential $cred
   }
   "ConnectionObject" {
      Connect-Contoso -Connection $Connection
  }
}
}

Ezen információk megadásával súgószöveg jelenik meg a Get-Help PowerShell-konzol parancsmagján keresztül. Ez a szöveg a Azure portálon is megjelenik.

Az integrációs modul súgójának képernyőképe

Kapcsolat típusa

Ha a modul külső szolgáltatáshoz csatlakozik, egyéni integrációs modullal definiáljon egy kapcsolattípust. A modul minden parancsmagjának paraméterként el kell fogadnia az adott kapcsolattípus (kapcsolatobjektum) egy példányát. A felhasználók a parancsmag megfelelő paramétereihez rendelik le a kapcsolati objektum paramétereit minden alkalommal, amikor meghívnak egy parancsmagot.

 Egyéni kapcsolat használata a Azure portálon

Az alábbi runbook-példa egy Contoso kapcsolati objektumot használ a ContosoConnection Contoso-erőforrások eléréséhez és a külső szolgáltatásból származó adatok visszaadásához. Ebben a példában a mezők a UserName objektum Password és PSCredential tulajdonságaira vannak leképezve, majd továbbítva a parancsmagnak.

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $contosoConnection.UserName, $contosoConnection.Password
Connect-Contoso -Credential $cred
}

Ennek a viselkedésnek a megközelítése egyszerűbb és jobb módja, ha közvetlenül átadja a kapcsolatobjektumot a parancsmagnak:

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

Connect-Contoso -Connection $contosoConnection
}

A parancsmagok hasonló viselkedését úgy engedélyezheti, hogy lehetővé teszi számukra, hogy közvetlenül paraméterként fogadjanak el egy kapcsolatobjektumot a paraméterek kapcsolatmezői helyett. Általában mindegyikhez érdemes egy paraméterhalmazt beállítani, így az Automationt nem használó felhasználók anélkül hívhatják meg a parancsmagokat, hogy kapcsolatobjektumként hashtáblát kellene létrehozniuk. A paraméterkészlet UserAccount a kapcsolatmező tulajdonságainak átadására szolgál. ConnectionObject lehetővé teszi, hogy a kapcsolatot közvetlenül átvigye.

Kimeneti típus

Adja meg a modul összes parancsmagjának kimeneti típusát. A parancsmag kimeneti típusának meghatározása lehetővé teszi a tervezési idejű IntelliSense-t a parancsmag kimeneti tulajdonságainak meghatározásához a létrehozás során. Ez a gyakorlat különösen hasznos a grafikus runbookok készítése során, amelyekhez a tervezési idő ismerete kulcsfontosságú a modul egyszerű felhasználói élményéhez.

Adjon hozzá egy [OutputType([<MyOutputType>])], ahol MyOutputType érvényes típus. Ha többet szeretne megtudni OutputType, olvassa el az Attribútumok a függvények kimeneti típusához című részt. Az alábbi kód egy példa arra, hogyan adható hozzá egy OutputType egy parancsmaghoz:

function Get-ContosoUser {
[OutputType([String])]
param(
   [string]
   $Parameter1
)
# <script location here>
}

Egy grafikus runbook kimeneti típusának képernyőképe

Ez a viselkedés hasonló egy parancsmag kimenetének előremutató funkciójához a PowerShell integrációs szolgáltatáskörnyezetében, anélkül, hogy futtatni kellene.

A POSH IntelliSense képernyőképe

Parancsmag állapota

Állítsa állapotmentessé a modul összes parancsmagját. Egyszerre több runbook-feladat is futtatható ugyanabban AppDomain a folyamatban és tesztkörnyezetben. Ha ezeken a szinteken bármilyen állapot meg van osztva, a feladatok hatással lehetnek egymásra. Ez a viselkedés időszakos és nehezen diagnosztizálható problémákhoz vezethet. Íme egy példa arra, hogy mit ne tegyek:

$globalNum = 0
function Set-GlobalNum {
   param(
       [int] $num
   )

   $globalNum = $num
}
function Get-GlobalNumTimesTwo {
   $output = $globalNum * 2

   $output
}

Modulfüggőség

Győződjön meg arról, hogy a modul teljes egészében megtalálható egy olyan csomagban, amely xcopy használatával másolható. Az Automation-modulok a runbookok végrehajtásakor kerülnek kiosztásra az Automation tesztkörnyezeteibe. A moduloknak az őket futtató gazdagéptől függetlenül kell működniük.

Le kell tudnia tömöríteni és áthelyezni a modulcsomagot úgy, hogy az változatlanul működjön, amikor egy másik gazdagép PowerShell-környezetébe importálják. Ehhez győződjön meg arról, hogy a modul nem függ a modul mappáján kívüli fájloktól, amelyek a modul Automationbe való importálásakor tömörítve vannak.

A modul nem függhet a gazdagép beállításjegyzékének egyedi beállításaitól. Ilyenek például a termékek telepítésekor megadott beállítások.

Modulfájl elérési útjai

Győződjön meg arról, hogy a modul összes fájlja 140 karakternél rövidebb elérési utakkal rendelkezik. A 140 karakternél hosszabb elérési utak problémákat okoznak a runbookok importálásával kapcsolatban. Az Automation nem tud importálni egy 140 karakternél nagyobb elérési utat tartalmazó fájlt a PowerShell-munkamenetbe Import-Module.

Modulok importálása

Ez a szakasz számos módszert definiál, amelyekkel importálhat modulokat az Automation-fiókjába.

Modulok importálása a Azure portálon

Modul importálása a Azure portálon:

  1. A portálon keresse meg és válassza az Automation-fiókok lehetőséget.
  2. Az Automation-fiókok oldalon válassza ki az Automation-fiókját a listából.
  3. A Megosztott erőforrások területen válassza a Modulok lehetőséget.
  4. Válassza a Modul hozzáadása lehetőséget.
  5. Válassza ki a modult tartalmazó .zip-fájlt.
  6. Az importálási folyamat elindításához válassza az OK gombot.

Modulok importálása a PowerShell használatával

A New-AzAutomationModule parancsmaggal importálhat egy modult az Automation-fiókjába. A parancsmag egy modul .zip csomag URL-címét veszi át.

$moduleName = "<ModuleName>"
$contentLinkUri = "<ModuleUri>"
$runtimeVersion = "<RuntimeVersion>" # 5.1 or 7.2
$resourceGroupName = "<ResourceGroupName>"
$automationAccountName = "<AutomationAccountName>"
New-AzAutomationModule -Name $moduleName -RuntimeVersion $runtimeVersion -ContentLinkUri $contentLinkUri -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName

Ugyanezzel a parancsmaggal közvetlenül importálhat egy modult a PowerShell-galériaből. Ügyeljen arra, hogy szerezze be a ModuleName és ModuleVersion fájlokat a PowerShell-galéria-ből.

$moduleName = "<ModuleName>"
$moduleVersion = "<ModuleVersion>"
$runtimeVersion = "<RuntimeVersion>" # 5.1 or 7.2
$resourceGroupName = "<ResourceGroupName>"
$automationAccountName = "<AutomationAccountName>"
New-AzAutomationModule -AutomationAccountName $automationAccountName -RuntimeVersion $runtimeVersion -ResourceGroupName $resourceGroupName -Name $moduleName -ContentLinkUri "https://www.powershellgallery.com/api/v2/package/$moduleName/$moduleVersion"

A PowerShell-galéria modulokat közvetlenül a katalógusból vagy az Automation-fiókból importálhatja.

Modul importálása közvetlenül a PowerShell-galéria:

  1. Nyissa meg https://www.powershellgallery.com és keresse meg az importálni kívánt modult.
  2. A Installation Options részben, a Azure Automation lapon válassza a Telepítés Azure Automationra. Ez a művelet megnyitja a Azure portált.
  3. Az Importálás lapon válassza ki az Automation-fiókját, majd kattintson az OK gombra.

A PowerShell-galéria importálási modul képernyőképe

PowerShell-galéria modul importálása közvetlenül az Automation-fiókból:

  1. A portálon keresse meg és válassza az Automation-fiókok lehetőséget.
  2. Az Automation-fiókok oldalon válassza ki az Automation-fiókját a listából.
  3. A Megosztott erőforrások területen válassza a Modulok lehetőséget.
  4. Válassza a Tallózás gyűjtemény lehetőséget, majd keressen rá a katalógusban egy modulra.
  5. Válassza ki az importálni kívánt modult, és válassza az Importálás lehetőséget.
  6. Az importálási folyamat elindításához kattintson az OK gombra .

Az Azure portálról PowerShell-galéria modul importálásának képernyőképe

Modulok törlése

Ha problémái vannak egy modullal, vagy vissza kell állítania egy modul egy korábbi verzióját, törölheti azt az Automation-fiókjából. Az Automation-fiók létrehozásakor importált alapértelmezett modulok eredeti verziói nem törölhetők. Ha a törölni kívánt modul az egyik alapértelmezett modul újabb verziója, az az Automation-fiókkal telepített verzióra kerül vissza. Ellenkező esetben az Automation-fiókból törölt összes modul el lesz távolítva.

Modulok törlése a Azure portálon

Modul eltávolítása a Azure portálon:

  1. A portálon keresse meg és válassza az Automation-fiókok lehetőséget.
  2. Az Automation-fiókok oldalon válassza ki az Automation-fiókját a listából.
  3. A Megosztott erőforrások területen válassza a Modulok lehetőséget.
  4. Válassza ki az eltávolítani kívánt modult.
  5. A Modul lapon válassza a Törlés lehetőséget. Ha ez a modul az alapértelmezett modulok egyike, az az Automation-fiók létrehozásakor létező verzióra kerül vissza.

Modulok törlése a PowerShell használatával

Ha el szeretne távolítani egy modult a PowerShell-lel, futtassa a következő parancsot:

Remove-AzAutomationModule -Name <moduleName> -AutomationAccountName <automationAccountName> -ResourceGroupName <resourceGroupName>

Következő lépések