Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aviso
A extensão Batch do Azure CLI será descontinuada em 30 de setembro de 2024. Desinstale a extensão com o comando az extension remove --name azure-batch-cli-extensions.
Usando uma extensão Batch para a CLI do Azure, os usuários podem executar tarefas do Batch sem escrever código.
Crie e use arquivos de modelo JSON com a CLI do Azure para criar pools, trabalhos e tarefas do Batch. Use os comandos de extensão CLI para carregar facilmente os arquivos de entrada de trabalho na conta de armazenamento associada à conta do Lote e baixe os arquivos de saída de trabalho.
Observação
Os arquivos JSON não dão suporte à mesma funcionalidade que os modelos do Azure Resource Manager. Eles devem ser formatados como o corpo bruto da solicitação REST. A extensão da CLI não altera nenhum comando existente, mas tem uma opção de modelo semelhante que adiciona funcionalidade de modelo parcial do Azure Resource Manager. Confira Extensões da CLI do Lote do Azure para Windows, Mac e Linux.
Visão geral
Uma extensão da CLI do Azure permite que o Lote seja usado de ponta a ponta por usuários que não são desenvolvedores. Com apenas comandos da CLI, você pode criar um pool, carregar dados de entrada, criar trabalhos e tarefas associadas e baixar os dados de saída resultantes. Nenhum código adicional é necessário. Execute os comandos da CLI diretamente ou integre-os em scripts.
Os modelos de lote baseiam-se no suporte do Lote existente na CLI do Azure para arquivos JSON para especificar valores de propriedade ao criar pools, trabalhos, tarefas e outros itens. Os modelos de lote adicionam os seguintes recursos:
Parâmetros podem ser definidos. Quando o modelo é usado, somente os valores de parâmetro são especificados para criar o item, com outros valores de propriedade de item especificados no corpo do modelo. Um usuário que entende o Lote e os aplicativos a serem executados pelo Lote pode criar modelos especificando os valores de propriedade de pool, de trabalho e de tarefa. Um usuário menos familiarizado com o Lote e/ou os aplicativos só precisa especificar os valores para os parâmetros definidos.
As fábricas de tarefas de trabalho criam uma ou mais tarefas associadas a um trabalho, evitando a necessidade de que muitas definições de tarefa sejam criadas e simplificando significativamente o envio de trabalho.
Os trabalhos normalmente usam arquivos de dados de entrada e produzem arquivos de dados de saída. Uma conta de armazenamento é associada, por padrão, a cada conta do Lote. Você pode transferir arquivos de e para essa conta de armazenamento usando a CLI do Azure, sem codificação e sem credenciais de armazenamento.
Por exemplo, o ffmpeg é um aplicativo popular que processa arquivos de áudio e vídeo. Usando a extensão CLI do Azure Batch, você pode facilitar para um usuário invocar o ffmpeg para transcodificar arquivos de vídeo de origem para resoluções diferentes. O processo pode ter esta aparência:
- Crie um modelo de pool. O usuário que cria o modelo sabe como chamar o aplicativo ffmpeg e seus requisitos; eles especificam o sistema operacional apropriado, o tamanho da VM, como o ffmpeg é instalado (de um pacote de aplicativo ou usando um gerenciador de pacotes, por exemplo) e outros valores de propriedade do pool. Os parâmetros são criados para que, quando o modelo for usado, apenas a ID do pool e o número de VMs precisem ser especificados.
- Crie um modelo de trabalho. O usuário que cria o modelo sabe como o ffmpeg precisa ser invocado para transcodificar o vídeo de origem para uma resolução diferente e especifica a linha de comando da tarefa; eles também sabem que há uma pasta que contém os arquivos de vídeo de origem, com uma tarefa necessária por arquivo de entrada.
- Um usuário final com um conjunto de arquivos de vídeo para transcodificar primeiro cria um pool usando o modelo de pool, especificando apenas a ID do pool e o número de VMs necessárias. Em seguida, eles podem carregar os arquivos de origem para transcodificar. Em seguida, um trabalho pode ser enviado usando o modelo de trabalho, especificando apenas a ID do pool e o local dos arquivos de origem carregados. O trabalho do Lote é criado, com uma tarefa por arquivo de entrada sendo gerada. Por fim, os arquivos de saída transcodificados podem ser baixados.
Instalação
Para instalar a extensão da CLI do Lote do Azure, primeiro instale a CLI do Azure 2.0 ou execute a CLI do Azure no Azure Cloud Shell.
Instale a última versão da extensão do Lote, usando o seguinte comando da CLI do Azure:
az extension add --name azure-batch-cli-extensions
Para obter mais informações sobre as opções de instalação adicionais e extensão da CLI do lote, consulte o repositório GitHub.
Para usar os recursos da extensão da CLI, você precisa de uma conta do Azure Batch e, para os comandos que transferem arquivos para e do armazenamento, uma conta de armazenamento vinculada.
Para fazer login em uma conta Batch usando a CLI do Azure, consulte Gerenciar recursos do Batch com a CLI do Azure.
Modelos
Os modelos do Lote do Azure são semelhantes aos modelos do Azure Resource Manager, na funcionalidade e na sintaxe. São arquivos JSON que contêm valores e nomes de propriedade de item, mas adicionam os seguintes conceitos principais:
- Parâmetros: Permitir que valores de propriedade sejam especificados em uma seção do corpo, sendo necessário fornecer apenas os valores dos parâmetros quando o modelo for usado. Por exemplo, a definição completa de um pool pode ser colocada no corpo e apenas um parâmetro definido para
poolId; apenas uma cadeia de caracteres de ID do pool, portanto, precisa ser fornecida para criar um pool. O corpo do modelo pode ser criado por alguém com conhecimento do Lote e dos aplicativos a serem executados pelo Lote; somente os valores para os parâmetros definidos pelo autor devem ser fornecidos quando o modelo é usado. Dessa forma, os usuários com pouco conhecimento do Lote e/ou aplicativo podem usar os modelos. - Variáveis: permitir que valores de parâmetro simples ou complexos sejam especificados em um só lugar e usados em um ou mais locais no corpo do modelo. As variáveis podem simplificar e reduzir o tamanho do modelo, bem como torná-lo mais mantenedível por ter um local para alterar as propriedades.
- Construtos de nível superior: alguns construtos de nível superior estão disponíveis no modelo que ainda não estão disponíveis nas APIs Batch. Por exemplo, uma fábrica de tarefas pode ser definida em um modelo de trabalho que cria várias tarefas para o trabalho, usando uma definição de tarefa comum. Esses constructos evitam a necessidade de codificar para criar dinamicamente vários arquivos JSON, como um arquivo por tarefa, bem como criar arquivos de script para instalar aplicativos por meio de um gerenciador de pacotes.
Modelos de agrupamento
Os modelos de pool dão suporte aos recursos de modelo padrão de parâmetros e variáveis. Eles também dão suporte a referências de pacote, que opcionalmente permitem que o software seja copiado para nós de pool usando gerenciadores de pacotes. O gerenciador de pacotes e a ID do pacote são especificados na referência do pacote. Ao declarar um ou mais pacotes, você evita criar um script que obtém os pacotes necessários, instalar o script e executar o script em cada nó do pool.
Veja a seguir um exemplo de um modelo que cria um pool de VMs do Linux com o ffmpeg instalado. Para usá-lo, forneça apenas uma cadeia de caracteres de ID do pool e o número de VMs no pool:
{
"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"
}
]
}
}
}
Se o arquivo de modelo tiver sido nomeado pool-ffmpeg.json, invoque o modelo da seguinte maneira:
az batch pool create --template pool-ffmpeg.json
A CLI solicita que você forneça valores para os parâmetros poolId e nodeCount. Você também pode fornecer os parâmetros em um arquivo JSON. Por exemplo:
{
"poolId": {
"value": "mypool"
},
"nodeCount": {
"value": 2
}
}
Se o arquivo JSON de parâmetros tiver sido nomeado pool-parameters.json, invoque o modelo da seguinte maneira:
az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json
Modelos de trabalho
Os modelos de trabalho dão suporte aos recursos de modelo padrão de parâmetros e variáveis. Eles também dão suporte ao constructo de fábrica de tarefas, que cria várias tarefas para um trabalho a partir de uma definição de tarefa. Há suporte para três tipos de fábrica de tarefas: varredura paramétrica, tarefa por arquivo e coleção de tarefas.
Veja a seguir um exemplo de um modelo que cria um trabalho para transcodificar arquivos de vídeo MP4 com ffmpeg para uma das duas resoluções inferiores. Cria uma tarefa por arquivo de vídeo de origem. Consulte grupos de arquivos e transferência de arquivo para obter mais informações sobre grupos de arquivos para entrada e saída do trabalho.
{
"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"
}
}
}
Se o arquivo de modelo tiver sido nomeado job-ffmpeg.json, invoque o modelo da seguinte maneira:
az batch job create --template job-ffmpeg.json
Como antes, a CLI solicita que você forneça valores para os parâmetros. Você também pode fornecer os parâmetros em um arquivo JSON.
Use os modelos no Azure Batch Explorer
Você pode carregar um modelo de CLI do Lote para o aplicativo de desktop do Azure Batch Explorer para criar um trabalho ou pool do Lote. Você também pode selecionar a partir de modelos predefinidos de pool e o trabalho na Galeria do Azure Batch Explorer.
Para carregar um modelo:
- No Gerenciador de Lotes, selecionemodelos locais da Galeria>.
- Selecione ou arraste e solte um pool local ou um modelo de trabalho.
- Selecione Usar este modelo e siga os prompts na tela.
Grupos de arquivos e transferência de arquivo
A maioria dos trabalhos e tarefas exige arquivos de entrada e produz arquivos de saída. Geralmente, os arquivos de entrada e os arquivos de saída são transferidos, do cliente para o nó ou do nó para o cliente. A extensão de CLI do Lote do Azure abstrai a transferência de arquivo e utiliza a conta de armazenamento que você pode associar à conta do Lote.
Um grupo de arquivos equivale a um contêiner criado na conta de armazenamento do Azure. O grupo de arquivos pode ter subpastas.
A extensão Batch CLI fornece comandos para carregar arquivos do cliente em um grupo de arquivos designado e baixar arquivos desse grupo de arquivos para o cliente.
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
Modelos de pool e de trabalho permitem que os arquivos armazenados em grupos de arquivo sejam especificados para cópia em nós de pool ou transferidos de nós de pool para um grupo de arquivo. Por exemplo, no trabalho de modelo especificado anteriormente, o grupo de arquivos ffmpeg-input é especificado para a fábrica de tarefas como o local dos arquivos de vídeo de origem copiados para baixo até o nó para transcodificação. O grupo de arquivos ffmpeg-output é o local onde os arquivos de saída transcodificados são copiados do nó que executa cada tarefa.
Resumo
Atualmente, o suporte à transferência de modelo e arquivo foi adicionado apenas à CLI do Azure. O objetivo é expandir a audiência que pode usar o Batch para usuários que não precisam desenvolver código usando as APIs do Batch, como pesquisadores e usuários de TI. Sem codificação, os usuários com conhecimento do Azure, do Batch e dos aplicativos a serem executados pelo Batch podem criar templates para criação de pools e trabalhos. Com parâmetros de modelo, usuários sem conhecimento detalhado do Batch e das aplicações podem usar os modelos.
Experimente a extensão Batch para a CLI do Azure e nos envie comentários e sugestões, nos comentários do artigo ou por meio do Batch Community repo.
Próximas etapas
- Exiba a documentação detalhada de instalação e uso, exemplos e código-fonte no repositório GitHub do Azure.
- Saiba mais sobre como usar o Gerenciador de Lotes para criar e gerenciar recursos do Lote.