Batch kaynaklarını PowerShell cmdlet'leriyle yönetme

Azure Batch PowerShell cmdlet'leri ile birçok yaygın Batch görevini gerçekleştirebilir ve betik oluşturabilirsiniz. Bu bilgiler, Batch hesabınızı yönetmek, havuzlar, işler ve görevler gibi Batch kaynaklarınızla da çalışmak için kullanabildiğiniz cmdlet’lere hızlı bir giriş yapmanızı sağlar.

Tam Batch cmdlet’leri listesi ve ayrıntılı cmdlet sözdizimi için bkz. Azure Batch cmdlet başvurusu.

Hizmet güncelleştirmeleri ve geliştirmeleri avantajlarından yararlanmak için Azure PowerShell modüllerinizi sık sık güncelleştirin.

Ön koşullar

  • Azure PowerShell modülünü yükleyin ve yapılandırın. Yayın öncesi modül gibi belirli bir Azure Batch modülünü yüklemek için PowerShell Galerisi'ne bakın.

  • Aboneliğinize bağlanmak için Bağlan-AzAccount cmdlet'ini çalıştırın (Azure Batch cmdlet'leri Azure Resource Manager modülünde gönderilir):

    Connect-AzAccount
    
  • Batch sağlayıcı ad alanı ile kaydolun. Bu işlemin her abonelik için yalnızca bir kez gerçekleştirilmesi gerekir.

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

Batch hesaplarını ve anahtarlarını yönetme

Batch hesabı oluşturma

New-AzBatchAccount , belirtilen kaynak grubunda bir Batch hesabı oluşturur. Henüz bir kaynak grubunuz yoksa, New-AzResourceGroup cmdlet'ini çalıştırarak bir tane oluşturun. Location parametresinde, "Orta ABD" gibi Azure bölgelerinden birini belirtin. Örnek:

New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"

Ardından kaynak grubunda bir Batch hesabı oluşturun. account_name> hesap <için bir ad ve kaynak grubunuzun konumunu ve adını belirtin. Batch hesabının oluşturulması biraz zaman alabilir. Örnek olarak:

New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>

Dekont

Batch hesabı adı, kaynak grubunun Azure bölgesinde benzersiz olmalıdır; 3 - 24 arası karakter olmalı, yalnızca küçük harf ve rakam içermelidir.

Hesap erişim anahtarı alma

Get-AzBatchAccountKeys , bir Azure Batch hesabıyla ilişkili erişim anahtarlarını gösterir. Örneğin, oluşturduğunuz birincil ve ikincil anahtarları almak için aşağıdakini çalıştırın.

$Account = Get-AzBatchAccountKeys –AccountName <account_name>

$Account.PrimaryAccountKey

$Account.SecondaryAccountKey

Yeni erişim anahtarı oluşturma

New-AzBatchAccountKey , bir Azure Batch hesabı için yeni bir birincil veya ikincil hesap anahtarı oluşturur. Örneğin, Batch hesabınıza yeni bir birincil anahtar oluşturmak için şunu yazın:

New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary

Dekont

Yeni bir ikincil anahtar oluştururken KeyType parametresi için "Secondary" seçeneğini belirtin. Birincil ve ikincil anahtarları ayrı olarak yeniden oluşturmalısınız.

Batch hesabını silme

Remove-AzBatchAccount bir Batch hesabını siler. Örnek:

Remove-AzBatchAccount -AccountName <account_name>

İstendiğinde, hesabı kaldırmak istediğinizi onaylayın. Hesap kaldırma işleminin tamamlanması biraz zaman alabilir.

BatchAccountContext nesnesi oluşturma

Paylaşılan anahtar kimlik doğrulamasını veya Microsoft Entra kimlik doğrulamasını kullanarak Batch kaynaklarını yönetmek için kimlik doğrulaması yapabilirsiniz. Batch PowerShell cmdlet'lerini kullanarak kimlik doğrulaması gerçekleştirmek için öncelikle hesabınızın kimlik bilgilerini veya kimliğini depolamak üzere bir BatchAccountContext oluşturun. BatchAccountContext nesnesini BatchContext parametresini kullanan cmdlet’lere geçirirsiniz.

Paylaşılan anahtar kimlik doğrulaması

$context = Get-AzBatchAccountKeys -AccountName <account_name>

Dekont

