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

Z tego samouczka dowiesz się, jak wyzwolić zadanie usługi Batch przy użyciu Azure Functions. W tym artykule przedstawiono przykład, który pobiera dokumenty dodane do kontenera obiektów blob usługi Azure Storage, stosuje optyczne rozpoznawanie znaków (OCR) przy użyciu Azure Batch. Aby usprawnić przetwarzanie OCR, w tym przykładzie skonfigurowana jest funkcja platformy Azure, która uruchamia zadanie OCR usługi Batch za każdym razem, gdy plik jest dodawany do kontenera obiektów blob. Omawiane kwestie:

  • Użyj Azure Portal do tworzenia pul i zadań.
  • Tworzenie kontenerów obiektów blob i sygnatury 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

Logowanie do platformy Azure

Zaloguj się w witrynie Azure Portal.

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

W tej sekcji użyjesz Azure Portal do utworzenia puli usługi Batch i zadania usługi Batch, które uruchamia zadania OCR.

Tworzenie puli

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

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

    Zrzut ekranu przedstawiający stronę Pule na koncie usługi Batch z wyróżnionym przyciskiem Dodaj.

    1. Wprowadź identyfikator puli. W tym przykładzie nazwa puli ocr-pool.
    2. Wybierz wartość kanoniczną jako wydawcę.
    3. Wybierz pozycję 0001-com-ubuntu-server-jammy jako ofertę.
    4. Wybierz wartość 22_04-lts jako jednostkę SKU.
    5. Wybierz Standard_F2s_v2 - 2 vCPUs, 2 GB Memoryjako rozmiar maszyny wirtualnej w sekcji Rozmiar węzła .
    6. Ustaw pozycję Tryb w sekcji Skalowanie na stałe, a następnie wprowadź wartość 3 dla dedykowanych węzłów docelowych.
    7. Ustaw polecenie Uruchom zadanie na Włączone zadanie uruchamiania, a następnie wprowadź polecenie w wierszu polecenia/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". Pamiętaj, aby ustawić poziom podniesienia uprawnień jako autoużytkownik puli, Administracja, który umożliwia uruchamianie zadań dołączania poleceń za sudopomocą polecenia .
    8. Wybierz przycisk OK.

Tworzenie zadania

  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 wartości ocr-job.
    2. Wybierz ocr-pool pozycję Bieżąca pula lub dowolną nazwę wybraną dla puli.
    3. Wybierz przycisk OK.

Tworzenie kontenerów obiektów blob

W tym miejscu utworzysz kontenery obiektów blob, które przechowują pliki wejściowe i wyjściowe dla zadania usługi OCR Batch. W tym przykładzie kontener wejściowy ma nazwę input i jest miejscem, w którym wszystkie dokumenty bez funkcji 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ą funkcji OCR.

  1. Wyszukaj i wybierz pozycję Konta magazynu w Azure Portal.

  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 wyjściowego, 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 adres URL sygnatury dostępu współdzielonego obiektu blob , aby użyć go później dla funkcji.

    Zrzut ekranu przedstawiający stronę Tokeny dostępu współdzielonego z wyróżnioną listą rozwijaną Uprawnienia i przyciskiem 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 środowiska uruchomieniowego wybierz pozycję .NET. Ta przykładowa funkcja używa języka C# do korzystania z zestawu SDK platformy .NET usługi Batch.
    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>.

    Poniższy zrzut ekranu przedstawiający stronę Tworzenie aplikacji funkcji na karcie Podstawy przy użyciu przykładowych informacji.

    Zrzut ekranu przedstawiający stronę Tworzenie aplikacji funkcji na karcie Podstawy przy użyciu przykładowych informacji.

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

  3. W okienku Tworzenie funkcji wybierz Azure Blob Storage wyzwalacz.

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

  5. Wybierz przycisk Utwórz.

    Zrzut ekranu przedstawiający okienko Tworzenie funkcji z wyróżnioną opcją wyzwalacza Azure Blob Storage oraz polami nowej funkcji i ścieżki.

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

    • run.csx jest uruchamiany po dodaniu nowego obiektu blob do wejściowego kontenera obiektów blob.
    • function.proj wyświetla listę bibliotek zewnętrznych w kodzie funkcji, na przykład zestaw SDK platformy .NET usługi Batch.
  7. Zmień wartości symboli zastępczych zmiennych w funkcji run.csx pliku, Run() aby odzwierciedlić poświadczenia usługi Batch i magazynu. Poświadczenia konta usługi Batch i magazynu można znaleźć w Azure Portal w sekcji Klucze konta usługi Batch i magazynu.

Wyzwalanie funkcji i pobieranie wyników

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

Funkcję można przetestować z poziomu 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 obszarze Treść na karcie Dane wejściowe .
  3. Wybierz pozycję Uruchom.

Po kilku sekundach plik z zastosowaną funkcją OCR zostanie dodany do kontenera wyjściowego. Rejestruje dane wyjściowe w dolnej części okna. Plik jest następnie widoczny i można go pobrać na Eksplorator usługi Storage.

Możesz też 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 maszynę lokalną, przejdź do kontenera wyjściowego na koncie magazynu. Wybierz więcej opcji w żądanym pliku, a następnie wybierz pozycję Pobierz.

Porada

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 jeśli żadne zadania nie są zaplanowane. Jeśli pula nie jest już potrzebna, usuń ją, wykonując następujące kroki:

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

W przypadku usunięcia puli usuwane są również wszystkie dane wyjściowe zadań podrzędnych w węzłach. Pliki wyjściowe pozostają jednak na koncie magazynu. Gdy konto usługi Batch i konto magazynu nie będą już potrzebne, możesz również usunąć je.

Następne kroki

Aby zapoznać się z innymi przykładami planowania i przetwarzania obciążeń usługi Batch przy użyciu interfejsu API .NET, zobacz przykłady w witrynie GitHub.