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
- 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.
- Batch Explorer.
- Azure Storage Explorer.
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
- Meld u aan bij Batch Explorer met uw Azure-referenties.
- Maak een pool door Pools aan de linkerkant te selecteren en klik vervolgens op de knop Toevoegen boven het zoekformulier.
- Kies een id en weergavenaam. In dit voorbeeld gebruiken we
ocr-pool. - Stel het schaaltype in op Vaste grootte en stel het toegewezen aantal knooppunten in op 3.
- Selecteer Ubuntuserver > 18.04-lts als het besturingssysteem.
- Kies
Standard_f2s_v2als de grootte van de virtuele machine. - 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 metsudo. - Selecteer OK.
- Kies een id en weergavenaam. In dit voorbeeld gebruiken we
Een taak maken
- Maak een taak in de pool door Taken aan de linkerkant te selecteren en klik vervolgens op de knop Toevoegen boven het zoekformulier.
- Kies een id en weergavenaam. In dit voorbeeld gebruiken we
ocr-job. - Stel de pool in op
ocr-poolof de naam die u voor uw pool hebt gekozen. - Selecteer OK.
- Kies een id en weergavenaam. In dit voorbeeld gebruiken we
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.
- Meld u aan bij Storage Explorer met uw Azure-referenties.
- 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.
- 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.
- Volg de stappen in Een functie maken die wordt geactiveerd door Azure Blob Storage om een functie te maken.
- Kies .NET als Runtimestack. We schrijven onze functie in C# om gebruik te maken van de .NET SDK voor de Batch.
- Wanneer u wordt gevraagd om een opslagaccount onder Hosting, gebruikt u hetzelfde opslagaccount dat u aan uw Batch-account hebt gekoppeld.
- 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).
- Zodra de door blob geactiveerde functie is gemaakt, selecteert u Code + Testen. Gebruik de
run.csxen van GitHub in de functiefunction.proj.function.projbestaat niet standaard, dus selecteer de knop Upload te uploaden naar uw ontwikkelwerkruimte.run.csxwordt uitgevoerd wanneer een nieuwe blob wordt toegevoegd aan uw blobcontainer voor invoer.function.projgeeft de externe bibliotheken in uw Functiecode weer, bijvoorbeeld de Batch .NET SDK.
- Wijzig de voorbeeldwaarden van de variabelen in de
Run()-functie van hetrun.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:
- Selecteer in de accountweergave Pools en de naam van de pool.
- 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.