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

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

  1. Logga in på Batch Explorer azure-autentiseringsuppgifter.
  2. 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.
    1. Välj ett ID och visningsnamn. Vi använder för det ocr-pool här exemplet.
    2. Ange skalningstypen till Fast storlek och ange antalet dedikerade noder till 3.
    3. Välj Ubuntuserver > 18.04-lts som operativsystem.
    4. Välj Standard_f2s_v2 som storlek på den virtuella datorn.
    5. 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 med sudo .
    6. Välj OK.

Skapa ett jobb

  1. 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.
    1. Välj ett ID och visningsnamn. Vi använder för det ocr-job här exemplet.
    2. Ange poolen till ocr-pool , eller det namn som du har valt för din pool.
    3. Välj OK.

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.

  1. Logga in på Storage Explorer dina Azure-autentiseringsuppgifter.
  2. 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.
  3. 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.

  1. Följ stegen i Skapa en funktion som utlöses av Azure Blob Storage för att skapa en funktion.
    1. För körningsstack väljer du .NET. Vi skriver vår funktion i C# för att utnyttja Batch .NET SDK.
    2. När du tillfrågas om ett lagringskonto under Värd använder du samma lagringskonto som du länkade till Batch-kontot.
    3. 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).
  2. När den blobutlösta funktionen har skapats väljer du Kod + test. Använd run.csx och function.proj från GitHub i funktionen . function.projfinns inte som standard, så välj knappen Upload för att ladda upp den till utvecklingsarbetsytan.
    • run.csx körs när en ny blob läggs till i blobcontainern för indata.
    • function.proj listar de externa biblioteken i funktionskoden, till exempel Batch .NET SDK.
  3. Ändra platshållarvärdena för variablerna i -funktionen i Run() filen så att de run.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:

  1. I kontovyn väljer du Pooler och namnet på poolen.
  2. 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.