Conteneurs dans des environnements déconnectés (hors connexion)
La prise en charge des conteneurs est actuellement disponible avec la version 2022-08-31 (GA)
Document Intelligence pour tous les modèles et 2023-07-31 (GA)
pour les modèles de documents Lecture, Disposition, Facture, Reçu et ID :
- API REST
2022-08-31 (GA)
- API REST
2023-07-31 (GA)
- Bibliothèques de client ciblant
REST API 2022-08-31 (GA)
- Bibliothèques de client ciblant
REST API 2023-07-31 (GA)
✔️ Consultez les conteneurs Document Intelligence v3.0 dans des environnements déconnectés pour obtenir la documentation sur les conteneurs pris en charge.
Ce contenu s’applique à : v3.0 (GA) v3.1 (GA)
Que sont des conteneurs déconnectés ?
Les conteneurs Azure AI vous donnent la possibilité d’exécuter des services Document Intelligence localement dans des conteneurs. Les conteneurs connectés s’exécutent localement dans votre environnement et envoient des informations d’utilisation au cloud à des fins de facturation. Les conteneurs déconnectés sont destinés aux scénarios dans lesquels aucune connectivité avec le cloud n’est nécessaire pour l’exécution des conteneurs.
Les conteneurs Azure AI Document Intelligence vous permettent d’utiliser les API Document Intelligence avec les avantages de la conteneurisation. Les conteneurs déconnectés sont proposés par le biais d'une tarification par tranches d'engagement offerte à un tarif réduit par rapport à la tarification à l'usage. Avec la tarification par tranches d'engagement, vous pouvez vous engager à utiliser les fonctionnalités de Document Intelligence pour un montant fixe, à un coût total prévisible, en fonction des besoins de votre charge de travail.
Bien démarrer
Avant d'essayer d'exécuter un conteneur Docker dans un environnement hors ligne, assurez-vous de connaître les exigences suivantes pour télécharger et utiliser le conteneur avec succès :
- Spécifications et recommandations relatives à l’ordinateur hôte.
- Commande Docker
pull
pour télécharger le conteneur. - Comment valider l’exécution d’un conteneur.
- Comment envoyer des requêtes au point de terminaison du conteneur une fois celui-ci en cours d’exécution.
Demander l’accès à des conteneurs dans des environnements déconnectés
Avant de pouvoir utiliser les conteneurs Document Intelligence dans des environnements déconnectés, vous devez d’abord remplir et envoyer un formulaire de demande, ensuite acheter un plan d’engagement.
Créer une nouvelle ressource dans le portail Azure
Commencez par approvisionner une nouvelle ressource dans le portail.
Veillez à sélectionner l’option
Commitment tier disconnected containers DC0
Niveau tarifaireSélectionnez le niveau tarifaire approprié à partir d’au moins un niveau d’engagement personnalisé, lu ou prédéfini
Conteneur | Minimum | Recommandé | Plan d’engagement |
---|---|---|---|
Read |
8 cœurs, 10 Go de mémoire |
8 cœurs, 24 Go de mémoire |
OCR (Lecture) |
Layout |
8 cœurs, 16 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
Business Card |
8 cœurs, 16 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
General Document |
8 cœurs, 12 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
ID Document |
8 cœurs, 8 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
Invoice |
8 cœurs, 16 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
Receipt |
8 cœurs, 11 Go de mémoire |
8 cœurs, 24 Go de mémoire |
Prédéfinie |
Custom Template |
8 cœurs, 16 Go de mémoire |
8 cœurs, 24 Go de mémoire |
API personnalisée |
Collecter les paramètres obligatoires
Il y a trois paramètres qui sont obligatoires pour tous les conteneurs d’Azure AI services :
- Le contrat de licence utilisateur final (CLUF) doit être présent et avoir été accepté.
- URL du point de terminaison de votre ressource à partir du Portail Azure.
- Clé API pour votre ressource à partir du Portail Azure.
À la fois une URL de point de terminaison et une clé API sont nécessaires quand vous exécutez pour la première fois le conteneur afin de le configurer pour une utilisation déconnectée. Vous trouverez la clé et le point de terminaison dans la page Clé et point de terminaison de votre ressource dans le portail Azure :
Important
Vous utiliserez uniquement votre clé et votre point de terminaison pour configurer le conteneur à exécuter dans un environnement déconnecté. Une fois le conteneur configuré, vous n’aurez plus besoin des valeurs de clé et de point de terminaison pour envoyer des demandes d’API. Stockez-les en toute sécurité, par exemple, à l’aide de Azure Key Vault. Une seule clé est nécessaire pour ce processus.
Télécharger un conteneur Docker avec docker pull
Téléchargez le conteneur Docker qui a été approuvé pour s’exécuter dans un environnement déconnecté. Par exemple :
Commande Docker pull | Valeur | Format |
---|---|---|
● ● ● docker pull [image] docker pull [image]latest |
Image conteneur la plus récente. | ● ● ● mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice-3.0:latest |
Commande Docker pull exemple
docker pull mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice:latest
Configurer le conteneur pour qu’il s’exécute dans un environnement déconnecté
Les images de conteneur déconnectées sont les mêmes que les conteneurs connectés. La principale différence est que les conteneurs déconnectés nécessitent un fichier de licence. Ce fichier de licence est téléchargé en démarrant le conteneur en mode connecté avec le paramètre downloadLicense défini sur true.
Maintenant que votre conteneur est téléchargé, vous devez exécuter la commande docker run
avec le paramètre suivant :
DownloadLicense=True
. Ce paramètre télécharge un fichier de licence qui permet l’exécution de votre conteneur Docker quand il n’est pas connecté à Internet. Il contient également une date d’expiration. Une fois celle-ci écoulée, vous ne pourrez plus utiliser le fichier de licence pour exécuter le conteneur. Vous pouvez uniquement utiliser le fichier de licence dans le conteneur approuvé correspondant.
Important
La commandedocker run
génère un modèle que vous pouvez utiliser pour exécuter le conteneur. Le modèle contient les paramètres dont vous avez besoin pour les modèles téléchargés et le fichier de configuration. Veillez à enregistrer ce modèle.
L’exemple suivant illustre la mise en forme de la commande docker run
à utiliser avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.
Espace réservé | Valeur | Format ou exemple |
---|---|---|
{IMAGE} |
L’image conteneur que vous souhaitez utiliser. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{LICENSE_MOUNT} |
Chemin où la licence est téléchargée, puis montée. | /host/license:/path/to/license/directory |
{ENDPOINT_URI} |
Point de terminaison permettant d’authentifier votre demande de service. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
La clé pour votre ressource Document Intelligence. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource. | {string} |
{CONTAINER_LICENSE_DIRECTORY} |
Emplacement du dossier de licence sur le système de fichiers local du conteneur. | /path/to/license/directory |
Exemple dedocker run
commande
docker run --rm -it -p 5000:5050 \
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Dans la commande suivante, remplacez les espaces réservés du chemin du dossier, du point de terminaison de facturation et de la clé API afin de télécharger un fichier de licence pour le conteneur de disposition.
docker run -v {folder path}:/license --env Mounts:License=/license --env DownloadLicense=True --env Eula=accept --env Billing={billing endpoint} --env ApiKey={api key} mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest
Une fois le conteneur configuré, utilisez la section suivante pour exécuter le conteneur dans votre environnement avec la licence, et les allocations de mémoire et de processeur appropriées.
Configuration et modèles de conteneur Document Intelligence
Une fois que vous avez configuré le conteneur, les valeurs des modèles Document Intelligence téléchargés et de la configuration du conteneur sont générées et affichées dans la sortie du conteneur.
Exécuter le conteneur dans un environnement déconnecté
Dès que vous avez téléchargé le fichier de licence, vous pouvez exécuter le conteneur dans un environnement déconnecté avec votre licence, la mémoire appropriée et les allocations de processeur adaptées. L’exemple suivant illustre la mise en forme de la commande docker run
, avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.
Quel que soit l’emplacement d’exécution du conteneur, le fichier de licence doit être monté sur le conteneur et l’emplacement du dossier de licence sur le système de fichiers local du conteneur doit être spécifié avec Mounts:License=
. De plus, un montage de sortie doit être spécifié afin que les enregistrements d’utilisation puissent être écrits pour la facturation.
Espace réservé | Valeur | Format ou exemple |
---|---|---|
{IMAGE} |
L’image conteneur que vous souhaitez utiliser. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{MEMORY_SIZE} |
Quantité appropriée de mémoire à allouer à votre conteneur. | 4g |
{NUMBER_CPUS} |
Quantité appropriée de processeurs à allouer à votre conteneur. | 4 |
{LICENSE_MOUNT} |
Chemin où la licence est localisée, puis montée. | /host/license:/path/to/license/directory |
{OUTPUT_PATH} |
Chemin de sortie pour la journalisation des enregistrements d’utilisation. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Emplacement du dossier de licence sur le système de fichiers local du conteneur. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Emplacement du dossier de sortie sur le système de fichiers local du conteneur. | /path/to/output/directory |
Exemple dedocker run
commande
docker run --rm -it -p 5000:5050 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \
-v {LICENSE_MOUNT} \
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}
Le démarrage d’un conteneur déconnecté est similaire au démarrage d’un conteneur connecté. Les conteneurs déconnectés nécessitent un paramètre de licence ajouté. Voici un exemple de fichier docker-compose.yml pour démarrer un conteneur personnalisé en mode déconnecté. Ajoutez la variable d’environnement CUSTOM_LICENSE_MOUNT_PATH avec une valeur définie sur le dossier contenant le fichier de licence téléchargé, et la variable d’environnement OUTPUT_MOUNT_PATH
avec une valeur définie sur le dossier qui contient les journaux d’utilisation.
version: '3.3'
services:
nginx:
image: nginx:alpine
container_name: reverseproxy
volumes:
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
ports:
- "5000:5050"
layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest
environment:
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
Mounts:License: /license
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
- type: bind
source: ${LAYOUT_LICENSE_MOUNT_PATH}
target: /license
expose:
- "5000"
custom-template:
container_name: azure-cognitive-service-custom-template
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/custom-template-3.0:latest
restart: always
depends_on:
- layout
environment:
AzureCognitiveServiceLayoutHost: http://azure-cognitive-service-layout:5000
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
Mounts:License: /license
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
- type: bind
source: ${CUSTOM_LICENSE_MOUNT_PATH}
target: /license
expose:
- "5000"
studio:
container_name: form-recognizer-studio
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/studio:3.0
environment:
ONPREM_LOCALFILE_BASEPATH: /onprem_folder
STORAGE_DATABASE_CONNECTION_STRING: /onprem_db/Application.db
volumes:
- type: bind
source: ${FILE_MOUNT_PATH} # path to your local folder
target: /onprem_folder
- type: bind
source: ${DB_MOUNT_PATH} # path to your local folder
target: /onprem_db
ports:
- "5001:5001"
user: "1000:1000" # echo $(id -u):$(id -g)
Autres paramètres et commandes
Voici quelques paramètres et commandes supplémentaires dont vous avez besoin pour exécuter le conteneur.
Enregistrements d’utilisation
Quand vous utilisez des conteneurs Docker dans un environnement déconnecté, le conteneur écrit des enregistrements d’utilisation dans un volume où ils sont collectés au fil du temps. Vous pouvez également appeler un point de terminaison API REST pour générer un rapport sur l’utilisation du service.
Arguments pour le stockage de journaux
Dans le cadre d’une exécution dans un environnement déconnecté, le conteneur doit avoir accès à un montage de sortie pour y stocker les journaux d’utilisation. Par exemple, vous pouvez inclure -v /host/output:{OUTPUT_PATH}
et Mounts:Output={OUTPUT_PATH}
dans l’exemple suivant, en remplaçant {OUTPUT_PATH}
par le chemin où les journaux sont stockés :
docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}
Obtient des enregistrements en utilisant les points de terminaison du conteneur
Le conteneur fournit deux points de terminaison pour retourner des enregistrements sur son utilisation.
Obtenir tous les enregistrements
Le point de terminaison suivant fournit un rapport récapitulant toutes les données d’utilisation collectées dans le répertoire d’enregistrements de facturation monté.
https://<service>/records/usage-logs/
Exemple de point de terminaison HTTPS
http://localhost:5000/records/usage-logs
Le point de terminaison du journal d’utilisation retourne une réponse JSON similaire à l’exemple suivant :
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 256345435
}
]
}
Obtenir les enregistrements pour un mois spécifique
Le point de terminaison suivant fournit un rapport récapitulant l’utilisation pendant un mois et une année spécifiques.
https://<service>/records/usage-logs/{MONTH}/{YEAR}
Ce point de terminaison de journaux d’utilisation retourne une réponse JSON similaire à l’exemple suivant :
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 56097
}
]
}
Dépannage
Exécutez le conteneur avec un montage de sortie et une journalisation activés. Ces paramètres permettent au conteneur de générer des fichiers journaux utiles pour résoudre les problèmes qui se produisent lors du démarrage ou de l’exécution du conteneur.
Conseil
Pour plus d’informations et de conseils sur la résolution des problèmes, consultez les questions fréquentes sur les conteneurs déconnectés.