Batch-erőforrások kezelése PowerShell-parancsmagokkal

Az Azure Batch PowerShell parancsokkal sok gyakori Batch feladatot hajthatsz végre és scriptelhetsz. Ez egy gyors bevezető azokhoz a cmdletekhez, amelyeket a Batch-fiókok kezeléséhez és a Batch-erőforrásokkal való munkához használhat, mint például a csoportok, munkák és feladatok.

A Batch-parancsmagok teljes listáját és a részletes parancsmagszintaxisokat a Azure Batch parancsmagok hivatkozásában találja.

Javasoljuk, hogy gyakran frissítse az Azure PowerShell modulokat, hogy kihasználhassa a szolgáltatásfrissítések és fejlesztések előnyeit.

Előfeltételek

  • Telepítse és konfigurálja a Azure PowerShell modult. Az Azure Batch modulok, például egy előzetes kiadású modul telepítéséhez lásd a PowerShell Galériát.

  • Futtassa a Connect-AzAccount parancsmagot, hogy csatlakozzon az előfizetéséhez (az Azure Batch parancsmagok az Azure Resource Manager modul részeként érhetők el).

    Connect-AzAccount
    
  • Regisztráljon a Batch szolgáltatónév-térrel. Ezt a műveletet előfizetésenként csak egyszer kell végrehajtania.

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

A Batch-fiókok és kulcsok kezelése

Batch-fiók létrehozása

New-AzBatchAccount létrehoz egy Batch-fiókot egy megadott erőforráscsoportban. Ha még nincs erőforráscsoportja, hozzon létre egyet a New-AzResourceGroup cmdlet futtatásával. Adja meg az egyik Azure régiót a Location paraméterben, például az "USA középső régióját". Például:

New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"

Ezután hozzon létre egy Batch fiókot az erőforráscsoportban. Adjon meg egy nevet a fióknak a <account_name> mezőben, valamint adja meg az erőforráscsoportja helyét és nevét. A Batch-fiók létrehozása eltarthat egy ideig. Például:

New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>

Megjegyzés:

Az Azure régióban a Batch-fióknéven belül az erőforráscsoport számára egyedinek kell lennie, 3 és 24 karakter közötti hosszúságúnak kell lennie, valamint csak kisbetűket és számokat tartalmazhat.

Fiókelérési kulcsok lekérése

A Get-AzBatchAccountKeys megmutatja az Azure Batch fiókhoz társított hozzáférési kulcsokat. Például futtassa a következő parancsot az általad létrehozott fiók elsődleges és másodlagos kulcsainak megtekintéséhez.

$Account = Get-AzBatchAccountKeys –AccountName <account_name>

$Account.PrimaryAccountKey

$Account.SecondaryAccountKey

Új hozzáférési kulcs létrehozása

New-AzBatchAccountKey egy új elsődleges vagy másodlagos fiókkulcsot generál egy Azure Batch fiókhoz. Például, hogy új elsődleges kulcsot generáljon a Batch fiókjához, írja be:

New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary

Megjegyzés:

Új másodlagos kulcs generálásához adja meg a KeyType paraméter értékének a "Secondary" szót. A fő és másodlagos kulcsokat külön kell újragenerálni.

Batch-fiók törlése

A Remove-AzBatchAccount törli a Batch fiókot. Például:

Remove-AzBatchAccount -AccountName <account_name>

Amikor a rendszer kéri, erősítse meg, hogy el szeretné távolítani a fiókot. A fiók törlése eltarthat egy ideig.

Hozzon létre egy BatchAccountContext objektumot

A Batch erőforrások kezelése érdekében hitelesíthet vagy megosztott kulcsalapú hitelesítéssel, vagy a Microsoft Entra hitelesítéssel. A Batch PowerShell parancsmagok használatával történő hitelesítéshez először hozzon létre egy BatchAccountContext objektumot, amely tárolja a fiókadatiokat vagy az azonosítót. A BatchAccountContext objektumot átadod azoknak a cmdleteknek, amelyek a BatchContext paramétert használják.

Megosztott kulcsos hitelesítés

$context = Get-AzBatchAccountKeys -AccountName <account_name>

Megjegyzés:

Alapértelmezés szerint a fiók elsődleges kulcsa kerül felhasználásra hitelesítéshez, de explicit módon kiválaszthatja a használni kívánt kulcsot úgy, hogy módosítja a BatchAccountContext objektum KeyInUse tulajdonságát: $context.KeyInUse = "Secondary".

Microsoft Entra-hitelesítés

$context = Get-AzBatchAccount -AccountName <account_name>

Hozzon létre és módosítsa a kötegelt erőforrásokat

