다음을 통해 공유


자습서: Azure Functions를 사용하여 Batch 작업 트리거

이 자습서에서는 Azure Functions를 사용하여 Batch 작업을 트리거하는 방법을 알아봅니다. 이 문서에서는 Azure Batch를 사용하여 OCR(광학 문자 인식)을 적용하는 Azure Storage Blob 컨테이너에 추가된 문서를 사용하는 예제를 안내합니다. OCR 처리를 간소화하기 위해 이 예제에서는 파일이 Blob 컨테이너에 추가 될 때마다 Batch OCR 작업을 실행하는 Azure 함수를 구성합니다. 당신은 다음을 배우게 됩니다:

  • Azure Portal을 사용하여 풀 및 작업을 만듭니다.
  • Blob 컨테이너 및 SAS(공유 액세스 서명)를 만듭니다.
  • Blob 트리거 함수 Azure Function을 만듭니다.
  • 입력 파일을 Storage에 업로드합니다.
  • 태스크 실행을 모니터링합니다.
  • 출력 파일을 검색합니다.

필수 조건

Azure에 로그인

Azure Portal에 로그인합니다.

Azure Portal을 사용하여 Batch 풀 및 Batch 작업 만들기

본 섹션에서는 애저 포털을 사용하여 OCR 작업을 실행하는 Batch 풀과 Batch 작업을 만듭니다.

풀 만들기

  1. Azure 자격 증명을 사용하여 Azure Portal에 로그인합니다.

  2. 왼쪽 탐색 영역에서 풀을 선택하여 을 만든 다음 검색 양식 위에 있는 추가 단추를 선택합니다.

    Batch 계정의 풀 페이지에서 추가 단추를 강조 표시한 스크린샷

    1. 풀 ID를 입력합니다. 이 예제에서는 풀 ocr-pool이름을 지정합니다.
    2. 표준으로 출판사를 선택합니다.
    3. 0001-com-ubuntu-server-jammy일괄 항목으로 선택합니다.
    4. Sku22_04-lts를 선택합니다.
    5. Standard_F2s_v2 - 2 vCPUs, 2 GB Memory 크기 섹션에서 VM 크기로 선택합니다.
    6. 크기 조정 섹션의 모드고정으로 설정하고 대상 전용 노드에 대해 3을 입력합니다.
    7. 시작 태스크시작 작업을 사용하도록 설정하고 /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"에 명령을 입력합니다. 권한 상승 수준을풀 자동 사용자, 관리자로 설정해야 합니다. 그러면 시작 태스크에 명령을 포함할 수 있습니다sudo.
    8. 확인을 선택합니다.

작업 생성

  1. 왼쪽 탐색 메뉴에서 작업을 선택하여 풀에서 작업을 만든 다음 검색 양식 위의 추가 단추를 선택합니다.
    1. 작업 ID를 입력합니다. 이 예제에서는 ocr-job를 사용합니다.
    2. ocr-pool에 대해 현재 풀 또는 사용자가 지정한 풀 이름을 선택합니다.
    3. 확인을 선택합니다.

Blob 컨테이너 만들기

여기서는 OCR Batch 작업에 대한 입력 및 출력 파일을 저장하는 Blob 컨테이너를 만듭니다. 이 예제에서는 입력 컨테이너의 이름이 지정 input 되며 OCR이 없는 모든 문서가 처음에 처리를 위해 업로드되는 위치입니다. 출력 컨테이너의 이름은 output Batch 작업에서 처리된 문서를 OCR로 쓰는 위치입니다.

  1. Azure Portal에서 Storage 계정을 검색하고 선택합니다.

  2. Batch 계정에 연결된 스토리지 계정을 선택합니다.

  3. 왼쪽 탐색에서 컨테이너를 선택하고 Blob 컨테이너 만들기의 단계에 따라 두 개의 Blob 컨테이너(입력 파일용, 출력 파일용)를 만듭니다.

  4. 출력 컨테이너를 선택하여 출력 컨테이너에 대한 공유 액세스 서명을 만들고 공유 액세스 토큰 페이지에서 사용 권한 드롭다운에서 쓰기를 선택합니다. 다른 권한은 필요하지 않습니다.

  5. SAS 토큰 및 URL 생성을 선택하고 나중에 함수에 사용할 Blob SAS URL을 복사합니다.

    사용 권한 드롭다운 및 SAS 토큰 생성 및 URL 단추를 강조 표시하는 공유 액세스 토큰 페이지의 스크린샷.

