이 시나리오를 사용하면 송장, 영수증 등과 같은 작은 단일 페이지 문서에서 최상의 인식 결과를 얻을 수 있습니다. 애플리케이션을 App Service에 배포하는 과정은 여러 단계로 이루어집니다.
- 사전 요구 사항에 따라 로컬 컴퓨터와 앱 인스턴스 준비하기
- 애플리케이션을 배포하기 전에 사전 준비 단계 수행하기
- App Service에서 애플리케이션 배포 및 실행하기
사전 요구 사항
로컬 컴퓨터
- Azure용 애플리케이션 개발 모듈이 포함된 Visual Studio 2019(Visual Studio의 Azure 기능을 확인하거나 Visual Studio Installer를 사용해 해당 모듈 다운로드)
- Azure SDK(여기에서 다운로드)
- .NET Framework 4.7.2
- Azure Storage 및 Blob 컨테이너 작업용 NuGet 패키지:
- .NET Framework 4.7용 ABBYY FineReader Engine 래퍼(developer installation 후 C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops 폴더에 있음)
- Blob 컨테이너 작업용으로 재정의한 IFileWriter 인터페이스(아래 sample 참조)
- Azure Storage Explorer(선택 사항 - 여기에서 다운로드)
- 라이선스 처리 절차에 사용할 Azure 계정의 가상 머신. 이후 구성에는 다음 정보가 필요합니다.
- IP 주소
- 열려 있는 연결 포트(기본값 또는 사용자 지정). 포트를 열려면 방화벽을 사용하세요
- 소켓 네트워크 프로토콜 연결 세부 정보
사전 준비 단계
- ABBYY FineReader Engine 라이브러리를 포함한 아카이브(예: LibraryPackage.zip)를 만듭니다. 파일 목록은 FREngineDistribution.csv 파일에 나와 있습니다.
중요! 저장 공간이 제한적인 경우(예: 1GB 공간의 App Service Plan을 사용하는 경우), 크기를 최소화한 사용자 지정 ABBYY FineReader Engine 패키지를 만들기 위해 /extract 옵션을 사용하는 것이 좋습니다. 나머지 저장 공간은 파일 처리에 사용됩니다.
아카이브를 만들 때는 ABBYY FineReader Engine 라이선스 설정이 가상 머신 설정에 맞게 구성되어야 한다는 점을 고려해야 합니다.- LicensingSettings.xml 파일은 Network 구성으로 설정되어야 합니다(LicensingSettings.xml 파일 작업 참조).
- Sockets 네트워크 프로토콜을 사용해야 합니다.
- 온라인 라이선스 토큰 파일은 Bin64 폴더에 있어야 합니다.
- Azure Storage 계정(이 문서에서는 frestorage)을 만듭니다. 필요한 모든 지침은 Azure 웹 사이트에서 확인할 수 있습니다.
- 원하는 방식으로 App Service를 만듭니다(여기의 지침 참조).
- frestorage 안에 두 개의 Blob 컨테이너를 만듭니다.
- fre-lib - ABBYY FineReader Engine 파일용
- processing-container - 처리 결과용
- 가장 편한 방법(.NET, Powershell, Python 스크립트 또는 Azure Storage Explorer/Azure Portal 애플리케이션 사용)으로 fre-lib 컨테이너에 LibraryPackage.zip을 업로드합니다.
- Azure 계정에서 라이선스 설정이 포함된 가상 머신을 배포하고 구성합니다.
- LibraryPackage.zip의 installLM.exe를 사용하여 라이선스 관리자 유틸리티를 설치합니다.
- LicensingSettings.xml에서 Sockets 네트워크 프로토콜을 설정한 다음 Licensing Service를 다시 시작합니다.
- Azure App Service가 Licensing Service 연결 포트에 액세스할 수 있는지 확인합니다(가상 머신의 Windows 방화벽 규칙 조정).
- 라이선스를 활성화합니다(Software protection에만 해당하며, Online protection은 활성화가 필요하지 않음).
- frestorage 안에 두 개의 대기열을 만듭니다.
- processing-queue - 파일 처리 작업 등록용
- status-queue - 작업 완료 알림용
- frestorage와 연동하도록 Visual Studio 2019에서 두 개의 Azure WebJob(.NET Framework) 프로젝트를 만듭니다.
App Service에서 ABBYY FineReader Engine 배포 및 실행
- Visual Studio를 사용해 FreDeployerJob을 Azure App Service에 게시합니다(WebJob Type은 Triggered로 설정).
- Azure Portal에서 App Service를 엽니다.
- App Service의 WebJobs를 엽니다.
- WebJobs 목록에서 FreDeployerJob을 찾습니다.
- WebJobs 탭에서 FreDeployerJob을 마우스 오른쪽 버튼으로 클릭한 다음 Run 명령으로 실행합니다.
- 처리할 파일을 processing-container에 업로드합니다.
- 새 처리 작업에 대한 JSON 메시지를 {“blob-item-name” : “file_name”} 형식으로 processing-queue에 추가합니다. processing-container에 Demo.tif를 업로드한 경우 메시지는 다음과 같아야 합니다.
- 작업이 완료될 때까지 기다립니다. 새 작업이 설정되면 즉시 FreProcessorJob이 메모리에서 지정한 파일 처리를 시작합니다. status-queue에는 이 작업의 실행 상태에 대한 항목이 포함됩니다.
- processing-container에서 출력 파일을 찾습니다.
코드 샘플
FreDeployerJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
FreProcessorJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
EngineLoader.cs
EngineLoader.cs
IFileWriter.cs
IFileWriter.cs
Processor.cs
Processor.cs
