Självstudie: Utlösa ett Batch-jobb med hjälp av Azure Functions
I den här självstudien lär du dig att utlösa ett Batch-jobb med hjälp av Azure Functions. Vi går igenom ett exempel där dokument som läggs till i en Azure Storage-blobcontainer har optisk teckenläsning (OCR) tillämpat på dem via Azure Batch. För att effektivisera OCR-bearbetningen konfigurerar vi en Azure-funktion som kör ett Batch OCR-jobb varje gång en fil läggs till i blobcontainern. Lär dig att:
- Använda Batch Explorer för att skapa pooler och jobb
- Använd Storage Explorer för att skapa blobcontainrar och en signatur för delad åtkomst (SAS)
- Skapa en blobutlöst Azure-funktion
- ladda upp indatafiler till Storage
- övervaka körningen av uppgiften
- hämta utdatafilerna.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Ett Azure Batch-konto och ett länkat Azure Storage-konto. Se Skapa ett Batch-konto för mer information om hur du skapar och länkar konton.
- Batch Explorer.
- Azure Storage Explorer.
Logga in på Azure
Logga in på Azure-portalen.
Skapa en Batch-pool och ett Batch-jobb med Batch Explorer
I det här avsnittet ska du använda Batch Explorer för att skapa Batch-poolen och Batch-jobbet som ska köra OCR-uppgifter.
Skapa en pool
- Logga in på Batch Explorer azure-autentiseringsuppgifter.
- Skapa en pool genom att välja Pooler i det vänstra sidofältet och sedan knappen Lägg till ovanför sökformuläret.
- Välj ett ID och visningsnamn. Vi använder för det
ocr-poolhär exemplet. - Ange skalningstypen till Fast storlek och ange antalet dedikerade noder till 3.
- Välj Ubuntuserver > 18.04-lts som operativsystem.
- Välj
Standard_f2s_v2som storlek på den virtuella datorn. - Aktivera startaktiviteten och lägg till kommandot
/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". Se till att ange användaridentiteten som Uppgiftsanvändare (Admin), vilket gör att startaktiviteter kan innehålla kommandon medsudo. - Välj OK.
- Välj ett ID och visningsnamn. Vi använder för det
Skapa ett jobb
- Skapa ett jobb i poolen genom att välja Jobb i det vänstra sidofältet och sedan knappen Lägg till ovanför sökformuläret.
- Välj ett ID och visningsnamn. Vi använder för det
ocr-jobhär exemplet. - Ange poolen till
ocr-pool, eller det namn som du har valt för din pool. - Välj OK.
- Välj ett ID och visningsnamn. Vi använder för det
Skapa blobcontainrar
Här skapar du blobcontainrar som lagrar dina indata- och utdatafiler för OCR Batch-jobbet. I det här exemplet heter indatacontainern och är den plats där input alla dokument utan OCR först laddas upp för bearbetning. Utdatacontainern output heter och är den plats där Batch-jobbet skriver bearbetade dokument med OCR.
- Logga in på Storage Explorer dina Azure-autentiseringsuppgifter.
- Med hjälp av lagringskontot som är länkat till batchkontot skapar du två blobcontainrar (en för indatafiler, en för utdatafiler) genom att följa stegen i Skapa en blobcontainer.
- Skapa en signatur för delad åtkomst för din utdatacontainer i Storage Explorer genom att högerklicka på utdatacontainern och välja Hämta signatur för delad åtkomst.... Under Behörigheter väljer du Skriv. Inga andra behörigheter krävs.
Skapa en Azure-funktion
I det här avsnittet skapar du Azure-funktionen som utlöser OCR Batch-jobbet när en fil laddas upp till indatacontainern.
- Följ stegen i Skapa en funktion som utlöses av Azure Blob Storage för att skapa en funktion.
- För körningsstack väljer du .NET. Vi skriver vår funktion i C# för att utnyttja Batch .NET SDK.
- När du tillfrågas om ett lagringskonto under Värd använder du samma lagringskonto som du länkade till Batch-kontot.
- När du skapar Azure Blob Storage-kontoutlösaren måste du ange sökvägen
input/{name}som (så att den matchar namnet på din indatacontainer).
- När den blobutlösta funktionen har skapats väljer du Kod + test. Använd
run.csxochfunction.projfrån GitHub i funktionen .function.projfinns inte som standard, så välj knappen Upload för att ladda upp den till utvecklingsarbetsytan.run.csxkörs när en ny blob läggs till i blobcontainern för indata.function.projlistar de externa biblioteken i funktionskoden, till exempel Batch .NET SDK.
- Ändra platshållarvärdena för variablerna i -funktionen i
Run()filen så att derun.csxåterspeglar dina autentiseringsuppgifter för Batch och storage. Du hittar autentiseringsuppgifterna för Batch- och lagringskontot Azure Portal i avsnittet Nycklar för Batch-kontot.- Hämta autentiseringsuppgifterna för Batch- och lagringskontot Azure Portal i avsnittet Nycklar för Batch-kontot.
Utlösa funktionen och hämta resultat
Upload någon eller alla skannade filer från katalogen på GitHub till input_files indatacontainern. Övervaka Batch Explorer att bekräfta att en uppgift läggs till ocr-pool för varje fil. Efter några sekunder läggs filen med OCR tillämpad till i utdatacontainern. Filen visas sedan och kan hämtas på Storage Explorer.
Dessutom kan du titta på loggfilen längst ned i Azure Functions-webbredigeringsfönstret, där du ser meddelanden som dessa för varje fil som du laddar upp till din indatacontainer:
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>...
Om du vill ladda ned utdatafilerna Storage Explorer till den lokala datorn väljer du först de filer som du vill använda och väljer sedan Ladda ned i det översta menyfliksområdet.
Tips
De nedladdade filerna är sökbara om de öppnas i en PDF-läsare.
Rensa resurser
Du debiteras för poolen medan noderna körs, även om inga jobb är schemalagda. När du inte längre behöver poolen tar du bort den med följande steg:
- I kontovyn väljer du Pooler och namnet på poolen.
- Välj Ta bort.
När du tar bort poolen raderas alla aktivitetsutdata på noderna. Utdatafilerna ligger däremot kvar i lagringskontot. När batchkontot och lagringskontot inte längre behövs kan du också ta bort det.
Nästa steg
Fler exempel på hur du använder .NET API till att schemalägga och bearbeta Batch-arbetsbelastningar finns i exemplen på GitHub.