Mengelola sumber daya Batch dengan cmdlet PowerShell
Dengan cmdlet Azure Batch PowerShell, Anda dapat melakukan dan membuat banyak skrip tugas Batch umum. Artikel Ini merupakan pengenalan cepat ke cmdlet yang dapat Anda gunakan untuk mengelola akun Batch dan bekerja dengan sumber daya Batch 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 konfigurasi 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, buatlah dengan menjalankan cmdlet New-AzResourceGroup. Tentukan salah satu wilayah Azure di parameter Lokasi, seperti "AS Tengah". Contohnya:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Lalu, buat akun Batch di grup sumber daya. Tentukan nama akun di <account_name>, serta lokasi dan nama grup sumber daya Anda. Membuat akun Batch dapat memakan waktu beberapa lama. Contoh:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Catatan
Nama akun Batch haruslah unik untuk wilayah Azure dan grup sumber daya terkait, berisi antara 3 dan 24 karakter, dan hanya menggunakan huruf kecil dan angka.
Dapatkan kunci akses akun
Get-AzBatchAccountKeys menampilkan kunci akses yang terkait dengan akun Azure Batch. Misalnya, jalankan yang berikut ini untuk mendapatkan kunci primer dan sekunder untuk akun yang Anda buat.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Menghasilkan kunci akses baru
New-AzBatchAccountKey menghasilkan kunci akun primer atau sekunder baru untuk akun Azure Batch. Misalnya, untuk menghasilkan kunci primer baru akun Batch Anda, ketik:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Catatan
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 tersebut. Penghapusan akun dapat memakan waktu beberapa lama.
Buat 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. Teruskan objek BatchAccountContext ke cmdlet yang menggunakan parameter BatchContext.
Autentikasi kunci bersama
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Catatan
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 mengubah sumber daya Batch
Gunakan cmdlet seperti New-AzBatchPool, New-AzBatchJob, dan New-AzBatchTask untuk membuat sumber daya di bawah akun Batch. Ada cmdlet Get- and Set- yang sesuai untuk memperbarui properti sumber daya yang sudah ada, dan cmdlet Remove- untuk menghapus sumber daya di akun Batch.
Saat menggunakan banyak cmdlet ini, selain melewati objek BatchContext, Anda perlu membuat atau meneruskan objek yang berisi pengaturan sumber daya terperinci, seperti yang ditunjukkan dalam contoh berikut. Lihat bantuan terperinci 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 citra Linux atau Windows VM yang didukung yang tercantum di Azure Virtual Machines Marketplace, atau memberikan citra 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 simpul komputasi dalam konfigurasi komputer virtual, dicitrakan dengan Ubuntu Server 20.04-LTS. Di sini, parameter VirtualMachineConfiguration menentukan variabel $configuration sebagai objek PSVirtualMachineConfiguration. Parameter BatchContext menentukan variabel $context yang sebelumnya ditetapkan 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 dalam kumpulan baru dihitung dengan rumus autoscaling. Dalam hal ini, rumusnya hanyalah $TargetDedicated=4, menunjukkan jumlah simpul komputasi dalam kumpulan paling banyak 4.
Kueri untuk kumpulan, pekerjaan, tugas, dan detail lainnya
Gunakan cmdlet seperti Get-AzBatchPool, Get-AzBatchJob, dan Get-AzBatchTask untuk meminta entitas yang dibuat di bawah akun Batch.
Kueri untuk data
Sebagai contoh, gunakan Get-AzBatchPools untuk menemukan kumpulan 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 akan terjadi di sisi server, sehingga menghemat bandwidth Internet.
Gunakan parameter Id
Alternatif untuk filter OData adalah menggunakan parameter Id. Untuk meminta kumpulan tertentu dengan id "myPool":
Get-AzBatchPool -Id "myPool" -BatchContext $context
Parameter Id hanya mendukung pencarian ID penuh; bukan wildcard atau filter bergaya OData.
Gunakan parameter MaxCount
Secara default, setiap cmdlet mengembalikan maksimum 1000 objek. Jika Anda mencapai batas ini, perbaiki filter Anda agar membawa kembali objek yang lebih sedikit, atau secara eksplisit atur maksimumnya 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 di antara cmdlet. Efeknya sama dengan menentukan parameter, tetapi mempermudah pekerjaan dengan beberapa entitas.
Misalnya, temukan dan tampilkan semua tugas di bawah akun Anda:
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Hidupkan 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 sederhana 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 untuk menggunakan paket aplikasi.
Buat aplikasi:
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Tambah 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"
Cantumkan paket aplikasi
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Hapus paket aplikasi
Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"
Hapus aplikasi
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Catatan
Anda harus menghapus semua versi paket aplikasi sebelum menghapus aplikasi. Anda akan menerima kesalahan 'Konflik' jika mencoba menghapus aplikasi yang saat ini memiliki paket aplikasi.
Menyebarkan paket aplikasi
Anda dapat menentukan penyebaran satu atau beberapa paket aplikasi saat membuat kumpulan. Ketika Anda menentukan paket pada waktu pembuatan kumpulan, paket tersebut disebarkan ke setiap simpul saat simpul bergabung dengan kumpulan. Paket juga disebarkan saat simpul di-boot ulang atau dicitrakan ulang.
Menentukan opsi -ApplicationPackageReference
saat membuat kumpulan untuk menyebarkan paket aplikasi ke simpul kumpulan saat mereka bergabung dengan kumpulan. Pertama, buat objek PSApplicationPackageReference, dan konfigurasikan dengan ID aplikasi dan versi paket yang ingin Anda terapkan 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 untuk opsi ApplicationPackageReferences
:
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Anda dapat menemukan informasi lebih lanjut tentang paket aplikasi di Sebarkan aplikasi ke simpul komputasi dengan paket aplikasi Batch.
Perbarui 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, bersihkan 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 sekarang telah memperbarui properti kumpulan di layanan Batch. Untuk benar-benar menyebarkan paket aplikasi baru untuk menghitung simpul di kumpulan, Anda harus menghidupkan ulang atau mencitrakan ulang simpul tersebut. Anda dapat menghidupkan ulang setiap simpul dalam kumpulan dengan perintah ini:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Tip
Anda dapat menyebarkan beberapa paket aplikasi ke simpul komputasi dalam kumpulan. Jika Anda ingin menambahkan paket aplikasi alih-alih mengganti paket yang saat ini digunakan, hilangkan baris $pool.ApplicationPackageReferences.Clear()
di atas.
Langkah berikutnya
- Tinjau referensi cmdlet Azure Batch untuk sintaks dan contoh cmdlet terperinci.
- Pelajari cara menyebarkan aplikasi ke simpul komputasi dengan paket aplikasi Batch.