Esercitazione: Attivare un processo di Batch usando Funzioni di Azure

In questa esercitazione viene illustrato come attivare un processo Batch usando Funzioni di Azure. Questo articolo illustra un esempio che accetta documenti aggiunti a un contenitore BLOB di archiviazione di Azure applica il riconoscimento ottico dei caratteri (OCR) usando Azure Batch. Per semplificare l'elaborazione OCR, in questo esempio viene configurata una funzione di Azure che esegue un processo OCR batch ogni volta che un file viene aggiunto al contenitore BLOB. Si apprenderà come:

  • Usare il portale di Azure per creare pool e processi.
  • Creare contenitori BLOB e una firma di accesso condiviso .
  • Creare una funzione di Azure attivata da BLOB.
  • Caricare i file di input in Archiviazione.
  • Monitorare l'esecuzione delle attività.
  • Recuperare i file di output.

Prerequisiti

Accedere ad Azure

Accedere al portale di Azure.

Creare un pool batch e un processo Batch usando il portale di Azure

In questa sezione viene usato il portale di Azure per creare il pool di Batch e il processo Batch che esegue attività OCR.

Creare un pool

  1. Accedere al portale di Azure usando le credenziali di Azure.

  2. Creare un pool selezionando Pool nel riquadro di spostamento lato sinistro e quindi selezionare il pulsante Aggiungi sopra il modulo di ricerca.

    Screenshot della pagina Pool in un account Batch che evidenzia il pulsante Aggiungi.

    1. Immettere un ID pool. In questo esempio viene predefinito il pool ocr-pool.
    2. Selezionare canonico come server di pubblicazione.
    3. Selezionare 0001-com-ubuntu-server-jammy come offerta.
    4. Selezionare 22_04-lts come Sku.
    5. Scegliere Standard_F2s_v2 - 2 vCPUs, 2 GB Memory come dimensione della macchina virtuale nella sezione Dimensioni nodo .
    6. Impostare la modalità nella sezione Ridimensiona su Correzione e immettere 3 per i nodi dedicati di destinazione.
    7. Impostare l'attività Start su Abilitato l'attività start e immettere il comando nella riga di comando./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" Assicurarsi di impostare il livello di elevazione come utente automatico del pool, Amministrazione, che consente di avviare le attività per includere comandi con sudo.
    8. Selezionare OK.

Creare un processo

  1. Creare un processo nel pool selezionando Processi nello spostamento lato sinistro e quindi scegliere il pulsante Aggiungi sopra il modulo di ricerca.
    1. Immettere un ID processo. In questo esempio viene utilizzato ocr-job.
    2. Selezionare ocr-pool per Il pool corrente o qualsiasi nome scelto per il pool.
    3. Selezionare OK.

Creare contenitori BLOB

Qui si creano contenitori BLOB che archiviano i file di input e di output per il processo batch OCR. In questo esempio il contenitore di input è denominato input e in esso vengono inizialmente caricati per l'elaborazione tutti i documenti senza OCR. Il contenitore di output è denominato output e in esso il processo di Batch scrive i documenti elaborati con OCR.

  1. Cercare e selezionare Account di archiviazione nella portale di Azure.

  2. Scegliere l'account di archiviazione collegato all'account Batch.

  3. Selezionare Contenitori dalla navigazione laterale sinistra e creare due contenitori BLOB (uno per i file di input, uno per i file di output) seguendo i passaggi descritti in Creare un contenitore BLOB.

  4. Creare una firma di accesso condiviso per il contenitore di output selezionando il contenitore di output e nella pagina Token di accesso condiviso selezionare Scrittura nell'elenco a discesa Autorizzazioni . Non sono necessarie altre autorizzazioni.

  5. Selezionare Genera token di firma di accesso condiviso e URL e copiare l'URL della firma di accesso condiviso BLOB da usare in un secondo momento per la funzione.

    Screenshot della pagina Token di accesso condiviso che evidenzia l'elenco a discesa Autorizzazioni e il pulsante Genera token di firma di accesso condiviso e URL.

Creare una funzione di Azure

In questa sezione viene creata la funzione di Azure che attiva il processo OCR Batch ogni volta che un file viene caricato nel contenitore di input.

  1. Seguire i passaggi in Creare una funzione attivata dall'archiviazione BLOB di Azure per creare una funzione.

    1. Per Stack di runtime scegliere .NET. Questa funzione di esempio usa C# per sfruttare batch .NET SDK.
    2. Nella pagina Archiviazione usare lo stesso account di archiviazione collegato all'account Batch.
    3. Selezionare Rivedi e Crea>.

    Screenshot seguente della pagina Crea app per le funzioni nella scheda Nozioni di base usando informazioni di esempio.

    Screenshot della pagina Crea app per le funzioni nella scheda Nozioni di base usando informazioni di esempio.

  2. Nella funzione selezionare Funzioni dallo spostamento lato sinistro e selezionare Crea.

  3. Nel riquadro Crea funzione selezionare Archiviazione BLOB di Azure trigger.

  4. Immettere un nome per la funzione in Nuova funzione. In questo esempio il nome è OcrTrigger. Immettere il percorso come input/{name}, dove input nel nome del contenitore BLOB.

  5. Selezionare Crea.

    Screenshot del riquadro Crea funzione che evidenzia l'opzione trigger Archiviazione BLOB di Azure e i campi Nuova funzione e Percorso.

  6. Dopo aver creato la funzione attivata dal BLOB, selezionare Code + Test. Usare e run.csxfunction.proj da GitHub nella funzione. function.proj non esiste per impostazione predefinita, quindi selezionare il pulsante Carica per caricarlo nell'area di lavoro di sviluppo.

    • run.csx viene eseguito quando viene aggiunto un nuovo BLOB nel contenitore BLOB di input.
    • function.proj elenca le librerie esterne nel codice della funzione, ad esempio Batch .NET SDK.
  7. Modificare i valori segnaposto delle variabili nella funzione Run() del file run.csx in modo da riflettere le credenziali di archiviazione e di Batch. È possibile trovare le credenziali dell'account di archiviazione e Batch nella portale di Azure nella sezione Chiavi dell'account di archiviazione e batch.

Attivare la funzione e recuperare i risultati

Caricare i file digitalizzati dalla directory input_files in GitHub nel contenitore di input.

È possibile testare la funzione da portale di Azure nella pagina Code + Test della funzione.

  1. Selezionare Test/esecuzione nella pagina Codice + Test .
  2. Immettere il percorso del contenitore di input nel corpo della scheda Input .
  3. Selezionare Run (Esegui).

Dopo alcuni secondi, il file a cui è stato applicato il metodo OCR viene aggiunto al contenitore di output. Le informazioni di log vengono restituite nella finestra inferiore. Il file è quindi visibile e può essere recuperato in Storage Explorer.

In alternativa, è possibile trovare le informazioni di log nella pagina Monitoraggio :

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

Per scaricare i file di output nel computer locale, passare al contenitore di output nell'account di archiviazione. Selezionare altre opzioni nel file desiderato e quindi selezionare Scarica.

Suggerimento

È possibile eseguire ricerche nei file scaricati aprendoli in un lettore PDF.

Pulire le risorse

Vengono addebitati addebiti per il pool mentre i nodi vengono eseguiti, anche se non vengono pianificati processi. Quando non è più necessario il pool, eliminarlo con la procedura seguente:

  1. Nella pagina Pool dell'account Batch selezionare altre opzioni nel pool.
  2. Selezionare Elimina.

Quando si elimina il pool, tutto l'output delle attività nei nodi viene eliminato. I file di output rimangono tuttavia nell'account di archiviazione. Quando non sono più necessari, è anche possibile eliminare l'account Batch e l'account di archiviazione.

Passaggi successivi

Per altri esempi di uso dell'API .NET per pianificare ed elaborare i carichi di lavoro di Batch, vedere gli esempi su GitHub.