Azure Function 만들기

이 섹션에서는 파일이 입력 컨테이너에 업로드될 때마다 OCR Batch 작업을 트리거하는 Azure Function을 만듭니다.

  1. Azure Blob Storage에 의해 트리거되는 함수 만들기의 단계에 따라 함수를 만듭니다.

    1. 런타임 스택의 경우 .NET을 선택합니다. 이 예제 함수는 C#을 사용하여 Batch .NET SDK를 활용합니다.
    2. 스토리지 페이지에서 Batch 계정에 연결한 것과 동일한 스토리지 계정을 사용합니다.
    3. 검토 + 만들기 > 만들기를 선택합니다.

    다음 스크린샷은 예제 정보를 사용하여 기본 탭함수 앱 만들기 페이지입니다.

    예제 정보를 사용하는 기본 사항 탭의 함수 앱 만들기 페이지 스크린샷

  2. 함수의 왼쪽 탐색 영역에서 함수 를 선택하고 만들기를 선택합니다.

  3. 함수 만들기 창에서 Azure Blob Storage 트리거를 선택합니다.

  4. 새 함수에 함수의 이름을 입력합니다. 이 예제에서 이름은 OcrTrigger입니다. 경로를 input/{name}에 입력합니다. 여기서 input/{name}은 사용자의 Blob 컨테이너 이름입니다.

  5. 선택하고생성합니다.

    Azure Blob Storage 트리거 옵션과 새 함수 및 경로 필드를 강조 표시하는 함수 만들기 창의 스크린샷.

  6. Blob 트리거 함수가 만들어지면 Code + Test를 선택합니다. 함수에서 GitHub의 run.csxfunction.proj를 사용합니다. function.proj 는 기본적으로 존재하지 않으므로 업로드 단추를 선택하여 개발 작업 영역에 업로드합니다.

    • run.csx 는 새 Blob이 입력 Blob 컨테이너에 추가되면 실행됩니다.
    • function.proj 에는 함수 코드의 외부 라이브러리(예: Batch .NET SDK)가 나열됩니다.
  7. 파일 Run()의 함수 run.csx에서 변수의 자리 표시자 값을 Batch 및 저장소 자격 증명을 반영하도록 변경합니다. Batch 및 스토리지 계정의 섹션에서 Azure Portal에서 Batch 및 스토리지 계정 자격 증명을 찾을 수 있습니다.

함수 트리거 및 결과 검색

GitHub에 있는 input_files 디렉터리에서 스캔된 파일을 하나 또는 모두 입력 컨테이너에 업로드합니다.

함수의 코드 + 테스트 페이지에서 Azure Portal에서 함수를 테스트할 수 있습니다.

  1. 코드 + 테스트 페이지에서 테스트/실행을 선택합니다.
  2. 입력 탭의본문에 입력 컨테이너의 경로를 입력합니다.
  3. 실행을 선택합니다.

몇 초 후에 OCR이 적용된 파일이 출력 컨테이너에 추가됩니다. 아래쪽 창에 정보 출력을 기록합니다. 그런 다음 스토리지 탐색기에서 파일을 표시하고 검색할 수 있습니다.

또는 모니터 페이지에서 로그 정보를 찾을 수 있습니다.

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

로컬 컴퓨터에 출력 파일을 다운로드하려면 스토리지 계정의 출력 컨테이너로 이동합니다. 원하는 파일에서 더 많은 옵션을 선택한 다음 다운로드를 선택합니다.

팁 (조언)

PDF 판독기에서 열면 다운로드한 파일을 검색할 수 있습니다.

자원을 정리하세요

작업이 예약되지 않은 경우에도 노드가 실행되는 동안 풀에 대한 요금이 청구됩니다. 풀이 더 이상 필요하지 않은 경우 다음 단계를 수행하여 삭제합니다.

  1. Batch 계정의 페이지에서 풀에 대한 추가 옵션을 선택합니다.
  2. 을 선택하고을 삭제합니다.

풀을 삭제하면 노드의 모든 태스크 출력이 삭제됩니다. 그러나 출력 파일은 스토리지 계정에 남아 있습니다. 더 이상 필요하지 않은 경우 Batch 계정 및 스토리지 계정을 삭제할 수도 있습니다.

다음 단계

.NET API를 사용하여 Batch 워크로드를 예약하고 처리하는 방법에 대한 자세한 예제는 GitHub의 샘플을 참조하세요.