Bagikan melalui


Mengelola sumber daya Batch dengan cmdlet PowerShell

Dengan cmdlet Azure Batch PowerShell, Anda dapat melakukan dan membuat skrip banyak tugas Batch umum. Ini adalah pengantar cepat untuk cmdlet yang dapat Anda gunakan untuk mengelola akun Batch Anda dan bekerja dengan sumber daya Batch Anda seperti kumpulan, pekerjaan, dan tugas.

Untuk daftar lengkap cmdlet Batch dan sintaks cmdlet terperinci, lihat referensi cmdlet Azure Batch.

Kami menyarankan agar Anda sering memperbarui modul Azure PowerShell untuk memanfaatkan pembaruan dan penyempurnaan layanan.

Prasyarat

  • Instal dan konfigurasikan modul Azure PowerShell. Untuk menginstal modul Azure Batch tertentu, seperti modul pra-rilis, lihat Galeri PowerShell.

  • Jalankan cmdlet Connect-AzAccount untuk menyambungkan ke langganan Anda (cmdlet Azure Batch dikirim dalam modul Azure Resource Manager):

    Connect-AzAccount
    
  • Daftar dengan namespace penyedia Batch. Anda hanya perlu melakukan operasi ini sekali per langganan.

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

Mengelola akun dan kunci Batch

Membuat akun Batch

New-AzBatchAccount membuat akun Batch dalam grup sumber daya tertentu. Jika Anda belum memiliki grup sumber daya, buat dengan menjalankan cmdlet New-AzResourceGroup . Tentukan salah satu wilayah Azure di parameter Lokasi , seperti "US Tengah". Contohnya:

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

Kemudian, buat akun Batch di grup sumber daya. Tentukan nama untuk akun di <account_name>, serta lokasi dan nama grup sumber daya Anda. Membuat akun Batch dapat memakan waktu untuk menyelesaikannya. Contohnya:

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

Nota

Nama akun Batch harus unik untuk wilayah Azure untuk grup sumber daya, berisi antara 3 dan 24 karakter, dan hanya menggunakan huruf kecil dan angka.

Mendapatkan kunci akses akun

Get-AzBatchAccountKeys menunjukkan kunci akses yang terkait dengan akun Azure Batch. Misalnya, jalankan yang berikut ini untuk mendapatkan kunci utama dan sekunder dari akun yang Anda buat.

$Account = Get-AzBatchAccountKeys –AccountName <account_name>

$Account.PrimaryAccountKey

$Account.SecondaryAccountKey

Membuat kunci akses baru

New-AzBatchAccountKey menghasilkan kunci akun primer atau sekunder baru untuk akun Azure Batch. Misalnya, untuk menghasilkan kunci primer baru untuk akun Batch Anda, ketik:

New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary

Nota

Untuk menghasilkan kunci sekunder baru, tentukan "Sekunder" untuk parameter KeyType . Anda harus meregenerasi kunci primer dan sekunder secara terpisah.

Menghapus akun Batch

Remove-AzBatchAccount menghapus akun Batch. Contohnya:

Remove-AzBatchAccount -AccountName <account_name>

Saat diminta, konfirmasikan bahwa Anda ingin menghapus akun. Penghapusan akun dapat memakan waktu untuk menyelesaikannya.

Membuat objek BatchAccountContext

Anda dapat mengautentikasi untuk mengelola sumber daya Batch menggunakan autentikasi kunci bersama atau autentikasi Microsoft Entra. Untuk mengautentikasi menggunakan cmdlet Batch PowerShell, pertama-tama buat objek BatchAccountContext untuk menyimpan kredensial atau identitas akun Anda. Anda meneruskan objek BatchAccountContext ke cmdlet yang menggunakan parameter BatchContext .

Autentikasi kunci bersama

$context = Get-AzBatchAccountKeys -AccountName <account_name>

Nota

Secara default, kunci utama akun digunakan untuk autentikasi, tetapi Anda dapat secara eksplisit memilih kunci yang akan digunakan dengan mengubah properti KeyInUse objek BatchAccountContext Anda: $context.KeyInUse = "Secondary".

