Delen via


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, optische tekenherkenning (OCR) worden toegepast met behulp van Azure Batch. Als u de OCR-verwerking wilt stroomlijnen, configureert dit voorbeeld een Azure-functie waarmee een Batch OCR-taak wordt uitgevoerd telkens wanneer een bestand wordt toegevoegd aan de blobcontainer. U leert het volgende:

  • Gebruik het Azure-portaal om pools en taken te maken.
  • Blobcontainers en een SAS (Shared Access Signature) maken.
  • Een door een blob geactiveerde Azure-functie maken.
  • Invoerbestanden uploaden naar Storage.
  • Taakuitvoering bewaken.
  • Uitvoerbestanden ophalen.

Vereiste voorwaarden

  • 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 en koppelen voor meer informatie over het maken en koppelen van accounts.

Aanmelden bij Azure

Meld u aan bij het Azure-portaal.

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

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

Een pool maken

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

  2. Maak een pool door Pools te selecteren in de navigatie 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-poolgenoemd.
    2. Selecteer Canonical als Uitgever.
    3. Selecteer 0001-com-ubuntu-server-jammy als de 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 de modus in de sectie Schaal in op Vast en voer 3 in voor de toegewezen doelknooppunten.
    7. Stel de begintaak in op De begintaak inschakelen 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 de opdrachtregel in. Zorg ervoor dat u het hoogteniveau instelt als automatische gebruikersgroep, beheerder, waarmee u taken kunt starten met opdrachten met sudo.
    8. Kies OK.

Een taak maken

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

Blobcontainers 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 en worden alle documenten zonder OCR in eerste instantie geüpload voor verwerking. De uitvoercontainer heeft de naam output en is de plaats waar de Batch-taak verwerkte documenten schrijft met OCR.

  1. Zoek en selecteer Opslagaccounts in 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 te volgen bij Een blobcontainer maken.

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

  5. Selecteer SAS-token en URL genereren en kopieer de BLob-SAS-URL om later voor uw functie te gebruiken.

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

Een Azure-functie maken

In deze sectie maakt u de Azure-functie waarmee de OCR Batch-taak wordt geactiveerd 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 voor 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 + Maken > Maken.

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

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

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

  3. Selecteer in het deelvenster Functie maken de 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 'invoer' de naam is van uw Blob-container.

  5. Klik op Creëren.

    Schermopname van het deelvenster Functie maken waarin de azure Blob Storage-triggeroptie en de velden Nieuwe functie en pad zijn gemarkeerd.

  6. Zodra de door de blob geactiveerde functie is gemaakt, selecteert u Code + Test. Gebruik de run.csx en function.proj vanuit GitHub in de functie. function.proj bestaat niet standaard. Selecteer daarom de knop Uploaden om deze te uploaden naar uw ontwikkelwerkruimte.

    • run.csx wordt uitgevoerd wanneer een nieuwe blob wordt toegevoegd aan uw invoerblobcontainer.
    • function.proj bevat de externe bibliotheken in uw functiecode, bijvoorbeeld de Batch .NET SDK.
  7. Wijzig de waarden van de tijdelijke aanduidingen van de variabelen in de Run() functie van het run.csx bestand om uw Batch- en opslagreferenties weer te geven. U vindt de referenties van uw Batch- en opslagaccount in de Azure-portal in de sectie Sleutels.

De functie activeren en resultaten ophalen

Upload een of alle gescande bestanden uit de input_files map 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 in voor de invoercontainer in de hoofdtekst op het tabblad Invoer .
  3. Selecteer Voeruit.

Na enkele seconden wordt het bestand waarop OCR is toegepast, toegevoegd aan de uitvoercontainer. Logboekinformatie wordt uitgevoerd naar het onderste venster. Het bestand is vervolgens zichtbaar en ophaalbaar in Storage Explorer.

U kunt ook de logboekinformatie vinden op de pagina 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>...

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.

Hint

De gedownloade bestanden kunnen worden doorzocht als ze worden geopend in een PDF-lezer.

De hulpbronnen opschonen

Er worden kosten in rekening gebracht voor de pool terwijl de knooppunten actief zijn, zelfs als er geen opdrachten 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 dit niet meer nodig hebt, kunt u ook het Batch-account en het opslagaccount verwijderen.

Volgende stappen

Zie de voorbeelden op GitHub voor meer voorbeelden van het gebruik van de .NET-API voor het plannen en verwerken van Batch-workloads.