Configuración de contenedores OCR de Read en Docker

Puede configurar el entorno de runtime del contenedor de Lectura OCR de Visión de Azure AI usando los argumentos del comando docker run. Este contenedor tiene varias opciones de configuración necesarias, así como otras opcionales. Hay disponibles varios ejemplos del comando. La configuración específica del contenedor es la configuración de facturación.

Parámetros de configuración

Este contenedor tiene las siguientes opciones de configuración:

Obligatorio Configuración Propósito
ApiKey Realiza el seguimiento de la información de facturación.
No ApplicationInsights Permite agregar compatibilidad con los datos de telemetría de Azure Application Insights al contenedor.
Facturación Especifica el URI del punto de conexión del recurso de servicio en Azure.
Eula Indica que ha aceptado la licencia del contenedor.
No Fluentd Escribe el registro y, opcionalmente, los datos de métricas en un servidor de Fluentd.
No Proxy HTTP Configura un proxy HTTP para realizar solicitudes de salida.
No Logging Proporciona compatibilidad con el registro de ASP.NET Core al contenedor.
No Mounts Lee y escribe los datos desde el equipo host al contenedor y del contenedor de nuevo al equipo host.

Importante

Las opciones ApiKey, Billing y Eula se usan en conjunto y debe proporcionar valores válidos para las tres; en caso contrario, no se inicia el contenedor. Para obtener más información sobre el uso de estas opciones de configuración para crear instancias de un contenedor, consulte Facturación.

El contenedor también tiene los siguientes valores de configuración específicos del contenedor:

Obligatorio Configuración Propósito
No ReadEngineConfig:ResultExpirationPeriod Solo contenedores con la versión 2.0. Período de expiración del resultado en horas. El valor predeterminado es 48 horas. Este valor especifica cuándo debe borrar el sistema los resultados de reconocimiento. Por ejemplo, si es resultExpirationPeriod=1, el sistema borra el resultado del reconocimiento 1 hora después del proceso. Si es resultExpirationPeriod=0, el sistema borra el resultado del reconocimiento una vez recuperado el resultado.
No Cache:Redis Solo contenedores con la versión 2.0. Habilita el almacenamiento en Redis para guardar los resultados. Se necesita una memoria caché si se colocan varios contenedores OCR de lectura detrás de un equilibrador de carga.
No Queue:RabbitMQ Solo contenedores con la versión 2.0. Habilita RabbitMQ para el envío de tareas. Este valor resulta útil cuando se colocan varios contenedores OCR de lectura detrás de un equilibrador de carga.
No Queue:Azure:QueueVisibilityTimeoutInMilliseconds Solo contenedores con la versión 3.x. Tiempo que un mensaje es invisible cuando otro trabajo lo procesa.
No Storage::DocumentStore::MongoDB Solo contenedores con la versión 2.0. Habilita MongoDB para el almacenamiento de resultados permanente.
No Storage:ObjectStore:AzureBlob:ConnectionString Solo contenedores con la versión 3.x. Cadena de conexión de Azure Blob Storage.
No Storage:TimeToLiveInDays Solo contenedores con la versión 3.x. Período de expiración del resultado en días. Este valor especifica cuándo debe borrar el sistema los resultados de reconocimiento. El valor predeterminado es 2 días, lo que significa que no se garantiza que los resultados que permanezcan por encima de ese período se recuperen correctamente. El valor es entero y debe estar entre 1 y 7 días.
No StorageTimeToLiveInMinutes v3.2-model-2021-09-30-preview y nuevos contenedores. Período de expiración del resultado en minutos. Este valor especifica cuándo debe borrar el sistema los resultados de reconocimiento. El valor predeterminado es 2 días (2880 minutos), lo que significa que no se garantiza que los resultados que permanezcan por encima de ese período se recuperen correctamente. El valor es entero y debe estar entre 60 minutos y 7 días (10080 minutos).
No Task:MaxRunningTimeSpanInMinutes Solo contenedores con la versión 3.x. Tiempo de ejecución máximo de una única solicitud. El valor predeterminado es 60 minutos.
No EnableSyncNTPServer Solo contenedores v3.x, excepto los contenedores v3.2-model-2021-09-30-preview y los contenedores más recientes. Habilita el mecanismo de sincronización del servidor NTP, que garantiza la sincronización entre la hora del sistema y el tiempo de ejecución de tareas esperado. Tenga en cuenta que esto requiere tráfico de red externo. El valor predeterminado es true.
No NTPServerAddress Solo contenedores v3.x, excepto los contenedores v3.2-model-2021-09-30-preview y los contenedores más recientes. Servidor NTP para la sincronización de la hora. El valor predeterminado es time.windows.com.
No Mounts::Shared Solo contenedores con la versión 3.x. Carpeta local para almacenar el resultado del reconocimiento. De manera predeterminada, es /share. Para ejecutar un contenedor sin usar Azure Blob Storage, se recomienda montar un volumen en esta carpeta para asegurarse de que tiene suficiente espacio para los resultados del reconocimiento.

