Condividi tramite


Esercitazione: Attivare un processo Batch con Funzioni di Azure

Questa esercitazione illustra come attivare un processo Batch usando Funzioni di Azure. Questo articolo descrive un esempio che prende documenti che vengono aggiunti a un contenitore Blob di Archiviazione di Azure e applica il riconoscimento ottico dei caratteri usando Azure Batch. Per semplificare l'elaborazione OCR, questo esempio configura una funzione di Azure che esegue un processo OCR di Batch ogni volta che un file viene aggiunto al contenitore BLOB. Scopri come:

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

Prerequisiti

Accedere ad Azure

Accedi al portale di Azure.

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

In questa sezione si usa il portale di Azure per creare il pool 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 a sinistra 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, il pool si chiama ocr-pool.
    2. Selezionare canonical 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 Scala su Fisso e immettere 3 per i nodi dedicati di destinazione.
    7. Impostare Avvia attività su Abilitato l'attività di avvio e immettere il comando nella /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, Amministratore, che consente alle attività iniziali di includere comandi con sudo.
    8. Seleziona OK.

Crea un lavoro

  1. Creare un'attività nel pool cliccando su Attività nella barra di navigazione a sinistra e quindi scegliere il pulsante Aggiungi sopra il form di ricerca.
    1. Immettere un ID processo. Questo esempio usa ocr-job.
    2. Selezionare ocr-pool dal pool corrente o il nome scelto per il pool.
    3. Seleziona OK.

Creare contenitori BLOB

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

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

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

  3. Selezionare Contenitori nel riquadro di spostamento a 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 Scrivi nell'elenco a discesa Autorizzazioni . Non sono necessarie altre autorizzazioni.

  5. Selezionare Genera SAS token e URL e copiare il Blob SAS URL da usare in un secondo momento per la funzione.

    Screenshot della pagina Token di accesso condiviso che evidenzia il menu a tendina Autorizzazioni e il pulsante Genera token SAS e URL.

Creare una funzione di Azure

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

  1. Seguire la procedura descritta in Creare una funzione attivata da Archiviazione BLOB di Azure per creare una funzione.

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

    Lo screenshot seguente mostra la pagina Crea app per le funzioni nella scheda Informazioni di base utilizzando dati di esempio.

    Screenshot della pagina Crea Funzione App nella scheda Informazioni di base usando delle informazioni di esempio.

  2. Nella funzione selezionare Funzioni nel riquadro di spostamento a sinistra e selezionare Crea.

  3. Nel riquadro Crea Funzione, selezionare il trigger di Azure Blob Storage.

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

  5. Fare clic su 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 Codice e test. Usare il run.csx e il function.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 al 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 batch e dell'account di archiviazione nel portale di Azure nella sezione Chiavi dell'account batch e dell'account di archiviazione.

Attivare la funzione e recuperare i risultati

Caricare uno o tutti i file scansionati dalla cartella input_files su GitHub nel contenitore di input.

È possibile testare la funzione dal portale di Azure nella pagina Codice e test della funzione.

  1. Selezionare Test/esegui nella pagina Codice + Test.
  2. Immettere il percorso del contenitore di input in Corpo nella scheda Input .
  3. Selezionare Esegui.

Dopo alcuni secondi, il file con OCR applicato viene aggiunto al contenitore di output. Le informazioni di log vengono restituite nella finestra inferiore. Il file è quindi visibile e recuperabile 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

I file scaricati sono ricercabili se aperti in un lettore PDF.

Pulire le risorse

Il pool viene addebitato mentre i nodi sono in esecuzione, anche se non sono pianificati processi. Quando il pool non è più necessario, eliminarlo seguendo questa procedura:

  1. Nella pagina Pools dell'account Batch, selezionare altre opzioni del 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 sull'uso dell'API .NET per pianificare ed elaborare i carichi di lavoro di Batch, vedere gli esempi in GitHub.