Használjon cmdleteket, mint például a New-AzBatchPool, New-AzBatchJob, és New-AzBatchTask erőforrások létrehozásához egy Batch-fiók alatt. Vannak megfelelő Get- és Set- parancsmagok a meglévő erőforrások tulajdonságainak frissítéséhez, az Eltávolítás parancsmagok pedig a Batch-fiókban lévő erőforrások eltávolításához.

Ezen parancsmagok közül sok használatakor a BatchContext-objektumok átadása mellett olyan objektumokat kell létrehoznia vagy átadnia, amelyek részletes erőforrás-beállításokat tartalmaznak, ahogyan az az alábbi példában látható. További példákért tekintse meg az egyes parancsmagok részletes súgóját.

Készítsen egy Batch készletet

Amikor létrehoz vagy frissít egy Batch pool-t, megad egy konfigurációt. A poolokat jellemzően a Virtuális Gép Konfigurációval kell beállítani, ami lehetővé teszi, hogy kiválassza az Azure Virtual Machines Marketplace-ben felsorolt támogatott Linux vagy Windows VM képek egyikét, vagy megadjon egy saját készítésű egyéni képet. A Cloud Services Configuration pool-ok csak Windows számítási egységeket biztosítanak, és nem támogatják az összes Batch funkciót.

Amikor a New-AzBatchPool parancsot futtatja, adja meg az operációs rendszer beállításait egy PSVirtualMachineConfiguration vagy PSCloudServiceConfiguration objektumban. Például a következő kódrészlet egy Batch medencét hoz létre Standard_A1 méretű számítási csomópontokkal a virtuális gép konfigurációjában, Ubuntu Server 20.04-LTS képpel. Itt a VirtualMachineConfiguration paraméter a $configuration változót PSVirtualMachineConfiguration objektumként adja meg. A BatchContext paraméter egy korábban meghatározott $context változót ad meg a BatchAccountContext objektumként.

$imageRef = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("UbuntuServer","Canonical","20.04-LTS")

$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageRef, "batch.node.ubuntu 20.04")

New-AzBatchPool -Id "mypspool" -VirtualMachineSize "Standard_a1" -VirtualMachineConfiguration $configuration -AutoScaleFormula '$TargetDedicated=4;' -BatchContext $context

Az új fürt célzott számítási csomópontjainak száma egy automatikus skálázási képlet alapján kerül kiszámításra. Ebben az esetben a képlet egyszerűen $TargetDedicated=4, ami azt jelzi, hogy a számítási csomópontok száma a fürtben legfeljebb 4.

Lekérdezés készletekre, feladatokra, munkákra és egyéb részletekre

Használjon cmdleteket, például a Get-AzBatchPool, Get-AzBatchJob és Get-AzBatchTask parancsokat, hogy lekérdezzen a Batch fiókban létrehozott entitásokat.

Adatlekérdezés

Például használja a Get-AzBatchPools parancsot, hogy megtalálja a medencéit. Alapértelmezés szerint ez lekérdezi a fiókod alá tartozó összes tartalékkészletet, feltéve, hogy már eltároltad a BatchAccountContext objektumot a(z) $context változóban.

Get-AzBatchPool -BatchContext $context

Használjon OData szűrőt

Megadhat egy OData szűrőt a Filter paraméter használatával, hogy csak a kívánt objektumokat találja meg. Például megtalálhatja az összes olyan medencét, amelynek azonosítója a „myPool”-lal kezdődik.

$filter = "startswith(id,'myPool')"

Get-AzBatchPool -Filter $filter -BatchContext $context

Ez a módszer nem olyan rugalmas, mint a „Where-Object” használata egy lokális csővezetékben. A lekérdezést azonban közvetlenül a Batch szolgáltatásba küldi a rendszer, hogy minden szűrés a kiszolgálóoldalon történjen, így az internetes sávszélességet takaríthatja meg.

Használja az Id paramétert

Az OData-szűrő alternatíva az Id paraméter használata. Egy adott "myPool" azonosítójú pool lekérdezéséhez:

Get-AzBatchPool -Id "myPool" -BatchContext $context

Az Azonosító paraméter csak a teljes azonosítójú keresést támogatja; nem helyettesítő karaktereket vagy OData-stílusú szűrőket.

Használja a MaxCount paramétert.

Alapértelmezés szerint minden cmdlet legfeljebb 1000 objektumot ad vissza. Ha eléri ezt a korlátot, finomítsa a szűrőt, hogy kevesebb objektumot hozzon vissza, vagy explicit módon állítsa be a maximumot a MaxCount paraméterrel. Például:

