Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
With the Azure Batch PowerShell cmdlets, you can perform and script many common Batch tasks. This is a quick introduction to the cmdlets you can use to manage your Batch accounts and work with your Batch resources such as pools, jobs, and tasks.
Voor een volledige lijst van Batch-cmdlets en gedetailleerde cmdlet-syntaxis, zie de Azure Batch-cmdletreferentie.
Wij raden aan dat u uw Azure PowerShell-modules regelmatig bijwerkt om te profiteren van service-updates en verbeteringen.
Vereiste voorwaarden
Install and configure the Azure PowerShell module. Om een specifiek Azure Batch-module, zoals een prerelease-module, te installeren, zie de PowerShell Gallery.
Voer de Connect-AzAccount cmdlet uit om verbinding te maken met uw abonnement (de Azure Batch cmdlets zijn opgenomen in de Azure Resource Manager-module):
Connect-AzAccount
Registreer bij de Batch provider namespace. You only need to perform this operation once per subscription.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Manage Batch accounts and keys
Een Batch-account maken
New-AzBatchAccount maakt een Batch-account aan in een opgegeven resourcegroep. Als je nog geen resourcegroep hebt, maak er dan een aan door de New-AzResourceGroup cmdlet uit te voeren. Specify one of the Azure regions in the Location parameter, such as "Central US". Voorbeeld:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Then, create a Batch account in the resource group. Geef een naam op voor het account in <account_name>, en de locatie en naam van uw resourcegroep. Creating the Batch account can take some time to complete. Voorbeeld:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Opmerking
De Batch-accountnaam moet uniek zijn binnen de Azure-regio voor de resourcegroep, tussen de 3 en 24 tekens bevatten, en alleen kleine letters en cijfers gebruiken.
Toegangsgegevens voor account ophalen
Get-AzBatchAccountKeys shows the access keys associated with an Azure Batch account. Bijvoorbeeld, voer het volgende uit om de primaire en secundaire sleutels te krijgen van de account die je hebt aangemaakt.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Generate a new access key
New-AzBatchAccountKey generates a new primary or secondary account key for an Azure Batch account. Bijvoorbeeld: om een nieuwe primaire sleutel voor uw Batch-account te genereren, typt u:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Opmerking
Om een nieuwe secundaire sleutel te genereren, specificeer "Secondary" voor de KeyType-parameter. U moet de primaire en secundaire sleutels afzonderlijk opnieuw genereren.
Delete a Batch account
Remove-AzBatchAccount deletes a Batch account. Voorbeeld:
Remove-AzBatchAccount -AccountName <account_name>
When prompted, confirm you want to remove the account. Het verwijderen van een account kan enige tijd duren om te voltooien.
Maak een BatchAccountContext-object
Je kunt je authenticeren om Batch-resources te beheren met behulp van ofwel gedeelde sleutelauthenticatie of Microsoft Entra-authenticatie. Om te authenticeren met behulp van de Batch PowerShell-cmdlets, maak eerst een BatchAccountContext-object aan om uw accountgegevens of identiteit op te slaan. You pass the BatchAccountContext object into cmdlets that use the BatchContext parameter.
Authenticatie met gedeelde sleutel
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Opmerking
Standaard wordt de primaire sleutel van het account gebruikt voor authenticatie, maar je kunt expliciet de sleutel selecteren die je wilt gebruiken door de KeyInUse-eigenschap van je BatchAccountContext-object te wijzigen: $context.KeyInUse = "Secondary"
.
Microsoft Entra-authenticatie
$context = Get-AzBatchAccount -AccountName <account_name>
Create and modify Batch resources
Gebruik cmdlets zoals New-AzBatchPool, New-AzBatchJob, en New-AzBatchTask om resources te maken onder een Batch-account. Er zijn bijbehorende Get- en Set- cmdlets om de eigenschappen van bestaande resources bij te werken, en Verwijder- cmdlets om bronnen te verwijderen binnen een Batch-account.
Bij het gebruik van veel van deze cmdlets, moet u naast het doorgeven van een BatchContext-object, ook objecten maken of doorgeven die gedetailleerde hulpbronneninstellingen bevatten, zoals weergegeven in het volgende voorbeeld. Raadpleeg de gedetailleerde documentatie voor elke cmdlet voor aanvullende voorbeelden.
Creëer een Batch pool
When creating or updating a Batch pool, you specify a configuration. Pools moeten over het algemeen worden geconfigureerd met Virtual Machine Configuration, waarmee u ofwel een van de ondersteunde Linux- of Windows-VM-afbeeldingen kunt specificeren die worden vermeld in de Azure Virtual Machines Marketplace, of een aangepaste afbeelding kunt aanbieden die u hebt voorbereid. Pools voor Cloudservicesconfiguraties bieden alleen Windows-berekeningsknooppunten en ondersteunen niet alle Batch-functies.
Wanneer je New-AzBatchPool uitvoert, geef dan de instellingen van het besturingssysteem door in een PSVirtualMachineConfiguration- of PSCloudServiceConfiguration-object. In het volgende voorbeeld maakt een codefragment een Batch-pool met standaard A1 compute nodes in de configuratie van de virtuele machine, voorzien van een image van Ubuntu Server 20.04-LTS. Hier specificeert de parameter VirtualMachineConfiguration de variabele $configuration als het PSVirtualMachineConfiguration-object. De BatchContext parameter specificeert een eerder gedefinieerde variabele $context als het BatchAccountContext-object.
$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
Het streefaantal rekeneenheden in de nieuwe pool wordt berekend met behulp van een formule voor automatische schaalvergroting. In dit geval is de formule eenvoudigweg $TargetDedicated=4, wat aangeeft dat het aantal rekeneenheden in de pool maximaal 4 is.
Query voor pools, taken, opdrachten en andere details
Gebruik cmdlets zoals Get-AzBatchPool, Get-AzBatchJob, en Get-AzBatchTask om te zoeken naar entiteiten die zijn aangemaakt onder een Batch-account.
Gegevens opvragen
Gebruik bijvoorbeeld Get-AzBatchPools om uw pools te vinden. Standaard worden alle pools onder uw account opgevraagd, ervan uitgaande dat u het BatchAccountContext-object al hebt opgeslagen in $context:
Get-AzBatchPool -BatchContext $context
Gebruik een OData-filter
Je kunt een OData-filter gebruiken met de Filter-parameter om alleen de objecten te vinden waarin je geïnteresseerd bent. Bijvoorbeeld, u kunt alle pools vinden met ID's die beginnen met "myPool":
$filter = "startswith(id,'myPool')"
Get-AzBatchPool -Filter $filter -BatchContext $context
Deze methode is niet zo flexibel als het gebruik van "Where-Object" in een lokale pipeline. Echter, de query wordt direct naar de Batch-service gestuurd zodat alle filtering aan de serverzijde gebeurt, waardoor er internetbandbreedte wordt bespaard.
Gebruik de Id-parameter
Een alternatief voor een OData-filter is het gebruik van de Id-parameter. Om te zoeken naar een specifieke pool met id "myPool":
Get-AzBatchPool -Id "myPool" -BatchContext $context
De Id-parameter ondersteunt alleen volledige ID-zoekopdrachten; geen wildcards of OData-stijlfilters.
Gebruik de MaxCount-parameter
Standaard retourneert elke cmdlet maximaal 1000 objecten. Als u deze limiet bereikt, verfijn dan uw filter om minder objecten terug te halen, of geef expliciet een maximum op met behulp van de parameter MaxCount. Voorbeeld:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
Om de bovengrens te verwijderen, stel MaxCount in op 0 of minder.
Gebruik de PowerShell-pijplijn
Batch-cmdlets gebruiken de PowerShell-pijplijn om gegevens tussen cmdlets te verzenden. Dit heeft hetzelfde effect als het specificeren van een parameter, maar maakt het werken met meerdere entiteiten gemakkelijker.
Bijvoorbeeld, vind en toon alle taken onder uw account.
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Herstart (opnieuw opstarten) elke rekennode in een pool:
Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Beheer van applicatiepakketten
Applicatiepakketten bieden een vereenvoudigde manier om applicaties te implementeren naar de compute-knooppunten in uw pools. Met de Batch PowerShell-cmdlets kunt u applicatiepakketten uploaden en beheren in uw Batch-account en pakketversies implementeren op rekensystemen.
Belangrijk
U moet een Azure Storage-account aan uw Batch-account koppelen om gebruik te maken van applicatiepakketten.
Create an application:
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Add an application package:
New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip
Stel de standaardversie in voor de applicatie:
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
Delete an application package
Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"
Verwijder een applicatie
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Opmerking
Je moet alle versies van een applicatiepakket van een applicatie verwijderen voordat je de applicatie zelf verwijdert. You will receive a 'Conflict' error if you try to delete an application that currently has application packages.
Deploy an application package
You can specify one or more application packages for deployment when you create a pool. Wanneer u een pakket opgeeft bij het aanmaken van de pool, wordt het automatisch naar elk knooppunt uitgerold zodra het knooppunt zich bij de pool aansluit. Pakketten worden ook ingezet wanneer een knooppunt opnieuw wordt opgestart of opnieuw wordt geïmageerd.
Geef de -ApplicationPackageReference
optie op bij het aanmaken van een pool om een applicatiepakket te implementeren naar de nodes van de pool zodra ze zich bij de pool voegen. First, create a PSApplicationPackageReference object, and configure it with the application ID and package version you want to deploy to the pool's compute nodes:
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "1.0"
Maak nu de pool aan en geef het pakketreferentie-object op als het argument voor de ApplicationPackageReferences
-optie.
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
U kunt meer informatie over applicatiepakketten vinden in Toepassingen implementeren op computeknooppunten met Batch-applicatiepakketten.
Update a pool's application packages
nl-NL: Om de toepassingen die aan een bestaande groep zijn toegewezen bij te werken, maak eerst een PSApplicationPackageReference-object met de gewenste eigenschappen aan (toepassings-ID en pakketversie).
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "2.0"
Vervolgens haalt u de pool uit Batch, verwijdert u alle bestaande pakketten, voegt u de nieuwe pakketreferentie toe, en werkt u de Batch-service bij met de nieuwe poolinstellingen.
$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. Je kunt iedere node in een pool opnieuw starten met dit commando:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Hint
U kunt meerdere toepassingspakketten inzetten op de berekeningsknooppunten in een pool. Als u een applicatiepakket wilt toevoegen in plaats van de momenteel geïmplementeerde pakketten te vervangen, laat dan de $pool.ApplicationPackageReferences.Clear()
regel hierboven weg.
Volgende stappen
- Bekijk de Azure Batch cmdlet-referentie voor gedetailleerde cmdlet-syntaxis en voorbeelden.
- Learn how to deploy applications to compute nodes with Batch application packages.