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

In deze zelfstudie leert u hoe u een Batch-taak activeert met behulp van Azure Functions. In dit artikel wordt een voorbeeld beschreven waarbij documenten die zijn toegevoegd aan een Azure Storage-blobcontainer ocr (optical character recognition) toepast met behulp van Azure Batch. Om de OCR-verwerking te stroomlijnen, configureert u in dit voorbeeld een Azure-functie die een Batch OCR-taak uitvoert telkens wanneer een bestand wordt toegevoegd aan de blobcontainer. In deze zelfstudie leert u procedures om het volgende te doen:

  • Gebruik de Azure Portal om pools en taken te maken.
  • Blobcontainers en een SAS (Shared Access Signature) maken.
  • Een door blob geactiveerde Azure-functie maken.
  • Upload invoerbestanden naar Storage.
  • Taakuitvoering bewaken.
  • Uitvoerbestanden ophalen.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken
  • Een Azure Batch-account en een gekoppeld Azure Storage-account. Zie Een Batch-account maken voor meer informatie over het maken en koppelen van accounts.

Aanmelden bij Azure

Meld u aan bij de Azure-portal.

Een Batch-pool en Batch-taak maken met behulp van de Azure Portal

In deze sectie gebruikt u de Azure Portal om de Batch-pool en Batch-taak te maken waarmee OCR-taken worden uitgevoerd.

Een groep maken

  1. Meld u aan bij de Azure Portal met uw Azure-referenties.

  2. Maak een pool door Pools te selecteren in het navigatievenster aan de linkerkant en vervolgens de knop Toevoegen boven het zoekformulier te selecteren.

    Schermopname van de pagina Pools in een Batch-account waarin de knop Toevoegen is gemarkeerd.

    1. Voer een pool-id in. In dit voorbeeld wordt de pool ocr-pooleen naam .
    2. Selecteer canoniek als uitgever.
    3. Selecteer 0001-com-ubuntu-server-jammyals aanbieding.
    4. Selecteer 22_04-lts als de SKU.
    5. Kies Standard_F2s_v2 - 2 vCPUs, 2 GB Memory als de VM-grootte in de sectie Knooppuntgrootte .
    6. Stel modus in de sectie Schalen in op Vast en voer 3 in voor de toegewezen doelknooppunten.
    7. Stel Start task in op Enabled the start task en voer 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" in Command line in. Zorg ervoor dat u het hoogteniveau instelt op Pool autouser, Beheer, zodat starttaken opdrachten kunnen bevatten met sudo.
    8. Selecteer OK.

Een taak maken

  1. Maak een taak in de pool door Taken te selecteren in de navigatiebalk aan de linkerkant en kies vervolgens de knop Toevoegen boven het zoekformulier.
    1. Voer een taak-id in. In dit voorbeeld wordt ocr-job gebruikt.
    2. Selecteer ocr-pool bij Huidige pool of een naam die u voor uw pool hebt gekozen.
    3. Selecteer OK.

Blob-containers maken

Hier maakt u blobcontainers die uw invoer- en uitvoerbestanden voor de OCR Batch-taak opslaan. 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. Zoek en selecteer Opslagaccounts in de Azure Portal.

  2. Kies uw opslagaccount dat is gekoppeld aan uw Batch-account.

  3. Selecteer Containers in de navigatie aan de linkerkant en maak twee blobcontainers (één voor invoerbestanden, één voor uitvoerbestanden) door de stappen in Een blobcontainer maken te volgen.

  4. Maak een Shared Access Signature voor uw uitvoercontainer door de uitvoercontainer te selecteren en op de pagina Gedeelde toegangstokensde optie Schrijven te selecteren in de vervolgkeuzelijst Machtigingen . Er zijn geen andere machtigingen nodig.

  5. Selecteer SAS-token en URL genereren en kopieer de BLOB SAS-URL voor later gebruik voor uw functie.

    Schermopname van de pagina Gedeelde toegangstokens met de vervolgkeuzelijst Machtigingen en de knop SAS-token en URL genereren gemarkeerd.

Een Azure-functie maken

In deze sectie maakt u de Azure-functie die de OCR Batch-taak activeert wanneer een bestand wordt geüpload naar uw 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. In deze voorbeeldfunctie wordt C# gebruikt om te profiteren van de Batch .NET SDK.
    2. Gebruik op de pagina Opslag hetzelfde opslagaccount dat u aan uw Batch-account hebt gekoppeld.
    3. Selecteer Beoordelen en maken > Maken.

    De volgende schermafbeelding van de pagina Functie-app maken op het tabblad Basisbeginselen met behulp van voorbeeldinformatie.

    Schermopname van de pagina Functie-app maken op het tabblad Basisinformatie met voorbeeldinformatie.

  2. Selecteer functies in de navigatie aan de linkerkant van uw functie en selecteer Maken.

  3. Selecteer in het deelvenster Functie maken de optie Azure Blob Storage trigger.

  4. Voer een naam in voor uw functie in Nieuwe functie. In dit voorbeeld is de naam OcrTrigger. Voer het pad in als input/{name}, waarbij u de naam van de blobcontainer invoert.

  5. Selecteer Maken.

    Schermopname van het deelvenster Functie maken met de optie Azure Blob Storage trigger en Velden voor nieuwe functie en pad gemarkeerd.

  6. Zodra de door de blob geactiveerde functie is gemaakt, selecteert u Code + Test. Gebruik de run.csx en function.proj van GitHub in de functie. function.proj bestaat niet standaard, dus selecteer de knop Uploaden om deze 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.
  7. 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 opslagaccountreferenties in de Azure Portal in de sectie Sleutels van uw Batch- en opslagaccount.

De functie activeren en resultaten ophalen

Upload de gewenste of alle gescande bestanden uit de map input_files op GitHub naar uw invoercontainer.

U kunt uw functie testen vanuit Azure Portal op de pagina Code + Test van uw functie.

  1. Selecteer Testen/uitvoeren op de pagina Code + Test .
  2. Voer het pad voor de invoercontainer in Hoofdtekst in op het tabblad Invoer .
  3. Selecteer Uitvoeren.

Na enkele seconden is het bestand met OCR toegevoegd aan de uitvoercontainer. Logboekgegevens worden naar het onderste venster uitgevoerd. Het bestand is dan zichtbaar en kan opgehaald worden in Storage Explorer.

U kunt de logboekinformatie ook vinden op de pagina Controleren :

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 naar uw lokale computer wilt downloaden, gaat u naar de uitvoercontainer in uw opslagaccount. Selecteer meer opties voor het gewenste bestand en selecteer vervolgens Downloaden.

Tip

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

Resources opschonen

Er worden kosten in rekening gebracht voor de pool terwijl de knooppunten worden uitgevoerd, zelfs als er geen taken zijn gepland. Wanneer u de pool niet meer nodig hebt, verwijdert u deze met de volgende stappen:

  1. Selecteer op de pagina Pools van uw Batch-account meer opties voor uw 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.