Get-AzBatchTask -MaxCount 2500 -BatchContext $context

Az alsó határ eltávolításához állítsa be a MaxCount értékét 0-ra vagy kisebbre.

A PowerShell-folyamat használata

A Batch-parancsmagok a PowerShell-folyamat használatával küldenek adatokat a parancsmagok között. Ennek ugyanaz a hatása, mint egy paraméter megadásának, de megkönnyíti a munkát több entitással.

Például találja meg és jelenítse meg az összes feladatot a fiókja alatt.

Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context

Indítsa újra (indítsa újra) a készlet összes számítási csomópontját:

Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

Alkalmazáscsomag-kezelés

Az alkalmazáscsomagok egyszerűsítik az alkalmazások telepítését a számítási csomópontokra a medencéiben. A Batch PowerShell-parancsmagokkal alkalmazáscsomagokat tölthet fel és kezelhet a Batch-fiókban, és csomagverziókat helyezhet üzembe a számítási csomópontokon.

Fontos

Az alkalmazáscsomagok használatához összekötést kell létrehoznia egy Azure Storage fiók és a Batch fiók között.

Készíts egy alkalmazást:

New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

Adj hozzá egy alkalmazáscsomagot:

New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip

Állítsa be az alkalmazás alapértelmezett verzióját.

Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"

Alkalmazáscsomagok listázása

$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

$application.ApplicationPackages

Törlés egy alkalmazáscsomagot

Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"

Alkalmazás törlése

Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

Megjegyzés:

Mielőtt törölné az alkalmazást, törölnie kell az alkalmazás összes alkalmazáscsomag-verzióját. „Konfliktus” hibaüzenet jelenik meg, ha olyan alkalmazást próbál törölni, amelyhez még tartoznak alkalmazáscsomagok.

Alkalmazáscsomag telepítése

Megadhat egy vagy több alkalmazási csomagot a telepítéshez, amikor létrehoz egy erőforráskészletet. Amikor egy csomagot ad meg a medence létrehozásakor, az a csomópontokhoz települ, amikor azok csatlakoznak a medencéhez. A csomagok akkor is telepítésre kerülnek, ha egy csomópont újraindul vagy újra van képezve.

Adja meg a -ApplicationPackageReference opciót, amikor létrehoz egy fürtöt, hogy egy alkalmazáscsomagot helyezzen üzembe a fürt csomópontjain, ahogy csatlakoznak a fürthöz. Először hozzon létre egy PSApplicationPackageReference objektumot, és állítsa be az alkalmazásazonosítóval és a csomag verziójával, amelyet a fürt számítógépeihez szeretne telepíteni.

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "1.0"

Most hozza létre a fürdőt, és adja meg a csomag hivatkozására vonatkozó objektumot az ApplicationPackageReferences opció argumentumaként:

New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference

További információt az alkalmazáscsomagokról a Alkalmazások telepítése számítási csomópontokra Batch alkalmazáscsomagokkal részben találhat.

Egy hardverkészlet alkalmazáscsomagjainak frissítése

A meglévő medencéhez rendelt alkalmazások frissítéséhez először hozzon létre egy PSApplicationPackageReference objektumot a kívánt tulajdonságokkal (alkalmazásazonosító és csomag verzió).

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "2.0"

Ezután szerezze meg a fürdőt a Batch szolgáltatásból, távolítson el minden meglévő csomagot, adja hozzá az új csomag hivatkozást, és frissítse a Batch szolgáltatást az új fürdő beállításokkal.

$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"

$pool.ApplicationPackageReferences.Clear()

$pool.ApplicationPackageReferences.Add($appPackageReference)

Set-AzBatchPool -BatchContext $context -Pool $pool

Most frissítette a készlet tulajdonságait a Batch szolgáltatásban. Ahhoz azonban, hogy az új alkalmazáscsomag ténylegesen üzembe helyezhető legyen a készlet számítási csomópontjaiban, újra kell indítania vagy újra kell telepítenie ezeket a csomópontokat. Ezzel a paranccsal újraindíthat minden csomópontot egy medencében.

Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

Jótanács

Több alkalmazáscsomagot is üzembe helyezhet a készlet számítási csomópontjaiban. Ha az aktuálisan üzembe helyezett csomagok cseréje helyett egy alkalmazáscsomagot szeretne hozzáadni, hagyja ki a $pool.ApplicationPackageReferences.Clear() fenti sort.

Következő lépések

  • Részletes parancsmagszintaxisért és példákért tekintse át a Azure Batch parancsmagok hivatkozását.
  • Ismerje meg, hogyan telepíthet alkalmazásokat számítási csomópontokra Batch alkalmazáscsomagok segítségével.