Opción de configuración ApiKey

El ajuste ApiKey especifica la clave del recurso Visión utilizada para rastrear la información de facturación del contenedor. Debe especificar un valor para ApiKey que debe ser una clave válida para el recurso de Visión especificado para la opción de configuración Billing.

Este valor se puede encontrar en el siguiente lugar:

  • Azure Portal: Administración de recursos de servicios de Azure AI, en Claves

Opción de configuración ApplicationInsights

La opción de configuración ApplicationInsights le permite agregar compatibilidad con los datos de telemetría de Azure Application Insights al contenedor. Application Insights proporciona una supervisión detallada del contenedor. Puede supervisar fácilmente la disponibilidad, el rendimiento y el uso del contenedor. También puede identificar y diagnosticar errores en el contenedor rápidamente.

En la tabla siguiente se describen las opciones de configuración compatibles en la sección ApplicationInsights.

Obligatorio Nombre Tipo de datos Descripción
No InstrumentationKey String Clave de instrumentación de la instancia de Application Insights para la que se envían los datos de telemetría del contenedor. Para más información, consulte Application Insights para ASP.NET Core.

Ejemplo:
InstrumentationKey=123456789

Opción de configuración Billing

La opción de configuración Billing especifica el URI del punto de conexión del recurso de servicios de Azure AI que se usa para medir la información de facturación del contenedor. Es necesario especificar un valor para esta opción de configuración, que debe ser un URI de punto de conexión válido para un recurso de servicios de Azure AI en Azure. El contenedor informa sobre el uso cada 10 a 15 minutos.

Este valor se puede encontrar en el siguiente lugar:

  • Azure Portal: Información general de servicios de Azure AI, con la etiqueta Endpoint

No olvide agregar la ruta vision/<version> al URI de punto de conexión, tal como se muestra en la tabla siguiente.

Obligatorio Nombre Tipo de datos Descripción
Billing String Identificador URI del punto de conexión de facturación

Ejemplo:
Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2

Opción de configuración Eula

La opción de configuración Eula indica que ha aceptado la licencia del contenedor. Debe especificar un valor para esta opción de configuración y el valor debe establecerse en accept.

Obligatorio Nombre Tipo de datos Descripción
Eula String Aceptación de la licencia

Ejemplo:
Eula=accept

Los contenedores de servicios de Azure AI tienen una licencia sujeta al contrato que rige el uso de Azure. Si no tiene ningún contrato que rija el uso de Azure, acepta que el contrato que rige el uso de Azure es el Contrato Microsoft Online Subscription, que incorpora los Términos de Online Services. En el caso de las versiones preliminares, acepta también los Términos de uso complementarios para las versiones preliminares de Microsoft Azure. Al usar el contenedor, acepta estos términos.

Opción de configuración Fluentd

Fluentd es un recopilador de datos de código abierto para el registro unificado. La opción de configuración Fluentd administra la conexión del contenedor a un servidor de Fluentd. En el contenedor, se incluye un proveedor de registros de Fluentd que permite que el contenedor escriba los registros y, opcionalmente, los datos de métricas en un servidor de Fluentd.

En la tabla siguiente se describen las opciones de configuración compatibles en la sección Fluentd.

Nombre Tipo de datos Descripción
Host String Dirección IP o nombre de host DNS del servidor de Fluentd.
Port Entero Puerto del servidor de Fluentd.
El valor predeterminado es 24 224.
HeartbeatMs Entero Intervalo de latidos (en milisegundos). Si no se envía ningún tráfico de evento antes de que este intervalo expire, se envía un latido al servidor de Fluentd. El valor predeterminado es 60 000 milisegundos (1 minuto).
SendBufferSize Entero Espacio en búfer de red (en bytes) asignado para las operaciones de envío. El valor predeterminado es 32 768 bytes (32 kilobytes).
TlsConnectionEstablishmentTimeoutMs Entero Tiempo de expiración (en milisegundos) para establecer una conexión SSL/TLS con el servidor de Fluentd. El valor predeterminado es 10 000 milisegundos (10 segundos).
Si UseTLS se establece en false, este valor se ignora.
UseTLS Boolean Indica si el contenedor debe utilizar SSL/TLS para comunicarse con el servidor de Fluentd. El valor predeterminado es false.

Configuración de las credenciales del proxy HTTP

Si necesita configurar un proxy HTTP para realizar solicitudes de salida, use estos dos argumentos:

Nombre Tipo de datos Descripción
HTTP_PROXY string El proxy que se va a utilizar, por ejemplo, http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string Las credenciales necesarias para autenticarse en el proxy, por ejemplo, username:password. Este valor debe estar en minúsculas.
<proxy-user> string El usuario del proxy.
<proxy-password> string La contraseña asociada con <proxy-user> para el proxy.
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \

