Instalación y ejecución de contenedores de Docker para la API Anomaly Detector

Nota

La ubicación de la imagen de contenedores ha cambiado recientemente. Lea este artículo para ver la ubicación actualizada de este contenedor.

Los contenedores permiten usar la API Anomaly Detector en su propio entorno. Los contenedores son excelentes para requisitos específicos de control de datos y seguridad. En este artículo, aprenderá a descargar, instalar y ejecutar un contenedor de Anomaly Detector.

Anomaly Detector ofrece un único contenedor de Docker para usar la API local. Use el contenedor para:

  • Usar de los algoritmos de Anomaly Detector en los datos.
  • Supervisar los datos de streaming y detectar anomalías cuando se producen en tiempo real.
  • Detección de anomalías en todo el conjunto de datos como un lote
  • Detectar puntos de cambio de tendencia en el conjunto de datos como lote.
  • Ajustar la sensibilidad del algoritmo de detección de anomalías para adaptarse mejor a los datos.

Para más información sobre la API, consulte:

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

Debe cumplir los siguientes requisitos previos para poder usar los contenedores de Anomaly Detector:

Obligatorio Propósito
Motor de Docker Necesita que el motor de Docker esté instalado en un equipo host. Docker dispone de paquetes que configuran el entorno de Docker en macOS, Windows y Linux. Para conocer los principios básicos de Docker y de los contenedores, consulte Introducción a Docker.

Docker debe configurarse para permitir que los contenedores se conecten con Azure y envíen datos de facturación a dicho servicio.

En Windows, Docker también debe estar configurado de forma que admita los contenedores de Linux.

Conocimientos sobre Docker Debe tener conocimientos básicos sobre los conceptos de Docker, como los registros, los repositorios, los contenedores y las imágenes de contenedor, así como conocer los comandos docker básicos.
Recurso de Anomaly Detector Para usar estos contenedores, debe tener:

Un recurso de Anomaly Detector de Azure para obtener la clave de API y el URI de punto de conexión asociados. Ambos valores están disponibles en las páginas de claves y de información general de Anomaly Detector en Azure Portal y son necesarios para iniciar el contenedor.

{API_KEY} : una de las dos claves de recurso disponibles en la página Claves

{ENDPOINT_URI} : el punto de conexión tal como se proporciona en la página de Información general.

Recopilación de todos los parámetros obligatorios

Se requieren tres parámetros principales para todos los contenedores de Cognitive Services. Los Términos de licencia del software de Microsoft deben estar presentes con el valor Acepto. También se necesitan un URI de punto de conexión y una clave de API.

URI de punto de conexión

El valor de {ENDPOINT_URI} está disponible en la página Información general de Azure Portal del recurso de Cognitive Services correspondiente. Vaya a la página Información general, mantenga el puntero sobre el punto de conexión y aparecerá un icono Copiar en el Portapapeles. Copie y use el punto de conexión cuando sea necesario.

Screenshot that shows gathering the endpoint URI for later use.

Teclas

El valor {API_KEY} se usa para iniciar el contenedor y está disponible en la página Claves de Azure Portal del recurso de Cognitive Services correspondiente. Vaya a la página Claves y seleccione el icono Copiar en el Portapapeles.

Screenshot that shows getting one of the two keys for later use.

Importante

Estas claves de suscripción se usan para acceder a la API de Cognitive Services. No comparta sus claves. Almacénelas de forma segura. Por ejemplo, use Azure Key Vault. También se recomienda volver a generar estas claves con regularidad. Solo se necesita una clave para realizar una llamada API. Al volver a generar la primera clave, puede usar la segunda para seguir teniendo acceso al servicio.

El equipo host

El host es un equipo basado en x64 que ejecuta el contenedor de Docker. Puede ser un equipo del entorno local o un servicio de hospedaje de Docker incluido en Azure, como:

Recomendaciones y requisitos del contenedor

En la tabla siguiente se describen los núcleos de CPU y los valores de memoria mínimos y recomendados para asignar a cada contenedor de Anomaly Detector.

QPS (Consultas por segundo) Mínima Recomendado
10 QPS 4 núcleos, 1 GB de memoria 8 núcleos, 2 GB de memoria
20 QPS 8 núcleos, 2 GB de memoria 16 núcleos, 4 GB de memoria

