Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Peringatan
Ekstensi Batch Azure CLI akan dihentikan pada 30 September 2024. Hapus instalan ekstensi dengan perintah az extension remove --name azure-batch-cli-extensions.
Dengan menggunakan ekstensi Batch ke Azure CLI, pengguna dapat menjalankan pekerjaan Batch tanpa menulis kode.
Buat dan gunakan file templat JSON dengan Azure CLI untuk membuat kumpulan Batch, pekerjaan, dan tugas. Gunakan perintah ekstensi CLI untuk mengunggah file input pekerjaan dengan mudah ke akun penyimpanan yang terkait dengan akun Batch, dan mengunduh file output pekerjaan.
Nota
File JSON tidak mendukung fungsionalitas yang sama dengan templat Azure Resource Manager. Mereka dimaksudkan untuk diformat seperti isi permintaan REST mentah. Ekstensi CLI tidak mengubah perintah yang ada, tetapi memiliki opsi templat serupa yang menambahkan fungsionalitas templat Azure Resource Manager parsial. Lihat Ekstensi CLI Azure Batch untuk Windows, Mac, dan Linux.
Gambaran Umum
Ekstensi ke Azure CLI memungkinkan Batch digunakan secara end-to-end oleh pengguna yang bukan pengembang. Hanya dengan perintah CLI, Anda dapat membuat kumpulan, mengunggah data input, membuat pekerjaan dan tugas terkait, dan mengunduh data output yang dihasilkan. Tidak diperlukan kode tambahan. Jalankan perintah CLI secara langsung atau integrasikan ke dalam skrip.
Templat batch dibangun pada dukungan Batch yang ada di Azure CLI untuk file JSON untuk menentukan nilai properti saat membuat kumpulan, pekerjaan, tugas, dan item lainnya. Templat batch menambahkan kemampuan berikut:
Parameter dapat ditentukan. Saat templat digunakan, hanya nilai parameter yang ditentukan untuk membuat item, dengan nilai properti item lain yang ditentukan dalam isi templat. Pengguna yang memahami Batch dan aplikasi yang akan dijalankan oleh Batch dapat membuat templat, menentukan nilai properti kumpulan, pekerjaan, dan tugas. Pengguna yang kurang terbiasa dengan Batch dan/atau aplikasi hanya perlu menentukan nilai untuk parameter yang ditentukan.
Fasilitas pembuatan tugas membuat satu atau beberapa tugas yang dikaitkan dengan pekerjaan, menghindari kebutuhan akan banyak definisi tugas yang harus dibuat dan secara signifikan menyederhanakan penyampaian tugas.
Pekerjaan biasanya menggunakan file data input dan menghasilkan file data output. Akun penyimpanan dikaitkan, secara default, dengan setiap akun Batch. Anda dapat mentransfer file ke dan dari akun penyimpanan ini menggunakan Azure CLI, tanpa pengkodean dan tanpa kredensial penyimpanan.
Misalnya, ffmpeg adalah aplikasi populer yang memproses file audio dan video. Dengan menggunakan ekstensi Azure Batch CLI, Anda dapat mempermudah pengguna untuk memanggil ffmpeg untuk mentranskode file video sumber ke resolusi yang berbeda. Prosesnya mungkin terlihat seperti ini:
- Buat templat untuk kumpulan. Pengguna yang membuat templat tahu cara memanggil aplikasi ffmpeg dan persyaratannya; mereka menentukan OS yang sesuai, ukuran VM, bagaimana ffmpeg diinstal (dari paket aplikasi atau menggunakan manajer paket, misalnya), dan nilai properti kumpulan lainnya. Parameter dibuat sehingga ketika templat digunakan, hanya ID kumpulan dan jumlah VM yang perlu ditentukan.
- Buat templat pekerjaan. Pengguna yang membuat templat tahu bagaimana ffmpeg perlu dipanggil untuk mentranskode video sumber ke resolusi yang berbeda dan menentukan baris perintah tugas; mereka juga tahu bahwa ada folder yang berisi file video sumber, dengan tugas yang diperlukan per file input.
- Pengguna akhir dengan sekumpulan file video yang akan ditranskode terlebih dahulu membuat kumpulan menggunakan templat kumpulan, hanya menentukan ID kumpulan dan jumlah VM yang diperlukan. Mereka kemudian dapat mengunggah file sumber untuk ditranskode. Pekerjaan kemudian dapat dikirimkan menggunakan templat pekerjaan, hanya menentukan ID kumpulan dan lokasi file sumber yang diunggah. Pekerjaan batch dibuat, dengan satu tugas per file input yang dihasilkan. Terakhir, file output yang ditranskodekan dapat diunduh.
Instalasi
Untuk menginstal ekstensi Azure Batch CLI, pertama-tama Instal Azure CLI 2.0, atau jalankan Azure CLI di Azure Cloud Shell.
Instal versi terbaru ekstensi Batch menggunakan perintah Azure CLI berikut:
az extension add --name azure-batch-cli-extensions
Untuk informasi selengkapnya tentang ekstensi CLI Batch dan opsi penginstalan tambahan, lihat repositori GitHub.
Untuk menggunakan fitur ekstensi CLI, Anda memerlukan akun Azure Batch dan, untuk perintah yang mentransfer file ke dan dari penyimpanan, akun penyimpanan tertaut.
Untuk masuk ke akun Batch dengan Azure CLI, lihat Mengelola sumber daya Batch dengan Azure CLI.
Templat
Templat Azure Batch mirip dengan templat Azure Resource Manager, dalam fungsionalitas dan sintaksis. Mereka adalah file JSON yang berisi nama dan nilai properti item, tetapi menambahkan konsep utama berikut:
-
Parameter: Izinkan nilai properti ditentukan di bagian isi, dengan hanya nilai parameter yang perlu disediakan saat templat digunakan. Misalnya, definisi lengkap untuk kumpulan dapat ditempatkan dalam isi dan hanya satu parameter yang ditentukan untuk
poolId; hanya string ID kumpulan yang perlu disediakan untuk membuat kumpulan. Isi templat dapat ditulis oleh seseorang dengan pengetahuan tentang Batch dan aplikasi yang akan dijalankan oleh Batch; hanya nilai untuk parameter yang ditentukan penulis yang harus disediakan saat templat digunakan. Ini memungkinkan pengguna yang tidak memiliki pengetahuan mendalam tentang Batch dan/atau aplikasi untuk menggunakan templat. - Variabel: Izinkan nilai parameter sederhana atau kompleks ditentukan di satu tempat dan digunakan di satu atau beberapa tempat dalam isi templat. Variabel dapat menyederhanakan dan mengurangi ukuran templat, serta membuatnya lebih mudah dipertahankan dengan memiliki satu lokasi untuk mengubah properti.
- Konstruksi tingkat yang lebih tinggi: Beberapa konstruksi tingkat yang lebih tinggi tersedia dalam templat yang belum tersedia di API Batch. Misalnya, fabrikasi tugas dapat didefinisikan dalam templat pekerjaan yang menghasilkan beberapa tugas bagi pekerjaan tersebut dengan menggunakan definisi tugas bersama. Konstruksi ini menghindari kebutuhan untuk membuat kode untuk membuat beberapa file JSON secara dinamis, seperti satu file per tugas, serta membuat file skrip untuk menginstal aplikasi melalui manajer paket.
Templat kumpulan
Templat kumpulan mendukung kemampuan templat standar parameter dan variabel. Mereka juga mendukung referensi paket, yang secara opsional memungkinkan perangkat lunak untuk disalin ke node kumpulan dengan menggunakan manajer paket. Manajer paket dan ID paket ditentukan dalam referensi paket. Dengan mendeklarasikan satu atau beberapa paket, Anda menghindari membuat skrip untuk mendapatkan paket yang diperlukan, menginstal skrip, dan menjalankan skrip pada setiap node kumpulan.
Berikut ini adalah contoh templat yang membuat kumpulan VM Linux dengan ffmpeg terinstal. Untuk menggunakannya, hanya berikan string ID kumpulan dan jumlah VM di kumpulan:
{
"parameters": {
"nodeCount": {
"type": "int",
"metadata": {
"description": "The number of pool nodes"
}
},
"poolId": {
"type": "string",
"metadata": {
"description": "The pool ID "
}
}
},
"pool": {
"type": "Microsoft.Batch/batchAccounts/pools",
"apiVersion": "2016-12-01",
"properties": {
"id": "[parameters('poolId')]",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "20.04-LTS",
"version": "latest"
},
"nodeAgentSKUId": "batch.node.ubuntu 20.04"
},
"vmSize": "STANDARD_D3_V2",
"targetDedicatedNodes": "[parameters('nodeCount')]",
"enableAutoScale": false,
"taskSlotsPerNode": 1,
"packageReferences": [
{
"type": "aptPackage",
"id": "ffmpeg"
}
]
}
}
}
Jika file templat diberi nama pool-ffmpeg.json, maka panggil templat sebagai berikut:
az batch pool create --template pool-ffmpeg.json
CLI meminta Anda untuk memberikan nilai untuk poolId parameter dan nodeCount . Anda juga dapat menyediakan parameter dalam file JSON. Contohnya:
{
"poolId": {
"value": "mypool"
},
"nodeCount": {
"value": 2
}
}
Jika parameter file JSON diberi nama pool-parameters.json, panggil templat sebagai berikut:
az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json
Templat pekerjaan
Templat pekerjaan mendukung kemampuan templat standar parameter dan variabel. Mereka juga mendukung penggunaan task factory, yang membuat beberapa tugas untuk proyek dari satu definisi tugas. Tiga jenis faktori tugas didukung: pemindaian parametrik, tugas per berkas, dan kumpulan tugas.
Berikut ini adalah contoh templat yang membuat pekerjaan untuk mentranskode file video MP4 dengan ffmpeg ke salah satu dari dua resolusi yang lebih rendah. Ini membuat satu tugas untuk setiap file video sumber. Lihat Grup file dan transfer file untuk informasi selengkapnya tentang grup file untuk input dan output pekerjaan.
{
"parameters": {
"poolId": {
"type": "string",
"metadata": {
"description": "The name of Azure Batch pool which runs the job"
}
},
"jobId": {
"type": "string",
"metadata": {
"description": "The name of Azure Batch job"
}
},
"resolution": {
"type": "string",
"defaultValue": "428x240",
"allowedValues": [
"428x240",
"854x480"
],
"metadata": {
"description": "Target video resolution"
}
}
},
"job": {
"type": "Microsoft.Batch/batchAccounts/jobs",
"apiVersion": "2016-12-01",
"properties": {
"id": "[parameters('jobId')]",
"constraints": {
"maxWallClockTime": "PT5H",
"maxTaskRetryCount": 1
},
"poolInfo": {
"poolId": "[parameters('poolId')]"
},
"taskFactory": {
"type": "taskPerFile",
"source": {
"fileGroup": "ffmpeg-input"
},
"repeatTask": {
"commandLine": "ffmpeg -i {fileName} -y -s [parameters('resolution')] -strict -2 {fileNameWithoutExtension}_[parameters('resolution')].mp4",
"resourceFiles": [
{
"blobSource": "{url}",
"filePath": "{fileName}"
}
],
"outputFiles": [
{
"filePattern": "{fileNameWithoutExtension}_[parameters('resolution')].mp4",
"destination": {
"autoStorage": {
"path": "{fileNameWithoutExtension}_[parameters('resolution')].mp4",
"fileGroup": "ffmpeg-output"
}
},
"uploadOptions": {
"uploadCondition": "TaskSuccess"
}
}
]
}
},
"onAllTasksComplete": "terminatejob"
}
}
}
Jika file templat diberi nama job-ffmpeg.json, maka panggil templat sebagai berikut:
az batch job create --template job-ffmpeg.json
Seperti sebelumnya, CLI meminta Anda untuk memberikan nilai untuk parameter. Anda juga dapat menyediakan parameter dalam file JSON.
Menggunakan templat di Batch Explorer
Anda dapat mengunggah templat Batch CLI ke aplikasi desktop Batch Explorer untuk membuat kumpulan batch atau pekerjaan. Anda juga dapat memilih dari kumpulan dan templat pekerjaan yang telah ditentukan sebelumnya di Galeri Batch Explorer.
Untuk mengunggah templat:
- Di Batch Explorer, pilih Galeri>Templat lokal.
- Pilih, atau seret dan letakkan, kumpulan lokal atau templat pekerjaan.
- Pilih Gunakan templat ini, dan ikuti perintah di layar.
File grup dan transfer
Sebagian besar pekerjaan dan tugas memerlukan file input dan menghasilkan file output. Biasanya, file input dan file output ditransfer, baik dari klien ke simpul, atau dari simpul ke klien. Ekstensi Azure Batch CLI mengabstraksi transfer file dan menggunakan akun penyimpanan yang dapat Anda kaitkan dengan setiap akun Batch.
Grup file sama dengan kontainer yang dibuat di akun penyimpanan Azure. Grup file mungkin memiliki subfolder.
Ekstensi Batch CLI menyediakan perintah untuk mengunggah file dari klien ke grup file tertentu dan mengunduh file dari grup file yang ditentukan ke klien.
az batch file upload --local-path c:\source_videos\*.mp4
--file-group ffmpeg-input
az batch file download --file-group ffmpeg-output --local-path
c:\output_lowres_videos
Template kumpulan dan pekerjaan memungkinkan penentuan file yang disimpan dalam grup file untuk disalin ke simpul kumpulan, atau dari simpul kumpulan kembali ke grup file. Misalnya, dalam templat pekerjaan yang ditentukan sebelumnya, grup file ffmpeg-input ditentukan untuk fasilitas tugas sebagai lokasi file video sumber yang sudah disalin ke node untuk transcoding. Grup file ffmpeg-output adalah lokasi tempat file output yang ditranskode disalin dari simpul yang menjalankan setiap tugas.
Ringkasan
Dukungan templat dan transfer file saat ini telah ditambahkan hanya ke Azure CLI. Tujuannya adalah untuk memperluas audiens yang dapat menggunakan Batch kepada pengguna yang tidak perlu mengembangkan kode menggunakan API Batch, seperti peneliti dan pengguna TI. Tanpa pengkodian, pengguna dengan pengetahuan tentang Azure, Batch, dan aplikasi yang akan dijalankan oleh Batch dapat membuat templat untuk pembuatan kumpulan dan pekerjaan. Dengan parameter templat, pengguna tanpa pengetahuan terperinci tentang Batch dan aplikasi terkait dapat menggunakan templat secara efektif.
Cobalah ekstensi Batch untuk Azure CLI dan beri kami umpan balik atau saran apa pun, baik di komentar untuk artikel ini atau melalui repositori Komunitas Batch.
Langkah selanjutnya
- Lihat dokumentasi penginstalan dan penggunaan terperinci, sampel, dan kode sumber di repositori Azure GitHub.
- Pelajari selengkapnya tentang menggunakan Batch Explorer untuk membuat dan mengelola sumber daya Batch.