Varsayılan olarak, hesabın birincil anahtarı kimlik doğrulaması amacıyla kullanılsa da, BatchAccountContext nesnenizin KeyInUse özelliğini değiştirerek kullanılacak anahtarı açıkça seçebilirsiniz: $context.KeyInUse = "Secondary".

Microsoft Entra doğrulaması

$context = Get-AzBatchAccount -AccountName <account_name>

Batch kaynaklarını oluşturma ve değiştirme

Batch hesabı altında kaynak oluşturmak için New-AzBatchPool, New-AzBatchJob ve New-AzBatchTask gibi cmdlet'leri kullanın. Batch hesabı altında var olan kaynakların özelliklerini güncelleştirmek için Get- ve Set- cmdlet’leri, kaldırmak için de Remove- cmdlet’leri vardır.

Bu cmdlet’lerinin birçoğunu kullanırken bir BatchContext nesnesi geçirmeye ek olarak aşağıdaki örnekte gösterildiği gibi ayrıntılı kaynak ayarlarını içeren nesneleri oluşturmanız ya da geçirmeniz gerekir. Diğer örnekler için her bir cmdlet’e ilişkin ayrıntılı yardıma bakın.

Batch havuzu oluşturma

Batch havuzu oluştururken veya güncelleştirirken bir yapılandırma belirtirsiniz. Havuzlar genellikle Azure Sanal Makineler Market'te listelenen desteklenen Linux veya Windows VM görüntülerinden birini belirtmenize veya hazırladığınız özel bir görüntü sağlamanıza olanak tanıyan Sanal Makine Yapılandırması ile yapılandırılmalıdır. Cloud Services Yapılandırma havuzları yalnızca Windows işlem düğümleri sağlar ve tüm Batch özelliklerini desteklemez.

New-AzBatchPool'u çalıştırdığınızda, işletim sistemi ayarlarını bir PSVirtualMachineConfiguration veya PSCloudServiceConfiguration nesnesine geçirin. Örneğin aşağıdaki kod parçacığı, sanal makine yapılandırmasında Ubuntu Server 20.04-LTS ile görüntülenmiş Standard_A1 işlem düğümleri boyutuna sahip bir Batch havuzu oluşturur. Burada VirtualMachineConfiguration parametresi $configuration değişkenini PSVirtualMachineConfiguration nesnesi olarak belirtir. BatchContext parametresi önceden tanımlanmış $context değişkenini BatchAccountContext nesnesi olarak belirtir.

$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

Yeni havuzdaki işlem düğümlerinin hedef sayısı otomatik ölçeklendirme formülüyle hesaplanır. Bu durumda, havuzdaki işlem düğümü sayısının en çok 4 olduğunu belirten basit bir $TargetDedicated=4 formülüdür.

Havuzlar, işler, görevler ve diğer ayrıntılar için sorgulama

Batch hesabı altında oluşturulan varlıkları sorgulamak için Get-AzBatchPool, Get-AzBatchJob ve Get-AzBatchTask gibi cmdlet'leri kullanın.

Verileri sorgulama

Örnek olarak, havuzlarınızı bulmak için Get-AzBatchPools kullanın. Varsayılan olarak, hesabınız altındaki tüm havuzlarla ilgili bu sorgular zaten $context değişkenindeki BatchAccountContext nesnesinde depolanır:

Get-AzBatchPool -BatchContext $context

OData filtresini kullanma

Yalnızca ilgilendiğiniz nesneleri bulmak için Filtre parametresini kullanan bir OData filtresi sağlayabilirsiniz. Örneğin, "myPool" ile başlayan kimliklere sahip tüm havuzları bulabilirsiniz:

$filter = "startswith(id,'myPool')"

Get-AzBatchPool -Filter $filter -BatchContext $context

Bu yöntem, yerel bir işlem hattında "Where-Object" kullanmak kadar esnek değildir. Ancak, sorgu Batch hizmetine doğrudan gönderilir; böylece, İnternet bant genişliği korunarak filtre işleminin tümü sunucu tarafında gerçekleşir.

Kimlik parametresini kullanma

OData filtresinin bir alternatifi de Kimlik parametresi kullanmaktır. "myPool" Kimliğine sahip belirli bir havuzu sorgulamak için:

Get-AzBatchPool -Id "myPool" -BatchContext $context

Id parametresi joker karakterleri veya OData stili filtreleri değil yalnızca tam kimlik aramasını destekler.

MaxCount parametresini kullanma

Varsayılan olarak, her cmdlet en çok 1000 nesne döndürür. Bu sınıra ulaştıysanız, daha az nesne döndürmek için filtreyi daraltın veya MaxCount parametresini kullanarak kesin bir üst sınır ayarlayın. Örnek:

Get-AzBatchTask -MaxCount 2500 -BatchContext $context

Üst sınırı kaldırmak için MaxCount’u 0 veya daha az bir değere ayarlayın.

PowerShell işlem hattını kullanma

Batch cmdlet'leri, cmdlet'ler arasında veri göndermek için PowerShell işlem hattını kullanır. İşlem hattı, parametre belirtmekle aynı etkiye sahip olsa da birden çok varlıkla çalışmayı kolaylaştırır.

Örneğin, hesabınızın altındaki tüm görevleri bulup görüntüleyin:

Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context

Havuzdaki her işlem düğümünü yeniden başlatın:

Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

Uygulama paketi yönetimi

Uygulama paketleri , havuzlarınızdaki işlem düğümlerine uygulama dağıtmak için basitleştirilmiş bir yol sağlar. Batch PowerShell cmdlet'leriyle, Batch hesabınızdaki uygulama paketlerini yükleyebilir, yönetebilir ve paket sürümlerini işlem düğümlerine dağıtabilirsiniz.

Önemli

Uygulama paketlerini kullanmak için Batch hesabınıza bir Azure Depolama hesabı bağlamanız gerekir.

Bir uygulama oluşturun:

New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

Bir uygulama paketi ekleyin:

New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip

Uygulamanın varsayılan sürümünü ayarlayın:

Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"

Uygulamanın paketlerini listeleme

$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

$application.ApplicationPackages

Uygulama paketini silme

Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"

Bir uygulamayı silme

Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

Dekont

Uygulamayı silmeden önce, uygulamanın tüm uygulama paketi sürümlerini silmeniz gerekir. Şu anda uygulama paketleri olan bir uygulamayı silmeye çalışırsanız bir 'Çakışma' hatası alırsınız.

Uygulama paketi dağıtma

Bir havuz oluşturduğunuzda dağıtım için bir veya daha fazla uygulama paketi belirtebilirsiniz. Havuz oluşturma saatinde bir paket belirttiğinizde düğüm havuza katıldıkça her bir düğüme dağıtılır. Paketler ayrıca bir düğüm yeniden başlatıldığında veya yeniden görüntüsü oluşturulduğunda dağıtılır.

Bir uygulama paketini havuza katıldıklarında havuzun düğümlerine dağıtmak üzere havuz oluştururken -ApplicationPackageReference seçeneğini belirtin. İlk olarak bir PSApplicationPackageReference nesnesi oluşturun ve havuzun işlem düğümlerine dağıtmak istediğiniz uygulama kimliği ve paket sürümüyle yapılandırın:

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "1.0"

Şimdi havuzu oluşturun ve paket başvuru nesnesini, ApplicationPackageReferences seçeneğinin bağımsız değişkeni olarak belirtin:

New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference

Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı konusunda, uygulama paketlerine ilişkin daha fazla bilgi bulabilirsiniz.

Bir havuzun uygulama paketlerini güncelleştirme

Mevcut bir havuza atanan uygulamaları güncelleştirmek için önce istenen özelliklere (uygulama kimliği ve paket sürümü) sahip bir PSApplicationPackageReference nesnesi oluşturun:

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "2.0"

Ardından Batch'ten havuzu alın, mevcut paketleri temizleyin, yeni paket başvurusunu ekleyin ve Batch hizmetini yeni havuz ayarlarıyla güncelleştirin:

$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"

$pool.ApplicationPackageReferences.Clear()

$pool.ApplicationPackageReferences.Add($appPackageReference)

Set-AzBatchPool -BatchContext $context -Pool $pool

Batch hizmetinde havuzun özelliklerini güncelleştirmiş oldunuz. Bununla birlikte, yeni uygulama paketini havuzdaki işlem düğümlerine gerçekten dağıtmak için bu düğümleri yeniden başlatmanız ya da görüntülerini yeniden oluşturmanız gerekir. Bu komutla havuzdaki her düğümü yeniden başlatabilirsiniz:

Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

Bahşiş

Havuzdaki işlem düğümlerine birden fazla uygulama paketini dağıtabilirsiniz. Şu anda dağıtılan paketleri değiştirmek yerine bir uygulama paketi eklemek isterseniz yukarıdaki satırı atlayın $pool.ApplicationPackageReferences.Clear() .

Sonraki adımlar