Autentikasi Microsoft Entra

$context = Get-AzBatchAccount -AccountName <account_name>

Membuat dan memodifikasi sumber daya Batch

Gunakan cmdlet seperti New-AzBatchPool, New-AzBatchJob, dan New-AzBatchTask untuk membuat sumber daya di bawah akun Batch. Ada cmdlet Get- dan Set- yang sesuai untuk memperbarui properti sumber daya yang ada, dan cmdlet Remove- untuk menghapus sumber daya di bawah akun Batch.

Saat menggunakan banyak cmdlet ini, selain meneruskan objek BatchContext, Anda perlu membuat atau meneruskan objek yang berisi pengaturan sumber daya terperinci, seperti yang ditunjukkan dalam contoh berikut. Lihat bantuan terperinci untuk setiap cmdlet untuk contoh tambahan.

Membuat kumpulan Batch

Saat membuat atau memperbarui kumpulan Batch, Anda menentukan konfigurasi. Kumpulan umumnya harus dikonfigurasi dengan Konfigurasi Komputer Virtual, yang memungkinkan Anda menentukan salah satu gambar VM Linux atau Windows yang didukung yang tercantum di Azure Virtual Machines Marketplace, atau memberikan gambar kustom yang telah Anda siapkan. Kumpulan Konfigurasi Cloud Services hanya menyediakan simpul komputasi Windows dan tidak mendukung semua fitur Batch.

Saat Anda menjalankan New-AzBatchPool, lewati pengaturan sistem operasi di objek PSVirtualMachineConfiguration atau PSCloudServiceConfiguration. Misalnya, cuplikan berikut membuat kumpulan Batch dengan ukuran Standard_A1 node komputasi dalam konfigurasi mesin virtual, dicitrakan dengan Ubuntu Server 20.04-LTS. Di sini, parameter VirtualMachineConfiguration menentukan variabel $configuration sebagai objek PSVirtualMachineConfiguration. Parameter BatchContext menentukan variabel yang ditentukan sebelumnya $context sebagai objek 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

Jumlah target simpul komputasi di kumpulan baru dihitung dengan rumus penskalaan otomatis. Dalam hal ini, rumusnya hanya $TargetDedicated=4, menunjukkan jumlah simpul komputasi di kumpulan adalah 4 paling banyak.

Pencarian untuk kumpulan, pekerjaan, tugas, dan detail lainnya

Gunakan cmdlet seperti Get-AzBatchPool, Get-AzBatchJob, dan Get-AzBatchTask untuk mengkueri entitas yang dibuat di bawah akun Batch.

Kueri untuk data

Sebagai contoh, gunakan Get-AzBatchPools untuk menemukan pool Anda. Secara default kueri ini untuk semua kumpulan di bawah akun Anda, dengan asumsi Anda sudah menyimpan objek BatchAccountContext di $context:

Get-AzBatchPool -BatchContext $context

Menggunakan filter OData

Anda dapat menyediakan filter OData menggunakan parameter Filter untuk menemukan hanya objek yang Anda minati. Misalnya, Anda dapat menemukan semua kumpulan dengan ID yang dimulai dengan "myPool":

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

Get-AzBatchPool -Filter $filter -BatchContext $context

Metode ini tidak fleksibel seperti menggunakan "Where-Object" dalam alur lokal. Namun, kueri akan dikirim ke layanan Batch secara langsung sehingga semua pemfilteran terjadi di sisi server, menghemat bandwidth Internet.

Gunakan parameter Id

Alternatif untuk filter OData adalah menggunakan parameter Id . Untuk mengkueri kumpulan tertentu dengan id "myPool":

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

Parameter Id hanya mendukung pencarian ID penuh; tidak mendukung menggunakan pola pencarian bebas atau filter model OData.

Gunakan parameter MaxCount

Secara default, setiap cmdlet mengembalikan maksimum 1000 objek. Jika Anda mencapai batas ini, perbaiki filter Anda untuk mengembalikan lebih sedikit objek, atau secara eksplisit mengatur maksimum menggunakan parameter MaxCount . Contohnya:

