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.
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.
For a complete list of Batch cmdlets and detailed cmdlet syntax, see the Azure Batch cmdlet reference.
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
Install and configure the Azure PowerShell module. 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-AzAccountRegisztráljon a Batch szolgáltatónév-térrel. You only need to perform this operation once per subscription.
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. Specify one of the Azure regions in the Location parameter, such as "Central US". 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. Creating the Batch account can take some time to complete. 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.
Get account access keys
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
Generate a new access key
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.
Delete a Batch account
A Remove-AzBatchAccount törli a Batch fiókot. Például:
Remove-AzBatchAccount -AccountName <account_name>
When prompted, confirm you want to remove the account. 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. There are corresponding Get- and Set- cmdlets to update the properties of existing resources, and Remove- cmdlets to remove resources under a Batch account.
When using many of these cmdlets, in addition to passing a BatchContext object, you need to create or pass objects that contain detailed resource settings, as shown in the following example. See the detailed help for each cmdlet for additional examples.
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. However, the query gets sent to the Batch service directly so that all filtering happens on the server side, saving Internet bandwidth.
Használja az Id paramétert
An alternative to an OData filter is to use the Id parameter. Egy adott "myPool" azonosítójú pool lekérdezéséhez:
Get-AzBatchPool -Id "myPool" -BatchContext $context
The Id parameter supports only full-ID search; not wildcards or OData-style filters.
Használja a MaxCount paramétert.
Alapértelmezés szerint minden cmdlet legfeljebb 1000 objektumot ad vissza. If you reach this limit, either refine your filter to bring back fewer objects, or explicitly set a maximum using the MaxCount parameter. 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.
Use the PowerShell pipeline
Batch cmdlets use the PowerShell pipeline to send data between cmdlets. 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
Restart (reboot) every compute node in a pool:
Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Application package management
Az alkalmazáscsomagok egyszerűsítik az alkalmazások telepítését a számítási csomópontokra a medencéiben. With the Batch PowerShell cmdlets, you can upload and manage application packages in your Batch account, and deploy package versions to compute nodes.
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"
List an application's packages
$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"
Delete an application
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. Hibát kap, ha megpróbál törölni egy alkalmazást, amelynek jelenleg alkalmazáscsomagjai vannak.
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.
Update a pool's application packages
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
You've now updated the pool's properties in the Batch service. To actually deploy the new application package to compute nodes in the pool, however, you must restart or reimage those nodes. Ezzel a paranccsal újraindíthat minden csomópontot egy medencében.
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Jótanács
You can deploy multiple application packages to the compute nodes in a pool. If you'd like to add an application package instead of replacing the currently deployed packages, omit the $pool.ApplicationPackageReferences.Clear() line above.
Következő lépések
- Review the Azure Batch cmdlet reference for detailed cmdlet syntax and examples.
- Ismerje meg, hogyan telepíthet alkalmazásokat számítási csomópontokra Batch alkalmazáscsomagok segítségével.