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.
Uyarı
Batch Azure CLI uzantısı 30 Eylül 2024'te kullanımdan kaldırılacaktır. Lütfen komutuyla az extension remove --name azure-batch-cli-extensionsuzantıyı kaldırın.
Kullanıcılar, Azure CLI'da Batch uzantısını kullanarak kod yazmadan Batch işlerini çalıştırabilir.
Batch havuzları, işleri ve görevleri oluşturmak için Azure CLI ile JSON şablon dosyaları oluşturun ve kullanın. İş giriş dosyalarını Batch hesabıyla ilişkilendirilmiş depolama hesabına kolayca yüklemek ve iş çıktı dosyalarını indirmek için CLI uzantısı komutlarını kullanın.
Uyarı
JSON dosyaları Azure Resource Manager şablonlarıyla aynı işlevselliği desteklemez. Bunların ham REST isteği gövdesi gibi biçimlendirilmesi amaçlandı. CLI uzantısı var olan komutları değiştirmez, ancak kısmi Azure Resource Manager şablon işlevselliği ekleyen benzer bir şablon seçeneğine sahiptir. Bkz. Windows, Mac ve Linux için Azure Batch CLI Uzantıları.
Genel Bakış
Azure CLI uzantısı, Batch'in geliştirici olmayan kullanıcılar tarafından uçtan uca kullanılmasını sağlar. Yalnızca CLI komutlarıyla bir havuz oluşturabilir, giriş verilerini karşıya yükleyebilir, işler ve ilişkili görevler oluşturabilir ve sonuçta elde edilen çıkış verilerini indirebilirsiniz. Ek kod gerekmez. CLI komutlarını doğrudan çalıştırın veya betiklere tümleştirin.
Batch şablonları, havuzlar, işler, görevler ve diğer öğelerin oluşturulmasında özellik değerlerini belirtmek için JSON dosyalarında Azure CLI'de mevcut Batch desteği temel alınarak oluşturulur. Batch şablonları aşağıdaki özellikleri ekler:
Parametreler tanımlanabilir. Şablon kullanıldığında, öğeyi oluşturmak için yalnızca parametre değerleri belirtilir ve diğer öğe özellik değerleri şablon gövdesinde belirtilir. Batch'i ve Batch tarafından çalıştırılacak uygulamaları anlayan bir kullanıcı havuz, iş ve görev özelliği değerlerini belirterek şablonlar oluşturabilir. Batch ve/veya uygulamalar hakkında daha az bilgi sahibi olan bir kullanıcının yalnızca tanımlı parametrelerin değerlerini belirtmesi gerekir.
İş görevi fabrikaları, bir işle ilişkili bir veya daha fazla görev oluşturarak birçok görev tanımının oluşturulması gereğini önler ve iş gönderimini önemli ölçüde basitleştirir.
İşler genellikle giriş veri dosyalarını kullanır ve çıkış veri dosyaları oluşturur. Her Batch hesabıyla varsayılan olarak bir depolama hesabı ilişkilendirilir. Kodlama ve depolama kimlik bilgileri olmadan Azure CLI kullanarak bu depolama hesabına ve bu hesaptan dosya aktarabilirsiniz.
Örneğin , ffmpeg ses ve video dosyalarını işleyen popüler bir uygulamadır. Azure Batch CLI uzantısını kullanarak, bir kullanıcının kaynak video dosyalarını farklı çözünürlüklerde kodlamak için ffmpeg çağırmasını kolaylaştırabilirsiniz. İşlem şöyle görünebilir:
- Havuz şablonu oluşturun. Şablonu oluşturan kullanıcı ffmpeg uygulamasını ve gereksinimlerini nasıl çağıracaklarını bilir; uygun işletim sistemini, VM boyutunu, ffmpeg'in nasıl yükleneceğini (örneğin bir uygulama paketinden veya paket yöneticisi kullanarak) ve diğer havuz özelliği değerlerini belirtir. Parametreler oluşturulur, bu nedenle şablon kullanıldığında yalnızca havuz kimliği ve VM sayısı belirtilmelidir.
- bir iş şablonu oluşturun. Şablonu oluşturan kullanıcı, kaynak videoyu farklı bir çözünürlüğe kodlamak için ffmpeg'in nasıl çağrılması gerektiğini bilir ve görev komut satırını belirtir; ayrıca, giriş dosyası başına bir görev gerektiren kaynak video dosyalarını içeren bir klasör olduğunu da bilirler.
- Kod dönüştürmesi için bir dizi video dosyası olan son kullanıcı, önce havuz şablonunu kullanarak yalnızca havuz kimliğini ve gereken VM sayısını belirterek bir havuz oluşturur. Daha sonra kaynak dosyaları kod dönüştürmeye yükleyebilirler. Ardından, yalnızca havuz kimliği ve yüklenen kaynak dosyaların konumu belirtilerek iş şablonu kullanılarak bir iş gönderilebilir. Batch işi oluşturulur ve her giriş dosyası için bir görev oluşturulur. Son olarak, kodlanmış çıkış dosyaları indirilebilir.
Kurulum
Azure Batch CLI uzantısını yüklemek için önce Azure CLI 2.0'ı yükleyin veya Azure Cloud Shell'de Azure CLI'yi çalıştırın.
Aşağıdaki Azure CLI komutunu kullanarak Batch uzantısının en son sürümünü yükleyin:
az extension add --name azure-batch-cli-extensions
Batch CLI uzantısı ve ek yükleme seçenekleri hakkında daha fazla bilgi için GitHub deposuna bakın.
CLI uzantısı özelliklerini kullanmak için bir Azure Batch hesabına ve dosyaları depolama alanına ve depolamadan aktaran komutlar için bağlı bir depolama hesabına ihtiyacınız vardır.
Azure CLI ile bir Batch hesabında oturum açmak için bkz. Azure CLI ile Batch kaynaklarını yönetme.
Şablonlar
Azure Batch şablonları, işlevsellik ve söz diziminde Azure Resource Manager şablonlarına benzer. Bunlar, öğe özellik adları ve değerleri içeren JSON dosyalarıdır, ancak aşağıdaki ana kavramları ekler:
-
Parametreler: Özellik değerlerinin bir gövde bölümünde belirtilmesine izin verir ve şablon kullanıldığında yalnızca parametre değerlerinin sağlanması gerekir. Örneğin, bir havuzun tam tanımı gövdeye yerleştirilebilir ve için tanımlanan yalnızca bir parametre olabilir; bu nedenle havuz oluşturmak için
poolIdyalnızca bir havuz kimliği dizesinin sağlanması gerekir. Şablon gövdesi, Batch ve Batch tarafından çalıştırılacak uygulamalar hakkında bilgisi olan biri tarafından yazılabilir; şablon kullanıldığında yalnızca yazar tarafından tanımlanan parametrelerin değerleri sağlanmalıdır. Bu, ayrıntılı Batch ve/veya uygulama bilgisi olmayan kullanıcıların şablonları kullanmasını sağlar. - Değişkenler: Basit veya karmaşık parametre değerlerinin tek bir yerde belirtilmesine ve şablon gövdesindeki bir veya daha fazla yerde kullanılmasına izin verin. Değişkenler, şablonun boyutunu basitleştirebilir ve küçültebilir, ayrıca özellikleri değiştirmek için tek bir konuma sahip olarak şablonu daha sürdürülebilir hale getirir.
- Daha üst düzey yapılar: Şablonda henüz Batch API'lerinde bulunmayan bazı üst düzey yapılar kullanılabilir. Örneğin, bir görev fabrikası, ortak bir görev tanımı kullanılarak iş için birden çok görev oluşturan bir iş şablonunda tanımlanabilir. Bu yapılar, görev başına bir dosya gibi birden çok JSON dosyasını dinamik olarak oluşturmanın yanı sıra paket yöneticisi aracılığıyla uygulama yüklemek için betik dosyaları oluşturma gereksinimini önler.
Havuz şablonları
Havuz şablonları, parametrelerin ve değişkenlerin standart şablon özelliklerini destekler. Ayrıca, isteğe bağlı olarak paket yöneticileri kullanılarak yazılımın havuz düğümlerine kopyalanmasına izin veren paket başvurularını da destekler. Paket yöneticisi ve paket kimliği paket başvurusunda belirtilir. Bir veya daha fazla paket bildirerek, gerekli paketleri alan bir betik oluşturmaktan, betiği yüklemekten ve betiği her havuz düğümünde çalıştırmaktan kaçınırsınız.
Aşağıda, ffmpeg yüklü linux VM'lerinden oluşan bir havuz oluşturan bir şablon örneği verilmiştir. Bunu kullanmak için yalnızca bir havuz kimliği dizesi ve havuzdaki VM sayısını sağlayın:
{
"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"
}
]
}
}
}
Şablon dosyasının adı pool-ffmpeg.jsonise, şablonu aşağıdaki gibi çağırın:
az batch pool create --template pool-ffmpeg.json
CLI, poolId ve nodeCount parametreleri için sizden değerler girmenizi ister. Parametreleri bir JSON dosyasında da sağlayabilirsiniz. Örneğin:
{
"poolId": {
"value": "mypool"
},
"nodeCount": {
"value": 2
}
}
Parametre JSON dosyasının adı pool-parameters.jsonise, şablonu aşağıdaki gibi çağırın:
az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json
İş şablonları
İş şablonları, parametrelerin ve değişkenlerin standart şablon özelliklerini destekler. Ayrıca, bir görev tanımından bir iş için birden çok görev oluşturan görev fabrikası yapısını da destekler. Üç tür görev fabrikası desteklenir: parametrik süpürme, dosya başına görev ve görev koleksiyonu.
Aşağıda, MP4 video dosyalarını ffmpeg ile iki düşük çözünürlükte birine kodlamak için bir iş oluşturan bir şablon örneği verilmiştir. Kaynak video dosyası başına bir görev oluşturur. İş girişi ve çıktısı için dosya grupları hakkında daha fazla bilgi için bkz. Dosya grupları ve dosya aktarımı.
{
"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"
}
}
}
Şablon dosyasının adı job-ffmpeg.jsonise, şablonu aşağıdaki gibi çağırın:
az batch job create --template job-ffmpeg.json
Daha önce olduğu gibi, CLI sizden parametreler için değerler sağlamanızı ister. Parametreleri bir JSON dosyasında da sağlayabilirsiniz.
Batch Gezgini'nde şablonları kullanma
Batch havuzu veya işi oluşturmak için Batch CLI şablonunu Batch Gezgini masaüstü uygulamasına yükleyebilirsiniz. Batch Explorer Galerisi'nde önceden tanımlanmış havuz ve iş şablonları arasından da seçim yapabilirsiniz.
Şablon yükleme:
- Batch Explorer'da GaleriYerel şablonları'nı> seçin.
- Yerel havuzu veya iş şablonunu seçin veya sürükleyip bırakın.
- Bu şablonu kullan'ı seçin ve ekrandaki istemleri izleyin.
Dosya grupları ve dosya aktarımı
Çoğu iş ve görev, giriş dosyaları gerektirir ve çıkış dosyaları oluşturur. Giriş dosyaları ve çıkış dosyaları genellikle istemciden düğüme veya düğümden istemciye aktarılır. Azure Batch CLI uzantısı, dosya aktarımını soyutlar ve her Batch hesabıyla ilişkilendirebileceğiniz depolama hesabını kullanır.
Dosya grubu, Azure depolama hesabında oluşturulan bir kapsayıcıya eşitler. Dosya grubunun alt klasörleri olabilir.
Batch CLI uzantısı, dosyaları istemciden belirtilen bir dosya grubuna yüklemek ve belirtilen dosya grubundan istemciye dosya indirmek için komutlar sağlar.
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
Havuz ve iş şablonları, dosya gruplarında depolanan dosyaların havuz düğümlerine veya havuz düğümleri dışında bir dosya grubuna kopyalanacak şekilde belirtilmesine izin verir. Örneğin, daha önce belirtilen iş şablonunda, görev fabrikası için dosya grubu ffmpeg-input , kod dönüştürme için düğüme kopyalanan kaynak video dosyalarının konumu olarak belirtilir. ffmpeg-output dosya grubu, kodlanmış çıkış dosyalarının her görevi çalıştıran düğümden kopyalandığı konumdur.
Özet
Şablon ve dosya aktarımı desteği şu anda yalnızca Azure CLI'ye eklenmiştir. Amaç, Batch'i kullanabilen hedef kitleyi, araştırmacılar ve BT kullanıcıları gibi Batch API'lerini kullanarak kod geliştirmesi gerekmeyen kullanıcılara genişletmektir. Kodlama olmadan Azure, Batch ve Batch tarafından çalıştırılacak uygulamalar hakkında bilgi sahibi olan kullanıcılar havuz ve iş oluşturma şablonları oluşturabilir. Şablon parametreleriyle, Batch ve uygulamalar hakkında ayrıntılı bilgi sahibi olmayan kullanıcılar şablonları kullanabilir.
Azure CLI için Batch uzantısını deneyin ve bu makalenin yorumlarında veya Batch Topluluğu deposu aracılığıyla bize geri bildirim veya öneriler sağlayın.
Sonraki adımlar
- Azure GitHub deposunda ayrıntılı yükleme ve kullanım belgelerini, örnekleri ve kaynak kodunu görüntüleyin.
- Batch kaynaklarını oluşturmak ve yönetmek için Batch Explorer'ı kullanma hakkında daha fazla bilgi edinin.