Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí rutin Azure Batch PowerShellu můžete provádět a skriptovat mnoho běžných úloh Batch. Toto je rychlý úvod k rutinám, které můžete použít ke správě účtů Batch a práci s prostředky služby Batch, jako jsou fondy, úlohy a úkoly.
Úplný seznam rutin Batch a podrobnou syntaxi rutin najdete v referenčních informacích k rutinám služby Azure Batch.
Doporučujeme, abyste moduly Azure PowerShellu aktualizovali často, abyste mohli využívat aktualizace a vylepšení služeb.
Požadavky
Nainstalujte a nakonfigurujte modul Azure PowerShellu. Pokud chcete nainstalovat konkrétní modul Azure Batch, například modul ve verzi před vydáním, podívejte se do PowerShell Gallery.
Spuštěním rutiny Connect-AzAccount se připojte k vašemu předplatnému (rutiny Azure Batch se dodávají v modulu Azure Resource Manager):
Connect-AzAccountZaregistrujte se ve jmenném prostoru poskytovatele Batch. Tuto operaci musíte provést jenom jednou pro každé předplatné.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Správa účtů a klíčů Služby Batch
Vytvoření účtu služby Batch
New-AzBatchAccount vytvoří účet Batch v zadané skupině prostředků. Pokud zatím nemáte skupinu prostředků, vytvořte ji spuštěním rutiny New-AzResourceGroup. V parametru Location zadejte jednu z oblastí Azure, například USA – střed. Například:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Potom ve skupině prostředků vytvořte účet Batch. Zadejte název pro účet v <account_name> a uveďte umístění a název vaší skupiny prostředků. Dokončení vytváření účtu Batch může nějakou dobu trvat. Například:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Poznámka:
Název účtu Batch musí být jedinečný pro oblast Azure pro skupinu prostředků, musí obsahovat 3 až 24 znaků a používat jenom malá písmena a číslice.
Získání přístupových klíčů k účtu
Get-AzBatchAccountKeys zobrazuje přístupové klíče přidružené k účtu Azure Batch. Například spuštěním následujícího příkazu získejte primární a sekundární klíče účtu, který jste vytvořili.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Vygenerování nového přístupového klíče
New-AzBatchAccountKey vygeneruje nový primární nebo sekundární klíč účtu pro účet Azure Batch. Pokud například chcete pro účet Batch vygenerovat nový primární klíč, zadejte:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Poznámka:
Chcete-li vygenerovat nový sekundární klíč, zadejte "Secondary" pro parametr KeyType . Primární a sekundární klíče musíte zvlášť vygenerovat.
Odstranění účtu Batch
Remove-AzBatchAccount odstraní účet Batch. Například:
Remove-AzBatchAccount -AccountName <account_name>
Po zobrazení výzvy potvrďte, že chcete účet odebrat. Dokončení odebrání účtu může chvíli trvat.
Vytvoření objektu BatchAccountContext
Ke správě prostředků služby Batch můžete použít ověřování pomocí sdíleného klíče nebo ověřování Microsoft Entra. Pokud chcete autentizovat pomocí rutin PowerShellu služby Batch, nejprve vytvořte objekt BatchAccountContext pro uložení přihlašovacích údajů nebo identity vašeho účtu. Objekt BatchAccountContext předáte rutinám, které používají parametr BatchContext .
Ověřování pomocí sdíleného klíče
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Poznámka:
Ve výchozím nastavení se primární klíč účtu používá k ověřování, ale klíč, který chcete použít, můžete explicitně vybrat změnou vlastnosti KeyInUse objektu BatchAccountContext: $context.KeyInUse = "Secondary".
Ověřování Microsoft Entra
$context = Get-AzBatchAccount -AccountName <account_name>
Vytváření a úprava prostředků Batch
Pomocí rutin, jako jsou New-AzBatchPool, New-AzBatchJob a New-AzBatchTask , můžete vytvářet prostředky v rámci účtu Batch. K dispozici jsou odpovídající rutiny Get- a Set- pro aktualizaci vlastností existujících prostředků a rutin Remove- pro odebrání prostředků v rámci účtu Batch.
Při použití mnoha z těchto rutin je kromě předání objektu BatchContext potřeba vytvořit nebo předat objekty, které obsahují podrobné nastavení prostředků, jak je znázorněno v následujícím příkladu. Další příklady najdete v podrobné nápovědě pro každý cmdlet.
Vytvoření fondu Batch
Při vytváření nebo aktualizaci fondu Batch zadáte konfiguraci. Pooly by se měly obecně konfigurovat pomocí konfigurace virtuálního počítače, což vám umožní zadat jednu z podporovaných image virtuálních počítačů s Linuxem nebo Windows uvedených na Marketplace virtuálních počítačů Azure, nebo poskytnout vlastní image, kterou jste si připravili. Fondy konfigurace cloudových služeb poskytují pouze výpočetní uzly Windows a nepodporují všechny funkce služby Batch.
Když spustíte New-AzBatchPool, předejte nastavení operačního systému v PSVirtualMachineConfiguration nebo PSCloudServiceConfiguration objektu. Například následující ukázka kódu vytvoří fond služby Batch s uzly výpočetní velikosti Standard_A1 v konfiguraci virtuálního počítače s obrazem Ubuntu Server 20.04-LTS. Parametr VirtualMachineConfiguration zde určuje proměnnou $configuration jako objekt PSVirtualMachineConfiguration. Parametr BatchContext určuje dříve definovanou proměnnou $context jako objekt BatchAccountContext.
$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
Cílový počet výpočetních uzlů v novém fondu se vypočítá vzorcem automatického škálování. V tomto případě je vzorec jednoduše $TargetDedicated=4, což znamená, že počet výpočetních uzlů ve fondu je maximálně 4.
Dotaz na bazény, úlohy a další podrobnosti
K dotazování na entity vytvořené v rámci účtu Batch použijte rutiny, jako je Get-AzBatchPool, Get-AzBatchJob a Get-AzBatchTask .
Dotaz na data
Například k vyhledání svých fondů použijte Get-AzBatchPools . Ve výchozím nastavení se dotazuje na všechny fondy ve vašem účtu za předpokladu, že jste již uložili objekt BatchAccountContext v $context:
Get-AzBatchPool -BatchContext $context
Použití filtru OData
Filtr OData můžete zadat pomocí parametru Filter a najít pouze objekty, které vás zajímají. Můžete například najít všechny bazény s ID začínajícím na "myPool":
$filter = "startswith(id,'myPool')"
Get-AzBatchPool -Filter $filter -BatchContext $context
Tato metoda není tak flexibilní jako použití Where-Object v místní rouře. Dotaz se ale odešle přímo do služby Batch, aby se veškeré filtrování stalo na straně serveru, což šetří šířku pásma internetu.
Použití parametru ID
Alternativou k filtru OData je použití parametru ID . Pro dotazování na konkrétní fond s ID "myPool":
Get-AzBatchPool -Id "myPool" -BatchContext $context
Parametr ID podporuje pouze vyhledávání s úplným ID; ne zástupné čáry ani filtry ve stylu OData.
Použití parametru MaxCount
Ve výchozím nastavení vrátí každá rutina maximálně 1 000 objektů. Pokud dosáhnete tohoto limitu, buď upřesněte filtr tak, aby vrátil méně objektů, nebo explicitně nastavte maximum pomocí parametru MaxCount . Například:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
Pokud chcete horní mez odebrat, nastavte MaxCount na hodnotu 0 nebo méně.
Použití potrubí PowerShellu
Rutiny Batch používají kanál PowerShellu k odesílání dat mezi rutinami. To má stejný účinek jako zadání parametru, ale usnadňuje práci s více entitami.
Můžete například najít a zobrazit všechny úkoly v rámci vašeho účtu:
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Restartujte (restartujte) každý výpočetní uzel v poolu:
Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Správa balíčků aplikací
Balíčky aplikací poskytují zjednodušený způsob nasazení aplikací do výpočetních uzlů ve fondech. Pomocí rutin prostředí PowerShell Batch můžete nahrávat a spravovat balíčky aplikací ve vašem účtu Batch a nasazovat verze balíčků na výpočetní uzly.
Důležité
Pokud chcete používat balíčky aplikací, musíte s účtem Batch propojit účet Azure Storage.
Vytvoření aplikace:
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Přidání balíčku aplikace:
New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip
Nastavte výchozí verzi aplikace:
Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"
Výpis balíčků aplikace
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Odstranění balíčku aplikace
Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"
Odstranění aplikace
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Poznámka:
Před odstraněním aplikace je nutné odstranit všechny verze balíčků aplikací aplikace. Pokud se pokusíte odstranit aplikaci, která aktuálně obsahuje balíčky aplikací, zobrazí se chyba Konflikt.
Nasazení balíčku aplikace
Při vytváření fondu můžete zadat jeden nebo více balíčků aplikací pro nasazení. Když při vytváření fondu zadáte balíček, nasadí se do každého uzlu, jakmile se uzel připojí k fondu. Balíčky se také nasazují při restartování nebo obnovení uzlu.
-ApplicationPackageReference Při vytváření fondu určete možnost nasazení balíčku aplikace do uzlů fondu při jejich připojení k fondu. Nejprve vytvořte objekt PSApplicationPackageReference a nakonfigurujte ho s ID aplikace a verzí balíčku, které chcete nasadit do výpočetních uzlů fondu:
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "1.0"
Teď vytvořte fond a určete odkaz na objekt balíčku jako argument pro volbu ApplicationPackageReferences.
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Další informace o balíčcích aplikací najdete v tématu Nasazení aplikací do výpočetních uzlů pomocí balíčků aplikací Batch.
Aktualizace fondových aplikačních balíčků
Pokud chcete aktualizovat aplikace přiřazené k existujícímu fondu, nejprve vytvořte objekt PSApplicationPackageReference s požadovanými vlastnostmi (ID aplikace a verze balíčku):
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "2.0"
Dále získejte fond ze služby Batch, vymažte všechny existující balíčky, přidejte nový odkaz na balíček a aktualizujte službu Batch pomocí nového nastavení fondu:
$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"
$pool.ApplicationPackageReferences.Clear()
$pool.ApplicationPackageReferences.Add($appPackageReference)
Set-AzBatchPool -BatchContext $context -Pool $pool
Nyní jste aktualizovali vlastnosti fondu ve službě Batch. Chcete-li skutečně nasadit nový balíček aplikace do výpočetních uzlů ve fondu, je však nutné tyto uzly restartovat nebo přeinstalovat. Pomocí tohoto příkazu můžete restartovat každý uzel ve fondu:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Návod
Do výpočetních uzlů ve fondu můžete nasadit několik balíčků aplikací. Pokud chcete přidat balíček aplikace místo nahrazení aktuálně nasazených balíčků, vynecháte $pool.ApplicationPackageReferences.Clear() řádek výše.
Další kroky
- Prozkoumejte referenční příručku ke cmdletům Azure Batch pro podrobnou syntaxi a příklady cmdletů.
- Naučte se nasazovat aplikace do výpočetních uzlů pomocí balíčků aplikací Batch.