Udostępnij przez


Samouczek: wyzwalanie zadania usługi Batch przy użyciu usługi Azure Functions

Z tego samouczka dowiesz się, jak wyzwolić zadanie usługi Batch przy użyciu usługi Azure Functions. W tym artykule przedstawiono przykład, w którym dokumenty dodane do kontenera obiektów blob usługi Azure Storage są przetwarzane za pomocą optycznego rozpoznawania znaków (OCR) przy użyciu usługi Azure Batch. Aby usprawnić przetwarzanie OCR, w tym przykładzie konfigurujemy funkcję platformy Azure, która uruchamia zadanie OCR Batch za każdym razem, gdy plik jest dodawany do kontenera obiektów blob. Uczysz się, jak:

  • Tworzenie pul i zadań przy użyciu witryny Azure Portal.
  • Utwórz kontenery obiektów blob i sygnaturę dostępu współdzielonego (SAS).
  • Utwórz funkcję platformy Azure wyzwalaną przez obiekt blob.
  • Przekazywanie plików wejściowych do usługi Storage.
  • Monitorowanie wykonywania zadań.
  • Pobieranie plików wyjściowych.

Wymagania wstępne

Zaloguj się na platformie Azure

Zaloguj się do witryny Azure Portal.

Tworzenie puli usługi Batch i zadania usługi Batch przy użyciu witryny Azure Portal

W tej sekcji użyjesz portalu Azure do utworzenia puli Batch oraz zadania Batch, które będzie wykonywać zadania OCR.

Utwórz pulę

  1. Zaloguj się do witryny Azure Portal przy użyciu poświadczeń platformy Azure.

  2. Utwórz pulę, wybierając pozycję Pule w obszarze nawigacji po lewej stronie, a następnie wybierając przycisk Dodaj nad formularzem wyszukiwania.

    Zrzut ekranu przedstawiający stronę Pule na koncie usługi Batch, która wyróżnia przycisk Dodaj.

    1. Wprowadź identyfikator puli. W tym przykładzie nazwa puli ocr-pool.
    2. Wybierz Canonical jako Wydawcę.
    3. Wybierz 0001-com-ubuntu-server-jammy jako Ofertę.
    4. Wybierz 22_04-lts jako SKU.
    5. Wybierz Standard_F2s_v2 - 2 vCPUs, 2 GB Memory jako rozmiar maszyny wirtualnej w sekcji Rozmiar węzła.
    6. Ustaw wartość Tryb w sekcji Skalowanie na stałe, a następnie wprowadź wartość 3 dla dedykowanych węzłów docelowych.
    7. Ustaw pozycję Uruchom zadanie na Włącz zadanie uruchamiania, a następnie wprowadź polecenie /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" w wierszu polecenia. Pamiętaj, aby ustawić poziom uprawnień jako autoużytkownik puli, administrator, co pozwala na uwzględnienie poleceń w zadaniach startowych za pomocą sudo.
    8. Kliknij przycisk OK.

Utwórz pracę

  1. Utwórz zadanie w puli, wybierając pozycję Zadania w obszarze nawigacji po lewej stronie, a następnie wybierz przycisk Dodaj nad formularzem wyszukiwania.
    1. Wprowadź identyfikator zadania. W tym przykładzie użyto ocr-job.
    2. Wybierz ocr-pool dla Bieżąca pula lub dowolną nazwę wybraną dla puli.
    3. Kliknij przycisk OK.

Tworzenie kontenerów BLOB

W tym miejscu utworzysz kontenery blobów przechowujące pliki wejściowe i wyjściowe dla zadania OCR Batch. W tym przykładzie kontener wejściowy nosi nazwę input i jest miejscem, w którym wszystkie dokumenty bez OCR są początkowo przekazywane do przetwarzania. Kontener wyjściowy ma nazwę output i jest miejscem, w którym zadanie usługi Batch zapisuje przetworzone dokumenty za pomocą OCR.

  1. Wyszukaj i wybierz Konta magazynu w portalu Azure.

  2. Wybierz konto magazynu połączone z kontem usługi Batch.

  3. Wybierz pozycję Kontenery w obszarze nawigacji po lewej stronie i utwórz dwa kontenery obiektów blob (jeden dla plików wejściowych, jeden dla plików wyjściowych), wykonując kroki opisane w temacie Tworzenie kontenera obiektów blob.

  4. Utwórz sygnaturę dostępu współdzielonego dla kontenera danych wyjściowych, wybierając kontener wyjściowy, a na stronie Tokeny dostępu współdzielonego wybierz pozycję Zapisz na liście rozwijanej Uprawnienia . Żadne inne uprawnienia nie są niezbędne.

  5. Wybierz pozycję Generuj token SAS i adres URL, a następnie skopiuj Blob SAS URL do późniejszego użycia w funkcji.

    Zrzut ekranu strony z tokenami dostępu współdzielonego, na którym wyróżniono listę rozwijaną Uprawnienia oraz przycisk Generuj token SAS i adres URL.