Opción de configuración Logging

La opción de configuración Logging administra la compatibilidad con el registro de ASP.NET Core del contenedor. Puede usar los mismos valores y opciones de configuración para el contenedor que los que usa para una aplicación ASP.NET Core.

Los siguientes proveedores de registro son compatibles con el contenedor:

Proveedor Propósito
Consola Proveedor de registro de Console de ASP.NET Core. Se admiten todos los valores predeterminados y las opciones de configuración de ASP.NET Core para este proveedor de registro.
Depurar Proveedor de registro de Debug de ASP.NET Core. Se admiten todos los valores predeterminados y las opciones de configuración de ASP.NET Core para este proveedor de registro.
Disco Proveedor de registro JSON. Este proveedor de registro escribe datos de registro para el montaje de salida.

Este comando de contenedor almacena información de registro en formato JSON en el montaje de salida:

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output

Este comando de contenedor muestra información de depuración, con el prefijo dbug mientras el contenedor se ejecuta:

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug

Registro del disco

El proveedor de registro Disk admite la configuración siguiente:

Nombre Tipo de datos Descripción
Format String Formato de salida de los archivos de registro.
Nota: Este valor debe establecerse en json para habilitar el proveedor de registro. Si se especifica este valor sin especificar también un montaje de salida al crear una instancia de un contenedor, se produce un error.
MaxFileSize Entero Tamaño máximo en megabytes (MB) de un archivo de registro. Cuando el tamaño del archivo de registro actual cumple este valor o lo supera, el proveedor de registro inicia un nuevo archivo de registro. Si se especifica -1, el tamaño del archivo de registro solo está limitado por el tamaño máximo de archivo, si existe, para el montaje de salida. El valor predeterminado es 1.

Para obtener más información acerca de cómo configurar la compatibilidad con el registro de ASP.NET Core, consulte Configuración del archivo de configuración.

Configuración de montaje

Utilice montajes de enlace para leer y escribir datos hacia y desde el contenedor. Puede especificar un montaje de entrada o un montaje de salida mediante la opción --mount del comando docker run.

Los contenedores Azure AI Vision no utilizan montajes de entrada o salida para almacenar datos de entrenamiento o de servicio.

La sintaxis exacta de la ubicación de montaje del host varía según el sistema operativo del host. Además, la ubicación de montaje del equipo host puede no ser accesible debido a un conflicto entre los permisos que usa la cuenta de servicio de Docker y los permisos de la ubicación de montaje del host.

Opcional Nombre Tipo de datos Descripción
No permitida Input Cadena Los contenedores Azure AI Vision no lo utilizan.
Opcionales Output String Destino del montaje de salida. El valor predeterminado es /output. Esta es la ubicación de los registros. Esto incluye los registros de contenedor.

Ejemplo:
--mount type=bind,src=c:\output,target=/output

Comandos de ejemplo de docker run

Los ejemplos siguientes usan las opciones de configuración para ilustrar cómo escribir y usar comandos docker run. Una vez que se está ejecutando, el contenedor continúa ejecutándose hasta que lo detenga.

  • Carácter de continuación de línea: Los comandos de Docker de las secciones siguientes usan la barra diagonal inversa (\) como un carácter de continuación de línea. Puede quitarla o reemplazarla en función de los requisitos del sistema operativo del host.
  • Orden de los argumentos: No cambie el orden de los argumentos a menos que esté muy familiarizado con los contenedores de Docker.

Reemplace {argument_name} por sus propios valores:

Marcador de posición Value Formato o ejemplo
{CLAVE_API} Clave de punto de conexión del recurso de Vision en la página de claves de recursos. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{URI_PUNTODECONEXIÓN} El valor del punto final de facturación está disponible en la página de resumen de recursos. Consulte Recopilación de los parámetros necesarios para ver ejemplos explícitos.

Nota

Los nuevos recursos creados después del 1 de julio de 2019 usarán nombres de subdominio personalizados. Para obtener más información y una lista completa de puntos finales regionales, consulte Nombres de subdominios personalizados para los servicios de Azure AI.

Importante

Para poder ejecutar el contenedor, las opciones Eula, Billing y ApiKey deben estar especificadas; de lo contrario, el contenedor no se iniciará. Para obtener más información, vea Facturación. El valor de ApiKey es la clave de la página de claves de recursos de Visión.

Ejemplos de contenedor de Docker

Los siguientes ejemplos de Docker son del contenedor OCR de lectura.

Ejemplo básico

docker run --rm -it -p 5000:5000 --memory 16g --cpus 8 \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30 \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Ejemplo de registro

docker run --rm -it -p 5000:5000 --memory 16g --cpus 8 \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30 \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Logging:Console:LogLevel:Default=Information

Pasos siguientes