El servicio de licencias de ABBYY solo puede funcionar con una licencia en línea al mismo tiempo.
- Configurar su licencia en línea, el equipo local y la instancia en la nube siguiendo los requisitos previos
- Realizar los pasos preparatorios antes de desplegar su aplicación
- Desplegar su aplicación en Cloud Service
Requisitos previos
Licencia en línea
- su Customer Project ID
- un archivo de token de licencia para la licencia en línea
- la contraseña del archivo de token de licencia
- Conexión activa a Internet
- Conexiones permitidas a *.abbyy.com por el puerto 443 (HTTPS)
- Certificado raíz de GoDaddy para la entidad de certificación (Debe estar instalado en el almacén de certificados Trusted Root Certification Authorities de la versión del equipo local. Consulte la información detallada sobre el certificado en el sitio web de GoDaddy).
Equipo local
- Visual Studio 2019 y sus módulos para desarrollar aplicaciones para Azure (consulte Funcionalidades de Azure en Visual Studio o use Visual Studio Installer para descargar dichos módulos)
- Emuladores de Cloud Service y almacenamiento para facilitar la depuración (consulte la información aquí y descárguelos mediante Visual Studio Installer)
- Solución de plantilla para Azure Cloud Service (versión preliminar extendida) con un único proyecto de rol Worker (consulte la información aquí)
- .NET Framework 4.7.2
- SDK de Azure (descárguelo aquí)
- Paquete NuGet para trabajar con Azure Storage y contenedores Blob: Azure.Storage.Blobs (descárguelo aquí)
- Wrapper de ABBYY FineReader Engine para .NET Framework 4.7 (en la carpeta C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops tras una instalación Developer)
- Interfaz IFileWriter con implementación personalizada para trabajar con contenedores Blob (consulte el ejemplo a continuación)
- Azure Storage Explorer (opcional; descárguelo aquí)
Instancia de Cloud Service
- versión de .NET Framework de su servicio
- PowerShell para implementar ABBYY FineReader Engine
- NuGet 2.8.5.201 o superior para cargar el SDK de Azure
- SDK de Azure para trabajar con una cuenta de Azure Storage mediante PowerShell
Pasos preparatorios
- Cree dos archivos comprimidos con ABBYY FineReader Engine Library y el servicio de licencias (por ejemplo, LibraryPackage.zip y LSPackage.zip). Puede generar la lista de archivos automáticamente con ayuda del archivo FREngineDistribution.csv. Use ABBYY FineReader Engine y el servidor de licencias del mismo paquete; de lo contrario, no se garantiza la compatibilidad.
- Cree la cuenta de Azure Storage (frestorage en este artículo). Puede encontrar todas las instrucciones necesarias en el sitio web de Azure.
- Cree tres contenedores de blobs dentro de frestorage:
- fre-lib - para los archivos de ABBYY FineReader Engine
- fre-input - para los archivos de entrada
- fre-output - para los resultados del procesamiento
- Cargue LibraryPackage.zip y LSPackage.zip en el contenedor fre-lib de la forma que le resulte más conveniente (mediante .NET, PowerShell, un script de Python o las aplicaciones Azure Storage Explorer/Azure Portal).
Implementación de ABBYY FineReader Engine en Cloud Service
- Especifique los parámetros de Cloud.cscfg según sea necesario.
- Especifique los parámetros del archivo .csdef:
- (opcional) la configuración de su WorkerRole
- (opcional) el tamaño de su máquina virtual
- (obligatorio) el almacenamiento local de su rol (sección LocalStorage; en este artículo, el almacenamiento denominado LocalStorage1). Configúrelo con al menos 3 GB para garantizar que el paquete de ABBYY FineReader Engine se implemente correctamente.
- (obligatorio) el orden de inicio de su rol (use los ejemplos de código y la configuración de la sección code samples)
- Implemente su proyecto de WorkerRole para procesar archivos del contenedor fre-input y publicar los resultados del procesamiento en el contenedor fre-output:
- el método OnStart para preparar su Cloud Service para su funcionamiento. Este método se utiliza para inicializar el Engine y configurar el protocolo TLS.
- el método RunAsync para procesar cíclicamente los archivos tomados del contenedor fre-input. Este método detecta los archivos del contenedor fre-input, los procesa en memoria y los coloca en el contenedor fre-output (consulte Processor.cs, IFileWriter.cs y Config.cs).
- el método OnStop para finalizar la ejecución de Cloud Service. Este método se utiliza para desinicializar el Engine.
Ejemplos de código
- CleanUpOnStart - elimina la versión anterior de ABBYY FineReader Engine y simplifica el procedimiento de actualización (consulte su contenido en los archivos CleanUpOnStart.cmd y CleanUpOnStart.ps1 a continuación).
- PreparePoShModules - descarga el SDK necesario para que PowerShell funcione con Azure Storage (consulte su contenido en los archivos PreparePoShModules.cmd y PreparePoShModules.ps1 a continuación).
- PrepareLibrary - carga y descomprime la ABBYY FineReader Engine Library desde el contenedor fre-lib en el almacenamiento local (consulte su contenido en los archivos PrepareLibrary.cmd y PrepareLibrary.ps1 a continuación).
- PrepareLS - carga, descomprime e inicia el servicio de licencias desde el contenedor fre-lib (consulte su contenido en los archivos PrepareLS.cmd y PrepareLS.ps1 a continuación).
- taskType=“simple” - las tareas se ejecutan de forma síncrona, una por una.
- executionContext=“elevated” - ejecución de un script de inicio con derechos de administrador (necesario para poder instalar cualquier aplicación y ejecutar LicensingService.exe)
CleanUpOnStart.cmd
CleanUpOnStart.cmd
CleanUpOnStart.ps1
CleanUpOnStart.ps1
PreparePoShModules.cmd
PreparePoShModules.cmd
PreparePoShModules.ps1
PreparePoShModules.ps1
PrepareLibrary.cmd
PrepareLibrary.cmd
PrepareLibrary.ps1
PrepareLibrary.ps1
PrepareLS.cmd
PrepareLS.cmd
PrepareLS.ps1
PrepareLS.ps1
Implementación de la interfaz IFileWriter
Implementación de la interfaz IFileWriter
Ejemplo de procesamiento de archivos con ABBYY FineReader Engine
Ejemplo de procesamiento de archivos con ABBYY FineReader Engine
Processor.cs
Processor.cs
Config.cs
Config.cs
