Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Batch PowerShell cmdlet'leri ile birçok yaygın Batch görevini gerçekleştirebilir ve betik oluşturabilirsiniz. Bu, Batch hesaplarınızı yönetmek ve havuzlar, işler ve görevler gibi Batch kaynaklarınızla çalışmak için kullanabileceğiniz cmdlet'lere hızlı bir giriştir.
Batch cmdlet'lerinin tam listesi ve ayrıntılı cmdlet sözdizimi için lütfen Azure Batch cmdlet referansına bakın.
Hizmet güncelleştirmelerinden ve geliştirmelerinden yararlanmak için Azure PowerShell modüllerinizi sık sık güncelleştirmenizi öneririz.
Önkoş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 bkz. PowerShell Galerisi.
Aboneliğinize bağlanmak için Connect-AzAccount cmdlet'ini çalıştırın (Azure Batch cmdlet'leri Azure Resource Manager modülünde gönderilir):
Connect-AzAccountBatch sağlayıcısı ad alanına kaydolun. Bu işlemi abonelik başına yalnızca bir kez gerçekleştirmeniz gerekir.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Batch hesaplarını ve anahtarlarını yönetme
Batch hesabı oluştur.
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. Konum parametresinde "Orta ABD" gibi Azure bölgelerinden birini belirtin. Örneğin:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Ardından kaynak grubunda bir Batch hesabı oluşturun. < hesap > için bir ad ve kaynak grubunuzun konumunu ve adını belirtin. Batch hesabının oluşturulması biraz zaman alabilir. Örneğin:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Uyarı
Batch hesabı adı, kaynak grubu için Azure bölgesine özel olmalı, 3 ile 24 karakter arasında olmalı ve yalnızca küçük harf ve sayı kullanmalıdır.
Hesap erişim anahtarlarını alma
Get-AzBatchAccountKeys , bir Azure Batch hesabıyla ilişkili erişim anahtarlarını gösterir. Örneğin, oluşturduğunuz hesabın birincil ve ikincil anahtarlarını almak için aşağıdakileri ç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ız için yeni bir birincil anahtar oluşturmak için şunu yazın:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Uyarı
Yeni bir ikincil anahtar oluşturmak için KeyType parametresi için "İkincil" değerini belirtin. Birincil ve ikincil anahtarları ayrı ayrı yeniden oluşturmanız gerekir.
Batch hesabını silme
Remove-AzBatchAccount bir Batch hesabını siler. Örneğin:
Remove-AzBatchAccount -AccountName <account_name>
İstendiğinde hesabı kaldırmak istediğinizi onaylayın. Hesabı 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ı yapmak için önce hesap kimlik bilgilerinizi veya kimliğinizi depolamak için bir BatchAccountContext nesnesi oluşturun. BatchAccountContext nesnesini BatchContext parametresini kullanan cmdlet'lere geçirirsiniz.
Paylaşılan anahtar kimlik doğrulaması
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Uyarı
Varsayılan olarak, hesabın birincil anahtarı kimlik doğrulaması için kullanılır, ancak BatchAccountContext nesnenizin KeyInUse özelliğini değiştirerek kullanılacak anahtarı açıkça seçebilirsiniz: $context.KeyInUse = "Secondary".
Microsoft Entra kimlik doğrulama
$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. Mevcut kaynakların özelliklerini güncelleştirmek için karşılık gelen Get- ve Set- cmdlet'leri ve Batch hesabı altındaki kaynakları kaldırmak için Remove- cmdlet'leri vardır.
Bu cmdlet'lerin birçoğu kullanılırken, BatchContext nesnesini geçirmenin yanı sıra, aşağıdaki örnekte gösterildiği gibi ayrıntılı kaynak ayarları içeren nesneler oluşturmanız veya geçirmeniz gerekir. Ek örnekler için her cmdlet için ayrıntılı yardım bölümüne bakın.
Batch havuzu oluşturun
Batch havuzu oluştururken veya güncelleştirirken bir yapılandırma belirtirsiniz. Havuzlar genellikle Azure Sanal Makineler Marketi'nde 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ığı, Ubuntu Server 20.04-LTS ile görüntülenmiş sanal makine yapılandırmasında Standard_A1 boyutunda işlem düğümlerine sahip bir Batch havuzu oluşturur. Burada VirtualMachineConfiguration parametresi $configuration değişkenini PSVirtualMachineConfiguration nesnesi olarak belirtir. BatchContext parametresi, BatchAccountContext nesnesi olarak önceden tanımlanmış bir değişken $context 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 formül, havuzdaki işlem düğümlerinin sayısının en fazla 4 olduğunu gösteren $TargetDedicated=4'tür.
Havuzları, işleri, görevleri ve diğer ayrıntıları sorgula
Batch hesabı altında oluşturulan varlıkları sorgulamak için Get-AzBatchPool, Get-AzBatchJob ve Get-AzBatchTask gibi cmdlet'leri kullanın.
Veri sorgulama işlemi
Örnek olarak, havuzlarınızı bulmak için Get-AzBatchPools kullanın. BatchAccountContext nesnesini zaten $context depoladığınız varsayıldığında, bu sorgu varsayılan olarak hesabınızın altındaki tüm havuzlar için sorgular:
Get-AzBatchPool -BatchContext $context
OData filtresi kullanma
Yalnızca ilgilendiğiniz nesneleri bulmak için Filter parametresini kullanarak 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 işlem hattında "Where-Object" kullanmak kadar esnek değildir. Ancak sorgu doğrudan Batch servisine gönderilir, böylece tüm filtrelemeler sunucu tarafında gerçekleşir ve İnternet bant genişliği tasarruf edilir.
Id parametresini kullanma
OData filtresinin alternatifi , Id parametresini kullanmaktır. "myPool" kimliğine sahip belirli bir havuzu sorgulamak için:
Get-AzBatchPool -Id "myPool" -BatchContext $context
Id parametresi yalnızca tam kimlik aramasını destekler; joker karakterler veya OData stili filtreler değildir.
MaxCount parametresini kullanma
Varsayılan olarak, her cmdlet en fazla 1000 nesne döndürür. Bu sınıra ulaşırsanız, daha az nesne geri getirmek için filtrenizi daraltın veya MaxCount parametresini kullanarak açıkça bir maksimum değer ayarlayın. Örneğin:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
Üst sınırı kaldırmak için MaxCount değerini 0 veya daha az olarak 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. Bu, parametre belirtmeyle aynı etkiye sahiptir, ancak birden çok varlıkla çalışmayı kolaylaştırır.
Örneğin, hesabınızın altındaki tüm görevleri bulun ve görüntüleyin:
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Havuzdaki her işlem düğümünü yeniden başlatı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'leri ile Batch hesabınızda uygulama paketlerini karşıya yükleyip 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.
Uygulama oluşturma:
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Uygulama paketi ekleme:
New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip
Uygulama için varsayılan sürümü 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"
Uygulamayı silme
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Uyarı
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 'Çakışma' hatası alırsınız.
Uygulama paketi dağıtma
Havuz oluştururken dağıtım için bir veya daha fazla uygulama paketi belirtebilirsiniz. Havuz oluşturma zamanında bir paket belirttiğinizde, düğüm havuza katıldığında her düğüme dağıtılır. Bir düğüm yeniden başlatıldığında veya yeniden görüntülendiğinde paketler de dağıtılır.
Bir havuz oluştururken, uygulama paketini havuzun düğümlerine dağıtmak için -ApplicationPackageReference seçeneğini, düğümler havuza katıldıkça 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 ApplicationPackageReferences seçeneği için bağımsız değişken olarak paket referans nesnesini belirtin.
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtma bölümünde uygulama paketleri hakkında daha fazla bilgi bulabilirsiniz.
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
Şimdi Batch hizmetinde havuzun özelliklerini güncelleştirdiniz. Ancak yeni uygulama paketini havuzdaki işlem düğümlerine dağıtmak için bu düğümleri yeniden başlatmanız veya yeniden oluşturmanız gerekir. Havuzdaki her düğümü şu komutla yeniden başlatabilirsiniz:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Tavsiye
Bir havuzdaki işlem düğümlerine birden çok uygulama paketi 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
- Azure Batch cmdlet başvurunu gözden geçirerek ayrıntılı cmdlet söz dizimi ve örneklerine ulaşın.
- Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtmayı öğrenin.