Get-AzBatchTask -MaxCount 2500 -BatchContext $context

Untuk menghapus batas atas, atur MaxCount ke 0 atau kurang.

Menggunakan alur PowerShell

Cmdlet batch menggunakan alur PowerShell untuk mengirim data antar cmdlet. Ini memiliki efek yang sama dengan menentukan parameter, tetapi membuat bekerja dengan beberapa entitas lebih mudah.

Misalnya, temukan dan tampilkan semua tugas di bawah akun Anda:

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

Mulai ulang (reboot) setiap simpul komputasi dalam kumpulan:

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

Manajemen paket aplikasi

Paket aplikasi menyediakan cara yang disederhanakan untuk menyebarkan aplikasi ke simpul komputasi di kumpulan Anda. Dengan cmdlet Batch PowerShell, Anda dapat mengunggah dan mengelola paket aplikasi di akun Batch Anda, dan menyebarkan versi paket ke simpul komputasi.

Penting

Anda harus menautkan akun Azure Storage ke akun Batch Anda untuk menggunakan paket aplikasi.

Buat aplikasi:

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

Tambahkan paket aplikasi:

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

Atur versi default untuk aplikasi:

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

Mencantumkan paket aplikasi

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

$application.ApplicationPackages

Menghapus paket aplikasi

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

Menghapus aplikasi

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

Nota

Anda harus menghapus semua versi paket aplikasi sebelum menghapus aplikasi. Anda akan menerima kesalahan 'Konflik' jika Anda mencoba menghapus aplikasi yang saat ini memiliki paket aplikasi.

Menyebarkan paket aplikasi

Anda dapat menentukan satu atau beberapa paket aplikasi untuk penyebaran saat membuat kumpulan. Saat Anda menentukan paket pada waktu pembuatan kumpulan, paket disebarkan ke setiap simpul saat simpul bergabung dengan kumpulan. Paket juga disebarkan ketika node di-boot ulang atau digambar ulang.

Tentukan opsi -ApplicationPackageReference saat membuat kumpulan untuk menyebarkan paket aplikasi ke node kumpulan ketika mereka bergabung dengan kumpulan. Pertama, buat objek PSApplicationPackageReference , dan konfigurasikan dengan ID aplikasi dan versi paket yang ingin Anda sebarkan ke simpul komputasi kumpulan:

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

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "1.0"

Sekarang buat kumpulan, dan tentukan objek referensi paket sebagai argumen ke opsi ApplicationPackageReferences:

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

Anda dapat menemukan informasi selengkapnya tentang paket aplikasi di Menyebarkan aplikasi ke simpul komputasi dengan paket aplikasi Batch.

Memperbarui paket aplikasi kumpulan

Untuk memperbarui aplikasi yang ditetapkan ke kumpulan yang ada, pertama-tama buat objek PSApplicationPackageReference dengan properti yang diinginkan (ID aplikasi dan versi paket):

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

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "2.0"

Selanjutnya, dapatkan kumpulan dari Batch, hapus paket yang ada, tambahkan referensi paket baru, dan perbarui layanan Batch dengan pengaturan kumpulan baru:

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

$pool.ApplicationPackageReferences.Clear()

$pool.ApplicationPackageReferences.Add($appPackageReference)

Set-AzBatchPool -BatchContext $context -Pool $pool

Anda kini telah memperbarui properti kumpulan di layanan Batch. Untuk benar-benar menyebarkan paket aplikasi baru ke simpul komputasi di kumpulan, Anda perlu menghidupkan ulang atau mencitrakan ulang simpul tersebut. Anda dapat memulai ulang setiap simpul dalam kumpulan dengan perintah ini:

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

Petunjuk / Saran

Anda dapat menyebarkan beberapa paket aplikasi ke simpul komputasi dalam kumpulan. Jika Anda ingin menambahkan paket aplikasi alih-alih mengganti paket yang saat ini disebarkan, hilangkan baris di $pool.ApplicationPackageReferences.Clear() atas.

Langkah berikutnya