Zelfstudie: Een Batch-taak activeren met behulp van Azure Functions

In deze zelfstudie leert u hoe u een Batch-taak kunt activeren met behulp van Azure Functions. We gaan een voorbeeld bekijken waarin OCR (optische tekenherkenning) via Azure Batch wordt toegepast op documenten die worden toegevoegd aan een Azure Storage-blobcontainer. Om de OCR-verwerking te stroomlijnen, gaan we een Azure-functie configureren die een Batch-taak voor OCR uitvoert elke keer dat een bestand wordt toegevoegd aan de blobcontainer. In deze zelfstudie leert u procedures om het volgende te doen:

  • Batch Explorer gebruiken om pools en taken te maken
  • Storage Explorer gebruiken om blobcontainers en een handtekening voor gedeelde toegang (shared access signature, SAS) te maken
  • Een Azure-functie maken die wordt geactiveerd via een blob
  • Invoerbestanden uploaden naar Storage
  • Taakuitvoering controleren
  • Uitvoerbestanden ophalen

Vereisten

Aanmelden bij Azure

Meld u aan bij de Azure-portal.

Een Batch-pool en Batch-taak maken met behulp van Batch Explorer

In deze sectie gebruikt u Batch Explorer om de Batch-pool en Batch-taak te maken voor OCR-taken.

Een groep maken

  1. Meld u aan bij Batch Explorer met uw Azure-referenties.
  2. Maak een pool door Pools aan de linkerkant te selecteren en klik vervolgens op de knop Toevoegen boven het zoekformulier.
    1. Kies een id en weergavenaam. In dit voorbeeld gebruiken we ocr-pool.
    2. Stel het schaaltype in op Vaste grootte en stel het toegewezen aantal knooppunten in op 3.
    3. Selecteer Ubuntuserver > 18.04-lts als het besturingssysteem.
    4. Kies Standard_f2s_v2 als de grootte van de virtuele machine.
    5. Schakel de begintaak in en voeg de opdracht /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"toe. Zorg ervoor dat u de gebruikersidentiteit in stelt als Taakgebruiker (Beheerder), waarmee begintaken opdrachten kunnen opnemen met sudo .
    6. Selecteer OK.

Een taak maken

  1. Maak een taak in de pool door Taken aan de linkerkant te selecteren en klik vervolgens op de knop Toevoegen boven het zoekformulier.
    1. Kies een id en weergavenaam. In dit voorbeeld gebruiken we ocr-job.
    2. Stel de pool in op ocr-pool of de naam die u voor uw pool hebt gekozen.
    3. Selecteer OK.

Blob-containers maken

Hier maakt u blob-containers waarmee de invoer- en uitvoer bestanden voor de OCR Batch-taak worden opgeslagen. In dit voorbeeld heeft de invoercontainer de naam input. Dit is waar alle documenten zonder OCR aanvankelijk worden geüpload om verwerkt te worden. De uitvoercontainer heet output en is waar de Batch-taak verwerkte documenten schrijft met OCR.

  1. Meld u aan bij Storage Explorer met uw Azure-referenties.
  2. Met het opslagaccount dat is gekoppeld aan uw Batch-account, maakt u twee blob-containers (één voor invoerbestanden, één voor uitvoerbestanden) door de stappen te volgen op Een blob-container maken.
  3. Maak een shared access signature voor uw uitvoercontainer in Storage Explorer door met de rechtermuisknop op de uitvoercontainer te klikken en Get Shared Access Signature... te selecteren. Selecteer onder Machtigingen de optie Schrijven. Er zijn geen andere machtigingen nodig.

Een Azure-functie maken

In deze sectie maakt u de Azure-functie waarmee de Batch-taak voor OCR wordt geactiveerd wanneer een bestand wordt geüpload naar de invoercontainer.

  1. Volg de stappen in Een functie maken die wordt geactiveerd door Azure Blob Storage om een functie te maken.
    1. Kies .NET als Runtimestack. We schrijven onze functie in C# om gebruik te maken van de .NET SDK voor de Batch.
    2. Wanneer u wordt gevraagd om een opslagaccount onder Hosting, gebruikt u hetzelfde opslagaccount dat u aan uw Batch-account hebt gekoppeld.
    3. Zorg er tijdens het maken van de trigger voor het Azure Blob Storage-account voor dat het pad is ingesteld op (om overeen te komen met de input/{name} naam van uw invoercontainer).
  2. Zodra de door blob geactiveerde functie is gemaakt, selecteert u Code + Testen. Gebruik de run.csx en van GitHub in de functie function.proj . function.projbestaat niet standaard, dus selecteer de knop Upload te uploaden naar uw ontwikkelwerkruimte.
    • run.csx wordt uitgevoerd wanneer een nieuwe blob wordt toegevoegd aan uw blobcontainer voor invoer.
    • function.proj geeft de externe bibliotheken in uw Functiecode weer, bijvoorbeeld de Batch .NET SDK.
  3. Wijzig de voorbeeldwaarden van de variabelen in de Run()-functie van het run.csx-bestand naar uw Batch- en opslagreferenties. U vindt uw Batch- en Storage-accountreferenties in het Azure-portal, in de sectie Sleutels van uw Batch-account.
    • Haal uw Batch- en Storage-accountreferenties op in het Azure-portal, in de sectie Sleutels van uw Batch-account.

De functie activeren en resultaten ophalen

Upload de gewenste of alle gescande bestanden uit de map input_files op GitHub naar uw invoercontainer. Controleer Batch Explorer om te bevestigen dat voor elk bestand een taak wordt toegevoegd aan ocr-pool. Na enkele seconden is het bestand met OCR toegevoegd aan de uitvoercontainer. Het bestand is dan zichtbaar en kan opgehaald worden in Storage Explorer.

Daarnaast kunt u het logboekbestand bekijken onderaan de webeditor van Azure Functions, waar u berichten zoals deze ziet wanneer u een bestand uploadt naar uw invoercontainer:

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

Als u de uitvoerbestanden van Storage Explorer wilt downloaden naar uw lokale computer, selecteert u eerst de gewenste bestanden en vervolgens Download in het bovenste lint.

Tip

De gedownloade bestanden zijn doorzoekbaar wanneer u ze opent in een PDF-lezer.

Resources opschonen

Er worden kosten berekend voor de pool zolang de knooppunten actief zijn, zelfs als er geen taken zijn gepland. Wanneer u de pool niet meer nodig hebt, verwijdert u deze met de volgende stappen:

  1. Selecteer in de accountweergave Pools en de naam van de pool.
  2. Selecteer Verwijderen.

Wanneer u de pool verwijdert, wordt ook alle taakuitvoer op de knooppunten verwijderd. De uitvoerbestanden blijven echter aanwezig in het opslagaccount. Wanneer u het Batch-account en het opslagaccount niet meer nodig hebt, kunt u deze ook verwijderen.

Volgende stappen

Voor meer voorbeelden van het gebruik van de .NET API om Batch-workloads te plannen en te verwerken raadpleegt u de voorbeelden op GitHub.