Tworzenie funkcji platformy Azure

W tej sekcji utworzysz funkcję platformy Azure, która wyzwala zadanie usługi OCR Batch za każdym razem, gdy plik zostanie przekazany do kontenera wejściowego.

  1. Wykonaj kroki opisane w temacie Tworzenie funkcji wyzwalanej przez usługę Azure Blob Storage , aby utworzyć funkcję.

    1. W przypadku stosu uruchomieniowego wybierz .NET. Ta przykładowa funkcja używa języka C# do wykorzystania Batch .NET SDK.
    2. Na stronie Magazyn użyj tego samego konta magazynu, które jest połączone z kontem usługi Batch.
    3. Wybierz pozycję Przejrzyj i utwórz > Utwórz.

    Poniższy zrzut ekranu przedstawia stronę Tworzenie aplikacji funkcji na karcie Podstawy z użyciem przykładowych danych.

    Zrzut ekranu strony

  2. W funkcji wybierz pozycję Funkcje w obszarze nawigacji po lewej stronie i wybierz pozycję Utwórz.

  3. W okienku Tworzenie funkcji wybierz pozycję Wyzwalacz usługi Azure Blob Storage.

  4. Wprowadź nazwę funkcji w nowej funkcji. W tym przykładzie nazwa to OcrTrigger. Wprowadź ścieżkę jako input/{name}, gdzie dane wejściowe są nazwą kontenera obiektów blob.

  5. Wybierz Utwórz.

    Zrzut ekranu przedstawiający okienko Tworzenie funkcji, z wyróżnioną opcją wyzwalacza Azure Blob Storage oraz nowymi polami Funkcja i Ścieżka.

  6. Po utworzeniu funkcji wyzwalanej przez obiekt blob wybierz pozycję Kod + testowanie. Użyj polecenia run.csx i function.proj z usługi GitHub w funkcji. function.proj nie istnieje domyślnie, więc wybierz przycisk Przekaż , aby przekazać go do obszaru roboczego programowania.

    • run.csx jest uruchamiany, gdy do wejściowego kontenera blobów zostanie dodany nowy blob.
    • function.proj Wyświetla listę bibliotek zewnętrznych w kodzie funkcji, na przykład Batch .NET SDK.
  7. Zmień wartości zastępcze zmiennych w funkcji Run() pliku run.csx, aby odzwierciedlały poświadczenia usługi Batch i usługi magazynowej. Poświadczenia usługi Batch i konta magazynu można znaleźć w witrynie Azure Portal w sekcji Klucze konta usługi Batch i magazynu.

Wyzwalanie funkcji i pobieranie wyników

Przekaż dowolne lub wszystkie zeskanowane pliki z katalogu input_files w usłudze GitHub do kontenera wejściowego.

Funkcję można przetestować w witrynie Azure Portal na stronie Kod i testowanie funkcji.

  1. Wybierz pozycję Testuj/uruchom na stronie Kod i test .
  2. Wprowadź ścieżkę kontenera wejściowego w polu Treść na karcie Dane wejściowe .
  3. Wybierz Uruchom.

Po kilku sekundach plik z zastosowaniem OCR zostanie dodany do kontenera wyjściowego. Informacje dziennika są wyprowadzane do dolnego okna. Plik jest następnie widoczny i możliwy do pobrania w Eksploratorze usługi Storage.

Alternatywnie możesz znaleźć informacje dziennika na stronie Monitorowanie :

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

Aby pobrać pliki wyjściowe na komputer lokalny, przejdź do kontenera wyjściowego na koncie magazynowym. Wybierz więcej opcji w żądanym pliku, a następnie wybierz pozycję Pobierz.

Tip

Pobrane pliki można przeszukiwać, jeśli są otwierane w czytniku plików PDF.

Czyszczenie zasobów

Opłaty są naliczane za pulę, gdy węzły są uruchomione, nawet gdy żadne zadania nie są zaplanowane. Jeśli pula nie jest już potrzebna, usuń ją, wykonując następujące czynności:

  1. Na stronie Pule konta usługi Batch wybierz więcej opcji w puli.
  2. Wybierz Usuń.

Gdy usuniesz pulę, wszystkie dane wyjściowe zadań na węzłach zostaną usunięte. Jednak pliki wyjściowe pozostają na koncie magazynowym. Gdy konto usługi Batch i konto magazynu nie będą już potrzebne, możesz je również usunąć.

Następne kroki

Aby uzyskać więcej przykładów użycia interfejsu API platformy .NET do planowania i przetwarzania obciążeń usługi Batch, zobacz przykłady w witrynie GitHub.