Batch-erőforrások kezelése PowerShell-parancsmagokkal
A Azure Batch PowerShell-parancsmagokkal számos gyakori Batch-feladatot hajthat végre és szkriptelhet. Ez a cikk gyors ismertetést nyújt a Batch-fiókok felügyeletéhez és a Batch-erőforrásokkal, például készletekkel, feladatokkal és tevékenységekkel használható parancsmagokról.
A Batch-parancsmagok teljes listájáért és a parancsmagok részletes szintaxisáért lásd: Azure Batch-parancsmagok referenciája.
Ajánlott gyakran frissíteni az Azure PowerShell-modulokat a szolgáltatásfrissítések és -fejlesztések kihasználása érdekében.
Előfeltételek
Telepítse és konfigurálja az Azure PowerShell modul legújabb verzióját. Egy adott Azure Batch-modul, például egy kiadás előtti modul telepítésével kapcsolatban lásd a PowerShell-galériát ismertető cikket.
Futtassa az Csatlakozás-AzAccount parancsmagot az előfizetéshez való csatlakozáshoz (a Azure Batch parancsmagok az Azure Resource Manager modulban találhatók):
Connect-AzAccountRegisztráljon a Batch-szolgáltató névterével. Ezt a műveletet előfizetésenként csak egyszer kell elvégezni.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Batch-fiókok és kulcsok felügyelete
Batch-fiók létrehozása
A New-AzBatchAccount létrehoz egy Batch-fiókot egy megadott erőforráscsoportban. Ha még nem rendelkezik erőforráscsoporttal, hozzon létre egyet a New-AzResourceGroup parancsmag futtatásával. A Hely paraméternél adjon meg egy Azure régiót, például az „USA középső régiója”. Például:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Ezután hozzon létre egy Batch-fiókot az erőforráscsoportban. Adja meg a fiók <>nevét account_name, valamint az erőforráscsoport helyét és nevét. A Batch-fiókok létrehozása eltarthat egy ideig. Például:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Megjegyzés
A Batch-fiók nevének egyedinek kell lennie az erőforráscsoport Azure-régiójában, 3–24 karaktert kell tartalmaznia, és csak kisbetűkből és számokból állhat.
Fiók hívóbetűinek beszerzése
A Get-AzBatchAccountKeys megjeleníti az Azure Batch-fiókhoz társított hozzáférési kulcsokat. Például a következő futtatásával lekérheti a létrehozott fiók elsődleges és másodlagos hívóbetűit.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Új hívóbetű létrehozása
A New-AzBatchAccountKey létrehoz egy új elsődleges vagy másodlagos fiókkulcsot egy Azure Batch fiókhoz. Ha például új elsődleges hívóbetűt szeretne létrehozni a Batch-fiókhoz, írja be a következőt:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Megjegyzés
Új másodlagos hívóbetű létrehozásához adja meg a „Másodlagos” szöveget a KeyType paraméterhez. Az elsődleges és a másodlagos hívóbetűket külön kell újra létrehoznia.
Batch-fiók törlése
A Remove-AzBatchAccount töröl egy Batch-fiókot. Például:
Remove-AzBatchAccount -AccountName <account_name>
A felugró kérdésre erősítse meg, hogy valóban el kívánja távolítani a fiókot. A fiókeltávolítás eltarthat egy ideig.
BatchAccountContext objektum létrehozása
A Batch-erőforrások kezeléséhez szükséges hitelesítést elvégezheti megosztott kulcsos hitelesítéssel vagy Azure Active Directory-hitelesítéssel. A Batch PowerShell-parancsmagokkal végzett hitelesítéshez először hozzon létre egy BatchAccountContext objektumot, amely a fiók hitelesítő adatait vagy az identitást tárolja. A BatchAccountContext objektumot a BatchContext paramétert használó parancsmagokba adja át.
Megosztott kulcsos hitelesítés
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Megjegyzés
Alapértelmezés szerint a fiók elsődleges hívóbetűjét használja a hitelesítéshez, de explicit módon kiválaszthatja a használni kívánt betűt, ha módosítja a BatchAccountContext objektum KeyInUse tulajdonságát: $context.KeyInUse = "Secondary".
Hitelesítés Azure Active Directory-fiókkal
$context = Get-AzBatchAccount -AccountName <account_name>
Batch-erőforrások létrehozása és módosítása
A Batch-fiók erőforrásainak létrehozásához használjon olyan parancsmagokat, mint a New-AzBatchPool, a New-AzBatchJob és a New-AzBatchTask . Vannak megfelelő Get- és Set-parancsmagok a meglévő erőforrások tulajdonságainak frissítéséhez, a Remove- parancsmagok pedig a Batch-fiókban lévő erőforrások eltávolításához.
Sok parancsmag használatakor egy BatchContext objektum átadása mellett részletes erőforrás-beállításokat tartalmazó objektumok létrehozására vagy átadására is szükség van, ahogyan az a következő példában látható. További példákat az egyes parancsmagok részletes súgójában talál.
Batch-készlet létrehozása
Batch-készlet létrehozásakor vagy frissítésekor meg kell adnia egy konfigurációt. A készleteket általában virtuálisgép-konfigurációval kell konfigurálni, amely lehetővé teszi az Azure Virtual Machines Marketplace-en felsorolt támogatott Linux- vagy Windows virtuálisgép-rendszerképek egyikének megadását, vagy megadhat egy előkészített egyéni rendszerképet. Cloud Services konfigurációs készletek csak Windows számítási csomópontokat biztosítanak, és nem támogatják az összes Batch-funkciót.
A New-AzBatchPool futtatásakor adja meg az operációs rendszer beállításait egy PSVirtualMachineConfiguration vagy PSCloudServiceConfiguration objektumban. Az alábbi kódrészlet például létrehoz egy Batch-készletet, amelynek mérete Standard_A1 számítási csomópontok a virtuális gép konfigurációjában, az Ubuntu Server 18.04-LTS rendszerképével. Itt a VirtualMachineConfiguration paraméter a $configuration változót a PSVirtualMachineConfiguration objektumként határozza 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","18.04-LTS")
$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageRef, "batch.node.ubuntu 18.04")
New-AzBatchPool -Id "mypspool" -VirtualMachineSize "Standard_a1" -VirtualMachineConfiguration $configuration -AutoScaleFormula '$TargetDedicated=4;' -BatchContext $context
Az új készletben lévő számítási csomópontok célszámát egy automatikus skálázási képlettel számítja ki a rendszer. Ebben az esetben a képlet egyszerűen a $TargetDedicated=4, ami jelzi, hogy a készletben lévő számítási csomópontok száma legfeljebb 4.
Készletek, feladatok, tevékenységek és egyéb részletek lekérdezése
A Batch-fiókban létrehozott entitások lekérdezéséhez használjon olyan parancsmagokat, mint a Get-AzBatchPool, a Get-AzBatchJob és a Get-AzBatchTask .
Adatok lekérdezése
Példaként használja a Get-AzBatchPools parancsot a készletek megkereséséhez. Ez alapértelmezés szerint a fiók összes készletét lekérdezi, ha a BatchAccountContext objektumot már tárolta a $context helyen:
Get-AzBatchPool -BatchContext $context
OData-szűrő használata
Megadhat egy OData-szűrőt a Filter paraméterrel, ha csak a kívánt objektumokat szeretné megkeresni. Például megtalálhatja az összes olyan készletet, amelynek azonosítója a "myPool" kezdetű:
$filter = "startswith(id,'myPool')"
Get-AzBatchPool -Filter $filter -BatchContext $context
Ez a módszer nem olyan rugalmas, mint a „Where-Object” használata a helyi folyamatokban. A lekérdezést azonban közvetlenül a Batch szolgáltatásnak küldi a rendszer, hogy minden szűrés a kiszolgálói oldalon történjen, így internetes sávszélesség takarítható meg.
Az Id paraméter használata
Az OData-szűrő alternatívája az Id paraméter használata. Egy „myPool” azonosítójú adott készlet lekérdezése:
Get-AzBatchPool -Id "myPool" -BatchContext $context
Az Id paraméter csak a teljes azonosítójú keresést támogatja; nem helyettesítő karaktereket vagy OData-stílusú szűrőket.
A MaxCount paraméter használata
Alapértelmezés szerint mindegyik parancsmag maximum 1000 objektumot ad vissza. Ha eléri ezt a korlátot, pontosítsa a szűrőt, hogy kevesebb objektumot adjon vissza, vagy explicit módon állítson be maximális értéket a MaxCount paraméterrel. Például:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
A felső határ eltávolításához 0 vagy kisebb értéket adjon meg a MaxCount paraméternek.
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 a paraméterek megadása, de megkönnyíti a több entitással való munkát.
Például keresse meg és jelenítse meg fiókjában az összes feladatot:
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
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áscsomagok kezelése
Az alkalmazáscsomagok leegyszerűsítik az alkalmazások üzembe helyezését a készletek számítási csomópontjaira. A Batch PowerShell-parancsmagjaival feltöltheti és kezelheti az alkalmazáscsomagokat a Batch-fiókban, valamint a számítási csomópontokban üzembe helyezheti a csomagverziókat.
Fontos
Az alkalmazáscsomagok használatához hozzá kell kapcsolnia egy Azure Storage-fiókot a Batch-fiókjához.
Alkalmazás létrehozása :
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Alkalmazáscsomag hozzáadása:
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ás csomagjainak listázása
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Alkalmazáscsomag törlése
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
Az alkalmazás törlése előtt törölnie kell az alkalmazás összes alkalmazáscsomag-verzióját. Ha olyan alkalmazást próbál meg törölni, amely jelenleg rendelkezik alkalmazáscsomaggal, „Ütközés” hibaüzenetet fog kapni.
Alkalmazáscsomag üzembe helyezése
Készlet létrehozásakor megadhat egy vagy több alkalmazáscsomagot az üzembe helyezéshez. Ha a készlet létrehozásakor megad egy csomagot, az a csomópont készlethez való csatlakoztatásakor minden csomóponton üzembe lesz helyezve. A csomagok akkor is üzembe lesznek helyezve, ha a csomópontot újraindítják vagy alaphelyzetbe állítják.
Adja meg az -ApplicationPackageReference kapcsolót, ha készletet hoz létre egy alkalmazáscsomag üzembe helyezéséhez a készlet csomópontjain, amikor azok csatlakoznak a készlethez. Először hozzon létre egy PSApplicationPackageReference objektumot, és konfigurálja a készlet számítási csomópontjaira telepíteni kívánt alkalmazásazonosítóval és csomagverzióval:
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "1.0"
Ezután hozza létre a készletet, majd a csomag-referenciaobjektumot az ApplicationPackageReferences beállítás argumentumaként adja meg:
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Az alkalmazáscsomagok használatával kapcsolatban további információkat a Batch-alkalmazáscsomagokkal számítási csomópontokra végzett alkalmazástelepítést ismertető cikkben talál.
Készlet alkalmazáscsomagjainak frissítése
A meglévő készlethez 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 csomagverzió):
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "2.0"
Ezután kérje le a készletet a Batchből, törölje a meglévő csomagokat, adja hozzá az új csomaghivatkozást, és frissítse a Batch szolgáltatást az új készletbeállításokkal:
$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"
$pool.ApplicationPackageReferences.Clear()
$pool.ApplicationPackageReferences.Add($appPackageReference)
Set-AzBatchPool -BatchContext $context -Pool $pool
A készlet tulajdonságainak frissítése megtörtént a Batch-szolgáltatásban. Ha azonban a készlet számítási csomópontjain szeretné üzembe helyezni az új alkalmazáscsomagot, újra kell indítania vagy alaphelyzetbe kell állítania az adott csomópontok rendszerképét. Az alábbi paranccsal újraindíthatja a készlet összes számítási csomópontját:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Tipp
A készlet számítási csomópontjain több alkalmazáscsomagot is üzembe helyezhet. Ha a jelenleg telepített csomagok cseréje helyett inkább hozzáadna egy alkalmazáscsomagot, hagyja ki a felső $pool.ApplicationPackageReferences.Clear() sort.
Következő lépések
- Tekintse át a Azure Batch parancsmagok részletes szintaxisát és példáit.
- Megtudhatja, hogyan helyezhet üzembe alkalmazásokat számítási csomópontokon Batch-alkalmazáscsomagokkal.