Cada núcleo debe ser de 2,6 gigahercios (GHz) como mínimo.

El núcleo y la memoria se corresponden con los valores de --cpus y --memory que se usan como parte del comando docker run.

Obtención de la imagen del contenedor con docker pull

Use el comando docker pull para descargar una imagen de contenedor.

Contenedor Repositorio
cognitive-services-anomaly-detector mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest

Sugerencia

Puede usar el comando docker images para enumerar las imágenes de contenedor descargadas. Por ejemplo, el comando siguiente muestra el id., el repositorio y la etiqueta de cada imagen de contenedor descargada, con formato de tabla:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

docker pull del contenedor de Anomaly Detector

docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest

Uso del contenedor

Una vez que el contenedor esté en el equipo host, utilice el siguiente proceso para trabajar con el contenedor.

  1. Ejecute el contenedor con la configuración de facturación requerida. Hay más ejemplos del comando docker run disponibles.
  2. Consulta del punto de conexión de predicción del contenedor.

Ejecute el contenedor con docker run.

Utilice el comando docker run para ejecutar el contenedor. Consulte Recopilación de los parámetros obligatorios para más información sobre cómo obtener los valores de {ENDPOINT_URI} y {API_KEY}.

Hay disponibles ejemplos del comando docker run.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Este comando:

  • Ejecuta un contenedor de Anomaly Detector desde la imagen de contenedor.
  • Asigna un núcleo de CPU y 4 gigabytes (GB) de memoria.
  • Expone el puerto TCP 5000 y asigna un seudo-TTY para el contenedor.
  • Una vez que se produce la salida, quita automáticamente el contenedor. La imagen del contenedor sigue estando disponible en el equipo host.

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.

Ejecución de varios contenedores en el mismo host

Si tiene pensado ejecutar varios contenedores con puertos expuestos, asegúrese de ejecutar cada contenedor con un puerto diferente. Por ejemplo, ejecute el primer contenedor en el puerto 5000 y el segundo en el puerto 5001.

Reemplace <container-registry> y <container-name> por los valores de los contenedores que utilice. Estos contenedores pueden ser diferentes. Puede hacer que el contenedor de Anomaly Detector y el contenedor de LUIS se ejecuten juntos en el HOST, o puede hacer que se ejecuten varios contenedores de Anomaly Detector.

Ejecute el primer contenedor en el puerto de host 5000.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Ejecute el segundo contenedor en el puerto de host 5001.

docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Cada contenedor sucesivo debe estar en un puerto diferente.

Consulta del punto de conexión de predicción del contenedor

El contenedor proporciona varias API de puntos de conexión de predicción de consultas basadas en REST.

Utilice el host, http://localhost:5000, con las API de contenedor.

Comprobación de que un contenedor está en ejecución

Hay varias maneras de comprobar que el contenedor está en ejecución. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera. Use las distintas direcciones URL de solicitud que se indican a continuación para validar que el contenedor se está ejecutando. Las direcciones URL de solicitud de ejemplo que se enumeran aquí son http://localhost:5000, pero el contenedor específico puede variar. Asegúrese de confiar en la dirección IP externa y el puerto expuesto del contenedor.

URL de la solicitud Propósito
http://localhost:5000/ El contenedor ofrece una página principal.
http://localhost:5000/ready Esta URL, solicitada con GET, proporciona una comprobación de que el contenedor está listo para aceptar una consulta para el modelo. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
http://localhost:5000/status Esta URL, también solicitada con GET, comprueba si el valor de api-key usado para iniciar el contenedor es válido sin generar una consulta de punto de conexión. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
http://localhost:5000/swagger El contenedor cuenta con un completo conjunto de documentación sobre los puntos de conexión y una característica de prueba. Esta característica le permite especificar la configuración en un formulario HTML basado en web y realizar la consulta sin necesidad de escribir código. Una vez que la consulta devuelve resultados, se proporciona un ejemplo del comando CURL para mostrar los encabezados HTTP y el formato de cuerpo requeridos.

Container's home page

Detención del contenedor

