Tutorial: Acionar uma tarefa do Batch com Funções do Azure
Neste tutorial, vai aprender a acionar uma tarefa do Batch com Funções do Azure. Este artigo explica um exemplo que leva documentos adicionados a um contentor de blobs do Armazenamento do Azure que aplica o reconhecimento ótico de carateres (OCR) com Azure Batch. Para simplificar o processamento de OCR, este exemplo configura uma função do Azure que executa uma tarefa OCR do Batch sempre que um ficheiro é adicionado ao contentor de blobs. Saiba como:
- Utilize o portal do Azure para criar conjuntos e tarefas.
- Crie contentores de blobs e uma assinatura de acesso partilhado (SAS).
- Crie uma Função do Azure acionada por blobs.
- Carregue ficheiros de entrada para o Armazenamento.
- Monitorizar a execução de tarefas.
- Obter ficheiros de saída.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Uma conta do Batch do Azure e uma conta de Armazenamento do Microsoft Azure associada. Para obter mais informações sobre como criar e ligar contas, veja Criar uma conta do Batch.
Iniciar sessão no Azure
Inicie sessão no portal do Azure.
Criar um conjunto do Batch e uma tarefa do Batch com o portal do Azure
Nesta secção, vai utilizar o portal do Azure para criar o conjunto do Batch e o trabalho do Batch que executa tarefas OCR.
Criar um conjunto
Inicie sessão no portal do Azure com as suas credenciais do Azure.
Crie um conjunto ao selecionar Conjuntos no painel de navegação esquerdo e, em seguida, selecione o botão Adicionar acima do formulário de pesquisa.
- Introduza um ID de Conjunto. Este exemplo dá o nome ao conjunto
ocr-pool
. - Selecione canonical como o Publisher.
- Selecione 0001-com-ubuntu-server-jammy como a Oferta.
- Selecione 22_04-lts como o SKU.
- Escolha
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
como o tamanho da VM na secção Tamanho do Nó . - Defina o Modo na secção Dimensionamento como Fixo e introduza 3 para os nós dedicados de destino.
- Defina Iniciar tarefa como Ativado a tarefa de início e introduza o comando na Linha de comandos
/bin/bash -c "sudo update-locale LC_ALL=C.UTF-8 LANG=C.UTF-8; sudo apt-get update; sudo apt-get -y install ocrmypdf"
. Certifique-se de que define o Nível de elevação como Autouser do conjunto, Administração, que permite que as tarefas de início incluam comandos comsudo
. - Selecione OK.
- Introduza um ID de Conjunto. Este exemplo dá o nome ao conjunto
Criar uma tarefa
- Crie uma tarefa no conjunto ao selecionar Tarefas no painel de navegação esquerdo e, em seguida, selecione o botão Adicionar acima do formulário de pesquisa.
- Introduza um ID da Tarefa. Este exemplo utiliza
ocr-job
. - Selecione
ocr-pool
para Conjunto atual ou qualquer nome que tenha escolhido para o conjunto. - Selecione OK.
- Introduza um ID da Tarefa. Este exemplo utiliza
Criar contentores de blobs
Aqui, vai criar contentores de blobs que armazenam os seus ficheiros de entrada e saída para a tarefa do OCR Batch. Neste exemplo, o contentor de entrada tem o nome input
e é onde todos os documentos sem OCR são inicialmente carregados para processamento. O contentor de saída tem o nome output
e é onde a tarefa do Batch escreve documentos processados com o OCR.
Procure e selecione Contas de armazenamento no portal do Azure.
Escolha a sua conta de armazenamento associada à sua conta do Batch.
Selecione Contentores no painel de navegação esquerdo e crie dois contentores de blobs (um para ficheiros de entrada, um para ficheiros de saída) ao seguir os passos em Criar um contentor de blobs.
Crie uma assinatura de acesso partilhado para o contentor de saída ao selecionar o contentor de saída e, na página Tokens de acesso partilhado , selecione Escrever no menu pendente Permissões . Não são necessárias outras permissões.
Selecione Gerar token e URL de SAS e copie o URL de SAS do Blob para utilizar mais tarde para a sua função.
Criar uma Função do Azure
Nesta secção, vai criar a Função do Azure que aciona a tarefa do OCR Batch sempre que um ficheiro é carregado para o contentor de entrada.
Siga os passos em Criar uma função acionada pelo armazenamento de Blobs do Azure para criar uma função.
- Para pilha de runtime, selecione .NET. Esta função de exemplo utiliza C# para tirar partido do SDK .NET do Batch.
- Na página Armazenamento , utilize a mesma conta de armazenamento que ligou à sua conta do Batch.
- Selecione Rever + Criar > Criar.
A seguinte captura de ecrã da página Criar Aplicação de Funções no separador Noções Básicas com informações de exemplo.
Na sua função, selecione Funções no painel de navegação esquerdo e selecione Criar.
No painel Criar função, selecione Armazenamento de Blobs do Azure acionador.
Introduza um nome para a função em Nova Função. Neste exemplo, o nome é OcrTrigger. Introduza o caminho como
input/{name}
, em que introduza o nome do contentor de Blobs.Selecione Criar.
Assim que a função acionada por blobs for criada, selecione Código + Teste. Utilize o
run.csx
efunction.proj
do GitHub na Função .function.proj
por predefinição, não existe, por isso, selecione o botão Carregar para carregá-lo para a área de trabalho de desenvolvimento.-
run.csx
é executado quando um novo blob é adicionado ao contentor de blobs de entrada. -
function.proj
lista as bibliotecas externas no código de Função, por exemplo, o SDK .NET do Batch.
-
Altere os valores dos marcadores de posição das variáveis na
Run()
função dorun.csx
ficheiro para refletir as credenciais do Batch e do armazenamento. Pode encontrar as credenciais do Batch e da conta de armazenamento no portal do Azure na secção Chaves da sua conta do Batch e de armazenamento.
Acionar a função e obter resultados
Carregue qualquer um ou todos os ficheiros analisados do input_files
diretório no GitHub para o contentor de entrada.
Pode testar a função a partir de portal do Azure na página Código + Teste da sua função.
- Selecione Testar/executar na página Código + Teste .
- Introduza o caminho para o contentor de entrada em Corpo no separador Entrada .
- Selecione Executar.
Após alguns segundos, o ficheiro com OCR aplicado é adicionado ao contentor de saída. As informações de registo são apresentadas na janela inferior. Em seguida, o ficheiro é visível e recuperável no Explorador de Armazenamento.
Em alternativa, pode encontrar as informações de registo na página Monitor :
2019-05-29T19:45:25.846 [Information] Creating job...
2019-05-29T19:45:25.847 [Information] Accessing input container <inputContainer>...
2019-05-29T19:45:25.847 [Information] Adding <fileName> as a resource file...
2019-05-29T19:45:25.848 [Information] Name of output text file: <outputTxtFile>
2019-05-29T19:45:25.848 [Information] Name of output PDF file: <outputPdfFile>
2019-05-29T19:45:26.200 [Information] Adding OCR task <taskID> for <fileName> <size of fileName>...
Para transferir os ficheiros de saída para o computador local, aceda ao contentor de saída na sua conta de armazenamento. Selecione mais opções no ficheiro que pretende e, em seguida, selecione Transferir.
Dica
Os ficheiros transferidos são pesquisáveis se forem abertos num leitor de PDF.
Limpar os recursos
É-lhe cobrado o conjunto enquanto os nós estão em execução, mesmo que não sejam agendadas tarefas. Quando já não precisar do conjunto, elimine-o com os seguintes passos:
- Na página Conjuntos da sua conta do Batch, selecione mais opções no conjunto.
- Selecione Eliminar.
Quando eliminar o conjunto, todos os resultados da tarefa nos nós são eliminados. No entanto, os ficheiros de saída permanecem na conta de armazenamento. Quando já não for necessário, também pode eliminar a conta do Batch e a conta de armazenamento.
Passos seguintes
Para obter mais exemplos de utilização da API .NET para agendar e processar cargas de trabalho do Batch, veja os exemplos no GitHub.