Con este escenario, obtendrá los mejores resultados de reconocimiento para documentos pequeños de una sola página, como facturas, recibos, etc. La implementación de su aplicación en App Service incluye varios pasos:
- Configurar el equipo local y la instancia de la aplicación según los requisitos previos
- Realizar los pasos preparatorios antes de implementar su aplicación
- Implementar y ejecutar su aplicación en App Service
Requisitos previos
Máquina local
- Visual Studio 2019 y sus módulos para desarrollar aplicaciones para Azure (consulte Azure feature in Visual Studio o use Visual Studio Installer para descargar dichos módulos)
- Azure SDK (descargue aquí)
- .NET Framework 4.7.2
- Paquete NuGet para trabajar con Azure Storage y contenedores Blob:
- Envoltorio de ABBYY FineReader Engine para .NET Framework 4.7 (en la carpeta C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops después de la instalación para desarrolladores)
- Interfaz IFileWriter sobrescrita para trabajar con los contenedores Blob (consulte el ejemplo a continuación)
- Azure Storage Explorer (opcional - descargue aquí)
- Máquina virtual en su cuenta de Azure destinada a los procedimientos de licenciamiento. Para la configuración adicional, necesita:
- Dirección IP
- Puerto de conexión abierto (predeterminado o definido por el usuario). Para abrirlo, use un firewall
- Detalles de conexión del protocolo de red Sockets
Pasos preparatorios
- Cree un paquete comprimido con la biblioteca ABBYY FineReader Engine Library (por ejemplo, LibraryPackage.zip). La lista de archivos se encuentra en el archivo FREngineDistribution.csv.
¡Importante! Si tiene espacio de almacenamiento limitado (por ejemplo, usa un App Service Plan con 1 GB de espacio), recomendamos usar la opción /extract para crear su paquete personalizado de ABBYY FineReader Engine de tamaño mínimo. El resto del espacio de almacenamiento se usará para procesar los archivos.
Al crear el paquete, tenga en cuenta que las configuraciones de licencias de ABBYY FineReader Engine deben establecerse de acuerdo con las configuraciones de la máquina virtual:- El archivo LicensingSettings.xml debe configurarse para la configuración de red (consulte Trabajo con el archivo LicensingSettings.xml).
- Debe usarse el protocolo de red Sockets.
- El archivo de token de licencia en línea debe ubicarse en la carpeta Bin64.
- Cree una cuenta de Azure Storage (frestorage en este artículo). Puede encontrar todas las instrucciones necesarias en el sitio web de Azure.
- Cree su App Service como desee (consulte las instrucciones aquí).
- Cree dos contenedores Blob dentro de frestorage:
- fre-lib - para los archivos de ABBYY FineReader Engine
- processing-container - para los resultados del procesamiento
- Cargue LibraryPackage.zip en el contenedor fre-lib de la manera más conveniente (usando .NET, PowerShell, un script de Python o las aplicaciones Azure Storage Explorer/Azure Portal).
- Despliegue y configure la máquina virtual con las configuraciones de licencias en su cuenta de Azure:
- Instale la utilidad License Manager mediante installLM.exe desde LibraryPackage.zip.
- Configure el protocolo de red Sockets en el archivo LicensingSettings.xml y, a continuación, reinicie el servicio de licencias.
- Asegúrese de que Azure App Service pueda acceder al puerto de conexión del servicio de licencias (ajuste las reglas del Firewall de Windows en la máquina virtual).
- Active su licencia (solo para protección de software; la protección en línea no requiere activación).
- Cree dos colas dentro de frestorage:
- processing-queue - para las tareas de procesamiento de archivos
- status-queue - para notificar la finalización de las tareas
- Cree dos proyectos Azure WebJob (.NET Framework) en Visual Studio 2019 para trabajar con frestorage:
- FreDeployerJob - para desplegar LibraryPackage.zip en App Service (consulte la lista de sus archivos: Config.cs, Functions.cs, Program.cs a continuación)
- FreProcessorJob - para el procesamiento de documentos (consulte la lista de sus archivos: Config.cs, Functions.cs, Program.cs, EngineLoader.cs, IFileWriter.cs, Processor.cs a continuación)
Implementar y ejecutar ABBYY FineReader Engine en App Service
- Publique FreDeployerJob en Azure App Service con Visual Studio (establezca Triggered como WebJob Type).
- Abra su App Service en el portal de Azure.
- Abra la sección WebJobs de su App Service.
- Busque FreDeployerJob en la lista de WebJobs.
- Inicie FreDeployerJob con el comando Run al hacer clic con el botón derecho en la pestaña WebJobs.
- Cargue el archivo que desea procesar en processing-container.
- Agregue a processing-queue un mensaje JSON para una nueva tarea de procesamiento con el formato {“blob-item-name” : “file_name”}. Si carga Demo.tif en processing-container, el mensaje debe ser:
- Espere a que la tarea se complete. En cuanto se establece la nueva tarea, FreProcessorJob empieza a procesar el archivo especificado en memoria. La status-queue contendrá entradas sobre la ejecución de esta tarea.
- Encuentre el archivo de salida en processing-container.
Ejemplos de código
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