Para apagar el contenedor, en el entorno de la línea de comandos donde se ejecuta el contenedor, seleccione Ctrl + C.

Solución de problemas

Si ejecuta el contenedor con un montaje de salida y el registro habilitados, el contenedor genera archivos de registro que resultan útiles para solucionar problemas que se producen al iniciar o ejecutar el contenedor.

Sugerencia

Para más información e instrucciones para solución de problemas, vea Preguntas frecuentes de los contenedores de Cognitive Services .

Si tiene problemas al ejecutar un contenedor de Cognitive Services, puede intentar usar el contenedor de diagnósticos de Microsoft. Use este contenedor para diagnosticar errores comunes en el entorno de implementación que podrían impedir que los contenedores de Cognitive Services funcionen según lo previsto.

Para obtener el contenedor, use el comando docker pull siguiente:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

A continuación, ejecute el contenedor. Reemplace {ENDPOINT_URI} por el punto de conexión y {API_KEY} por la clave del recurso:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

El contenedor prueba la conectividad de red con el punto de conexión de facturación.

Facturación

Los contenedores de Anomaly Detector envían información de facturación a Azure mediante un recurso de Anomaly Detector de la cuenta de Azure.

Las consultas en el contenedor se facturan con el plan de tarifa del recurso de Azure que se usa para el parámetro ApiKey.

Los contenedores de Azure Cognitive Services no tienen licencia para ejecutarse si no están conectados al punto de conexión de medición o facturación. Debe habilitar los contenedores para que comuniquen la información de facturación al punto de conexión de facturación en todo momento. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.

Conexión con Azure

El contenedor necesita que se ejecuten los valores del argumento de facturación. Estos valores permiten al contenedor conectarse al punto de conexión de facturación. El contenedor informa sobre el uso cada 10 a 15 minutos. Si el contenedor no se conecta a Azure en la ventana de tiempo permitida, continuará ejecutándose pero no atenderá las consultas hasta que se restaure el punto de conexión de facturación. Se intenta 10 veces la conexión en el mismo intervalo de tiempo de 10 a 15 minutos. Si no se puede conectar con el punto de conexión de facturación en esos 10 intentos, el contenedor deja de atender solicitudes. Consulte Preguntas más frecuentes acerca de los contenedores de Cognitive Services para obtener un ejemplo de la información que se envía a Microsoft para la facturación.

Argumentos de facturación

El comando docker run iniciará el contenedor cuando se especifiquen las tres opciones siguientes con valores válidos:

Opción Descripción
ApiKey La clave de API del recurso de Cognitive Services que se usa para realizar un seguimiento de la información de facturación.
El valor de esta opción se debe establecer en una clave de API para el recurso aprovisionado que se especifica en Billing.
Billing El punto de conexión del recurso de Cognitive Services que se usa para realizar el seguimiento de la información de facturación.
El valor de esta opción debe establecerse en el URI del punto de conexión de un recurso aprovisionado de Azure.
Eula Indica que ha aceptado la licencia del contenedor.
El valor de esta opción debe establecerse en accept.

Para obtener más información acerca de estas opciones, consulte Configure containers (Configuración de contenedores).

Resumen

En este artículo, ha aprendido los conceptos y el flujo de trabajo de la descarga, la instalación y la ejecución de contenedores de Anomaly Detector. En resumen:

  • Anomaly Detector proporciona un contenedor Linux para Docker, que encapsula la detección de anomalías con lotes frente a transmisión por secuencias, inferencia de intervalo esperado y ajuste de sensibilidad.
  • Las imágenes de contenedor se descargan de una instancia privada de Azure Container Registry dedicada para contenedores.
  • Las imágenes de contenedor se ejecutan en Docker.
  • Puede usar la API REST o el SDK para llamar a operaciones de contenedores de Anomaly Detector mediante la especificación del URI del host del contenedor.
  • Debe especificar la información de facturación al crear una instancia de un contenedor.

Importante

Los contenedores de Cognitive Services no tienen licencia para ejecutarse sin estar conectados a Azure para realizar mediciones. Los clientes tienen que habilitar los contenedores para comunicar la información de facturación con el servicio de medición en todo momento. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, los datos de serie temporal que se analizan) a Microsoft.

Pasos siguientes