Självstudie: Utlösa ett Batch-jobb med Azure Functions
I den här självstudien får du lära dig hur du utlöser ett Batch-jobb med hjälp av Azure Functions. Den här artikeln går igenom ett exempel som tar dokument som lagts till i en Azure Storage-blobcontainer som tillämpar optisk teckenigenkänning (OCR) med hjälp av Azure Batch. För att effektivisera OCR-bearbetningen konfigurerar det här exemplet 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änd Azure Portal för att skapa pooler och jobb.
- Skapa blobcontainrar och en signatur för delad åtkomst (SAS).
- Skapa en blobutlöst Azure-funktion.
- Ladda upp indatafiler till Storage.
- Övervaka aktivitetskörning.
- Hämta utdatafiler.
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. Mer information om hur du skapar och länkar konton finns i Skapa ett Batch-konto.
Logga in på Azure
Logga in på Azure-portalen.
Skapa en Batch-pool och ett Batch-jobb med hjälp av Azure Portal
I det här avsnittet använder du Azure Portal för att skapa Batch-poolen och Batch-jobbet som kör OCR-uppgifter.
Skapa en pool
Logga in på Azure Portal med dina Azure-autentiseringsuppgifter.
Skapa en pool genom att välja Pooler i navigeringen till vänster och välj sedan knappen Lägg till ovanför sökformuläret.
- Ange ett pool-ID. I det här exemplet namnges poolen
ocr-pool
. - Välj kanonisk som utgivare.
- Välj 0001-com-ubuntu-server-jammy som erbjudande.
- Välj 22_04-lts som SKU.
- Välj
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
som VM-storlek i avsnittet Nodstorlek . - Ange Läget i avsnittet Skala till Fast och ange 3 för de dedikerade målnoderna.
- Ange Startaktivitet till Aktiverad startaktiviteten och ange 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"
på kommandoraden. Se till att ange höjdnivån som automatisk poolanvändare, Admin, vilket gör att startaktiviteter kan innehålla kommandon medsudo
. - Välj OK.
- Ange ett pool-ID. I det här exemplet namnges poolen
Skapa ett jobb
- Skapa ett jobb i poolen genom att välja Jobb i navigeringen till vänster och välj sedan knappen Lägg till ovanför sökformuläret.
- Ange ett jobb-ID. I det här exemplet används
ocr-job
. - Välj
ocr-pool
för Aktuell pool eller vilket namn du har valt för din pool. - Välj OK.
- Ange ett jobb-ID. I det här exemplet används
Skapa blobcontainrar
Här skapar du blobcontainrar som lagrar dina in- och utdatafiler för OCR Batch-jobbet. I det här exemplet namnges input
indatacontainern och är där alla dokument utan OCR ursprungligen laddas upp för bearbetning. Utdatacontainern heter output
och är där Batch-jobbet skriver bearbetade dokument med OCR.
Sök efter och välj Lagringskonton i Azure Portal.
Välj ditt lagringskonto som är länkat till ditt Batch-konto.
Välj Containrar i navigeringen till vänster och skapa 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 utdatacontainern genom att välja utdatacontainern. På sidan Token för delad åtkomst väljer du Skriv i listrutan Behörigheter . Inga andra behörigheter krävs.
Välj Generera SAS-token och URL och kopiera blob-SAS-URL:en som ska användas senare för funktionen.
Skapa en Azure-funktion
I det här avsnittet skapar du den Azure-funktion som utlöser OCR Batch-jobbet när en fil laddas upp till din indatacontainer.
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. Den här exempelfunktionen använder C# för att dra nytta av Batch .NET SDK.
- På sidan Lagring använder du samma lagringskonto som du länkade till ditt Batch-konto.
- Välj Granska + Skapa > skapa.
Följande skärmbild av sidan Skapa funktionsapp på fliken Grunder med hjälp av exempelinformation.
I funktionen väljer du Funktioner i navigeringen till vänster och väljer Skapa.
I fönstret Skapa funktion väljer du Azure Blob Storage utlösare.
Ange ett namn för funktionen i Ny funktion. I det här exemplet är namnet OcrTrigger. Ange sökvägen som
input/{name}
, där indata i namnet på blobcontainern.Välj Skapa.
När den blobutlösta funktionen har skapats väljer du Kod + Test.
run.csx
Använd ochfunction.proj
från GitHub i funktionen.function.proj
finns inte som standard, så välj knappen Ladda upp för att ladda upp den till din utvecklingsarbetsyta.-
run.csx
körs när en ny blob läggs till i din indatablobcontainer. -
function.proj
visar de externa biblioteken i funktionskoden, till exempel Batch .NET SDK.
-
Ändra platshållarvärdena för variablerna i
Run()
filensrun.csx
funktion så att de återspeglar dina Batch- och lagringsuppgifter. Du hittar dina autentiseringsuppgifter för Batch- och lagringskontot i Azure Portal i avsnittet Nycklar i batch- och lagringskontot.
Utlös funktionen och hämta resultat
Ladda upp alla eller alla skannade filer från input_files
katalogen på GitHub till din indatacontainer.
Du kan testa funktionen från Azure Portal på sidan Kod + test i funktionen.
- Välj Testa/kör på sidan Kod + test .
- Ange sökvägen för din indatacontainer i Brödtext på fliken Indata .
- Välj Kör.
Efter några sekunder läggs filen med OCR till i utdatacontainern. Logginformationen visas i det nedre fönstret. Filen visas och kan sedan hämtas på Storage Explorer.
Du kan också hitta logginformationen på sidan Övervaka :
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 till den lokala datorn går du till utdatacontainern i ditt lagringskonto. Välj fler alternativ för den fil du vill använda och välj sedan Ladda ned.
Tips
De nedladdade filerna kan sökas om de öppnas i en PDF-läsare.
Rensa resurser
Du debiteras för poolen medan noderna körs, även om inga jobb har schemalagts. När du inte längre behöver poolen tar du bort den med följande steg:
- På sidan Pooler för ditt Batch-konto väljer du fler alternativ i 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 det inte längre behövs kan du även ta bort Batch-kontot och lagringskontot.
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.