Saltar al contenido principal
Esta sección ofrece instrucciones para implementar una aplicación FRE 12 for Windows en Azure App Service. A modo de ejemplo, se presenta un par de proyectos de WebJob que usan datos de una cuenta de Azure Storage. El procesamiento de archivos se realiza mediante un contenedor Blob.
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:
  1. Configurar la máquina local y la instancia de la aplicación según los requisitos previos
  2. Realizar los pasos preparatorios antes de implementar su aplicación
  3. Implementar y ejecutar su aplicación en App Service
Use los ejemplos de código que se muestran en las instrucciones siguientes.

Requisitos previos

Máquina local

Antes de crear su App Service, utilice la siguiente especificación para preparar su 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:
    • Azure.Storage.Blobs (descargue aquí)
    • Azure.Storage.Queues (descargue aquí)
    • Newtonsoft.Json (descargue aquí)
    • System.IO.Compression.ZipFile (descargue aquí)
  • 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

Los pasos preparatorios deben realizarse en su máquina local. Al completar estos pasos, preparará todas las configuraciones y archivos necesarios para comenzar a desplegar su aplicación:
  1. 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.
  2. Cree una cuenta de Azure Storage (frestorage en este artículo). Puede encontrar todas las instrucciones necesarias en el sitio web de Azure.
  3. Cree su App Service como desee (consulte las instrucciones aquí).
  4. Cree dos contenedores Blob dentro de frestorage:
    • fre-lib - para los archivos de ABBYY FineReader Engine
    • processing-container - para los resultados del procesamiento
  5. 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).
  6. 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).
  7. 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
  8. 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

Para implementar ABBYY FineReader Engine:
  1. Publique FreDeployerJob en Azure App Service con Visual Studio (establezca Triggered como WebJob Type).
  2. Abra su App Service en el portal de Azure.
  3. Abra la sección WebJobs de su App Service.
  4. Busque FreDeployerJob en la lista de WebJobs.
  5. Inicie FreDeployerJob con el comando Run al hacer clic con el botón derecho en la pestaña WebJobs.
Puede acceder a la pestaña Logs para comprobar el resultado de la implementación. Si se realiza correctamente, LibraryPackage.zip se carga desde el contenedor fre-lib y se implementa en la carpeta %HOME_EXPANDED%, disponible para todas las entidades de App Service. Para implementar FreProcessorJob, publique FreProcessorJob en Azure App Service con Visual Studio (establezca Continuous como WebJob Type). Como resultado, FreProcessorJob aparecerá en la lista de WebJobs de su App Service. Para procesar un archivo:
  1. Cargue el archivo que desea procesar en processing-container.
  2. 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:
  1. 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.
  2. Encuentre el archivo de salida en processing-container.
  1. FreProcessorJob funciona como un proceso de un solo hilo. Si tiene previsto procesar sus archivos en paralelo, debe crear varios FreProcessorJob que escuchen la misma cola. 2. Cada FreProcessorJob adicional consume memoria extra. Tenga esto en cuenta al adquirir su Service Plan. Por ejemplo, en Azure Free Service Plan, se recomienda tener solo un FreProcessorJob que consuma poca memoria y, de este modo, garantice la estabilidad del procesamiento de archivos. 3. Usar un solo FreProcessorJob no es adecuado para procesar documentos grandes de varias páginas. En este caso, considere el reconocimiento del documento en Azure Cloud Service o Azure Virtual Machine en lugar de App Service.

Ejemplos de código

Esta sección incluye ejemplos de código para desplegar e implementar la API de ABBYY FineReader Engine en App Service.

FreDeployerJob:

FreProcessorJob: