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.
Met de Azure Batch PowerShell-cmdlets kunt u veel algemene Batch-taken uitvoeren en scripten. Dit is een korte inleiding tot de cmdlets die u kunt gebruiken om uw Batch-accounts te beheren en om te werken met uw Batch-resources, zoals pools, jobs en taken.
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
Installeer en configureer de 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-AzAccountRegistreer bij de Batch provider namespace. U hoeft deze bewerking slechts één keer per abonnement uit te voeren.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Batch-accounts en -sleutels beheren
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. Geef een van de Azure regio's op in de parameter Locatie, zoals VS - centraal. Voorbeeld:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Maak vervolgens een Batch-account in de resourcegroep. Geef een naam op voor het account in <account_name>, en de locatie en naam van uw resourcegroep. Het maken van het Batch-account kan enige tijd in beslag nemen. 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 toont de toegangssleutels die zijn gekoppeld aan een 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
Een nieuwe toegangssleutel genereren
New-AzBatchAccountKey genereert een nieuwe primaire of secundaire accountsleutel voor een 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.
Een Batch-account verwijderen
Met Remove-AzBatchAccount wordt een Batch-account verwijderd. Voorbeeld:
Remove-AzBatchAccount -AccountName <account_name>
Bevestig dat u het account wilt verwijderen wanneer u hierom wordt gevraagd. 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. U geeft het BatchAccountContext-object door aan cmdlets die de parameter BatchContext gebruiken.
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>
Batch-resources maken en wijzigen
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
Wanneer u een Batch-pool maakt of bijwerkt, geeft u een configuratie op. 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 Virtuele 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.
Een toepassing maken :
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Een toepassingspakket toevoegen:
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"
De pakketten van een toepassing weergeven
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Een toepassingspakket verwijderen
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. U krijgt de foutmelding Conflict als u probeert een toepassing te verwijderen die momenteel toepassingspakketten bevat.
Een toepassingspakket implementeren
U kunt een of meer toepassingspakketten opgeven voor implementatie wanneer u een groep maakt. 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. Maak eerst een PSApplicationPackageReference-object en configureer het met de toepassings-id en pakketversie die u wilt implementeren op de rekenknooppunten van de pool:
$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.
De toepassingspakketten van een groep bijwerken
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
U hebt nu de eigenschappen van de pool in de Batch-service bijgewerkt. Als u het nieuwe toepassingspakket daadwerkelijk wilt implementeren op rekenknooppunten in de pool, moet u deze knooppunten echter opnieuw opstarten of er een installatiekopie van maken. 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.
- Meer informatie over het implementeren van toepassingen op rekenknooppunten met Batch-toepassingspakketten.