Handledning: Utlösa ett batch-jobb med hjälp av 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. Du lär dig att:

  • Använd Azure-portalen 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 uppgiftsutförande.
  • Hämta utdatafiler.

Förutsättningar

Logga in på Azure

Logga in på Azure-portalen.

Skapa en Batch-pool och ett Batch-jobb med hjälp av Azure-portalen

I det här avsnittet använder du Azure-portalen för att skapa Batch-poolen och Batch-jobbet som kör OCR-uppgifter.

Skapa en pool

  1. Logga in på Azure-portalen med dina Azure-autentiseringsuppgifter.

  2. Skapa en pool genom att välja Pooler i det vänstra navigeringsfältet och välj sedan knappen Lägg till ovanför sökformuläret.

    Skärmbild av sidan Pooler i ett Batch-konto som visar knappen Lägg till.

    1. Ange ett pool-ID. I det här exemplet namnges poolen ocr-pool.
    2. Välj Canonical som utgivare.
    3. Välj 0001-com-ubuntu-server-jammy som erbjudande.
    4. Välj 22_04-lts som SKU.
    5. Välj Standard_F2s_v2 - 2 vCPUs, 2 GB Memory som VM-storlek i avsnittet Nodstorlek .
    6. Ange Läget i avsnittet Skala till Fast och ange 3 för de dedikerade målnoderna.
    7. 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"kommandoraden. Se till att ange elevationsnivån som Automatisk användare av pool, administratör, vilket gör att startuppgifter kan innehålla kommandon med sudo.
    8. Välj OK.

Skapa ett jobb

  1. Skapa ett jobb i poolen genom att välja Jobb i det vänstra navigeringsfältet och välj sedan knappen Lägg till ovanför sökformuläret.
    1. Ange ett jobb-ID. I det här exemplet används ocr-job.
    2. Välj ocr-pool för Aktuell pool eller vilket namn du har valt för din pool.
    3. Välj OK.

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 den plats 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.

  1. Sök efter och välj Lagringskonton i Azure-portalen.

  2. Välj ditt lagringskonto som är länkat till ditt Batch-konto.

  3. 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.

  4. 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.

  5. Välj Generera SAS-token och URL och kopiera blob-SAS-URL:en som ska användas senare för din funktion.

    Skärmbild av sidan Token för delad åtkomst som visar listrutan Behörigheter och knappen Generera SAS-token och URL.

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.

  1. Följ stegen i Skapa en funktion som utlöses av Azure Blob Storage för att skapa en funktion.

    1. Välj .NET för körningsstack. Den här exempelfunktionen använder C# för att dra nytta av Batch .NET SDK.
    2. På sidan Lagring använder du samma lagringskonto som du länkade till ditt Batch-konto.
    3. Välj Granska + Skapa > Skapa.

    Följande skärmbild av sidan Skapa funktionsapp på fliken Grundläggande med hjälp av exempelinformation.

    Skärmbild av sidan Skapa funktionsapp på fliken Grundläggande med hjälp av exempelinformation.

  2. I funktionen väljer du Funktioner i det vänstra navigeringsfältet och väljer Skapa.

  3. I fönstret Skapa funktion väljer du Azure Blob Storage-utlösare.

  4. 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 du anger namnet på din Blob-container.

  5. Välj Skapa.

    Skärmbild av fönstret Skapa funktion som markerar utlösaralternativet Azure Blob Storage och Fält för ny funktion och sökväg.

  6. När den blob-utlösta funktionen har skapats väljer du Kod + Test. Använd run.csx och function.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 en lista över de externa biblioteken i funktionskoden, till exempel Batch .NET SDK.
  7. Ändra platshållarvärdena för variablerna i funktionen Run() i run.csx-filen så att de återspeglar dina Batch- och lagringsuppgifter. Du hittar dina autentiseringsuppgifter för Batch- och lagringskontot i Azure-portalen 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 din funktion från Azure-portalen på sidan Kod + Test i funktionen.

  1. Välj Test/kör på sidan Kod + Test .
  2. Ange sökvägen för din indatacontainer i Brödtext på fliken Indata .
  3. Välj Kör.

Efter några sekunder läggs filen med OCR till i utdatacontainern. Logginformationen skickas till det nedre fönstret. Filen visas och kan sedan hämtas i 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/Råd

De nedladdade filerna kan sökas om de öppnas i en PDF-läsare.

Rensa resurser

Du faktureras för poolen medan noderna är igång, även om inga jobb har schemalagts. När du inte längre behöver poolen tar du bort den med följande steg:

  1. På sidan Pooler för ditt Batch-konto väljer du fler alternativ i poolen.
  2. Välj Ta bort.

När du tar bort poolen raderas alla aktivitetsutdata på noderna. Utdatafilerna finns dock 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 för att schemalägga och bearbeta Batch-arbetsbelastningar finns i exemplen på GitHub.