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

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

  1. Inicie sessão no portal do Azure com as suas credenciais do Azure.

  2. 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.

    Captura de ecrã da página Conjuntos numa conta do Batch que realça o botão Adicionar.

    1. Introduza um ID de Conjunto. Este exemplo dá o nome ao conjunto ocr-pool.
    2. Selecione canonical como o Publisher.
    3. Selecione 0001-com-ubuntu-server-jammy como a Oferta.
    4. Selecione 22_04-lts como o SKU.
    5. Escolha Standard_F2s_v2 - 2 vCPUs, 2 GB Memory como o tamanho da VM na secção Tamanho do Nó .
    6. Defina o Modo na secção Dimensionamento como Fixo e introduza 3 para os nós dedicados de destino.
    7. 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 com sudo.
    8. Selecione OK.

Criar uma tarefa

  1. 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.
    1. Introduza um ID da Tarefa. Este exemplo utiliza ocr-job.
    2. Selecione ocr-pool para Conjunto atual ou qualquer nome que tenha escolhido para o conjunto.
    3. Selecione OK.

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.

  1. Procure e selecione Contas de armazenamento no portal do Azure.

  2. Escolha a sua conta de armazenamento associada à sua conta do Batch.

  3. 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.

  4. 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.

  5. Selecione Gerar token e URL de SAS e copie o URL de SAS do Blob para utilizar mais tarde para a sua função.

    Captura de ecrã da página Tokens de acesso partilhado que realça a lista pendente Permissões e o botão Gerar token e URL de SAS.

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.

  1. Siga os passos em Criar uma função acionada pelo armazenamento de Blobs do Azure para criar uma função.

    1. Para pilha de runtime, selecione .NET. Esta função de exemplo utiliza C# para tirar partido do SDK .NET do Batch.
    2. Na página Armazenamento , utilize a mesma conta de armazenamento que ligou à sua conta do Batch.
    3. 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.

    Captura de ecrã da página Criar Aplicação de Funções no separador Noções Básicas com informações de exemplo.

  2. Na sua função, selecione Funções no painel de navegação esquerdo e selecione Criar.

  3. No painel Criar função, selecione Armazenamento de Blobs do Azure acionador.

  4. 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.

  5. Selecione Criar.

    Captura de ecrã a mostrar o painel Criar Função que realça a opção de acionador Armazenamento de Blobs do Azure e Os Novos Campos de Função e Caminho.

  6. Assim que a função acionada por blobs for criada, selecione Código + Teste. Utilize o run.csx e function.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.
  7. Altere os valores dos marcadores de posição das variáveis na Run() função do run.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.

  1. Selecione Testar/executar na página Código + Teste .
  2. Introduza o caminho para o contentor de entrada em Corpo no separador Entrada .
  3. 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:

  1. Na página Conjuntos da sua conta do Batch, selecione mais opções no conjunto.
  2. 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.