Configurer des conteneurs Docker OCR Read
Vous pouvez configurer l'environnement de runtime du conteneur OCR Read d’Azure AI Vision à l'aide des arguments de la commande docker run
. Ce conteneur a plusieurs paramètres obligatoires et quelques paramètres facultatifs. Plusieurs exemples de commande sont disponibles. Les paramètres propres aux conteneurs correspondent aux paramètres de facturation.
Paramètres de configuration
Le conteneur a les paramètres de configuration suivants :
Obligatoire | Paramètre | Objectif |
---|---|---|
Oui | ApiKey | Assure le suivi des informations de facturation. |
Non | ApplicationInsights | Permet d’ajouter la prise en charge de la télémétrie Azure Application Insights à votre conteneur. |
Oui | Billing | Spécifie l’URI de point de terminaison de la ressource de service sur Azure. |
Oui | Eula | Indique que vous avez accepté la licence pour le conteneur. |
Non | Fluentd | Écrit les données des journaux et, éventuellement, des métriques, sur un serveur Fluentd. |
Non | Proxy HTTP | Configure un proxy HTTP pour effectuer des requêtes sortantes. |
Non | Logging | Fournit la prise en charge de la journalisation ASP.NET Core pour votre conteneur. |
Non | Mounts | Lit et écrit des données de l’ordinateur hôte sur le conteneur, et du conteneur sur l’ordinateur hôte. |
Important
Les paramètres ApiKey
, Billing
et Eula
sont utilisés conjointement, et vous devez fournir des valeurs valides pour les trois ; à défaut, votre conteneur ne démarrera pas. Pour plus d’informations sur l’instanciation d’un conteneur à l’aide de ces paramètres de configuration, consultez Facturation.
Les paramètres de configuration spécifiques au conteneur sont les suivants :
Obligatoire | Paramètre | Objectif |
---|---|---|
Non | ReadEngineConfig:ResultExpirationPeriod | Conteneurs v2.0 uniquement. Période d’expiration du résultat, en heures. L'intervalle par défaut est de 48 heures. Le paramètre spécifie à quel moment le système doit effacer les résultats de la reconnaissance. Par exemple, si resultExpirationPeriod=1 , le système efface le résultat de la reconnaissance 1 heure après le processus. Si resultExpirationPeriod=0 , le système efface le résultat de la reconnaissance après récupération du résultat. |
Non | Cache:Redis | Conteneurs v2.0 uniquement. Active le stockage Redis pour le stockage des résultats. Un cache est obligatoire si plusieurs conteneurs OCR de lecture sont placés derrière un équilibreur de charge. |
Non | Queue:RabbitMQ | Conteneurs v2.0 uniquement. Active RabbitMQ pour la répartition des tâches. Ce paramètre est utile lorsque plusieurs conteneurs OCR de lecture sont placés derrière un équilibreur de charge. |
Non | Queue:Azure:QueueVisibilityTimeoutInMilliseconds | Conteneurs v3.x uniquement. Délai à l'issue duquel un message devient invisible car un rôle de travail est en train de le traiter. |
Non | Storage::DocumentStore::MongoDB | Conteneurs v2.0 uniquement. Active MongoDB pour le stockage permanent des résultats. |
Non | Storage:ObjectStore:AzureBlob:ConnectionString | Conteneurs v3.x uniquement. Chaîne de connexion de stockage d'objets blob Azure. |
Non | Storage:TimeToLiveInDays | Conteneurs v3.x uniquement. Période d’expiration du résultat, en jours. Le paramètre spécifie à quel moment le système doit effacer les résultats de la reconnaissance. La valeur par défaut est 2 jours, ce qui signifie qu’il n’est pas garanti que les résultats actifs au-delà de cette période puissent être récupérés. La valeur est entière et doit être comprise entre 1 et 7 jour(s). |
No | StorageTimeToLiveInMinutes | v3.2-model-2021-09-30-preview et nouveaux conteneurs. Période d’expiration du résultat, en minutes. Le paramètre spécifie à quel moment le système doit effacer les résultats de la reconnaissance. La valeur par défaut est 2 jours (2880 minutes), ce qui signifie qu’il n’est pas garanti que les résultats actifs au-delà de cette période puissent être récupérés. La valeur est entière et doit être comprise entre 60 minutes et 7 jours (10 080 minutes). |
Non | Task:MaxRunningTimeSpanInMinutes | Conteneurs v3.x uniquement. Durée maximale d’exécution pour une requête unique. La valeur par défaut est de 60 minutes. |
No | EnableSyncNTPServer | Conteneurs v3.x uniquement, sauf pour les conteneurs v3.2-model-2021-09-30-preview et plus récents. Active le mécanisme de synchronisation du serveur NTP, qui garantit la synchronisation entre l’heure système et le runtime de tâche attendu. Notez que ceci nécessite un trafic réseau externe. Par défaut, il s’agit de true . |
Non | NTPServerAddress | Conteneurs v3.x uniquement, sauf pour les conteneurs v3.2-model-2021-09-30-preview et plus récents. Serveur NTP pour la synchronisation de l’heure. Par défaut, il s’agit de time.windows.com . |
Non | Mounts:Shared | Conteneurs v3.x uniquement. Dossier local pour le stockage du résultat de la reconnaissance. Par défaut, il s’agit de /share . Pour l’exécution d’un conteneur sans utiliser le stockage Blob Azure, nous vous recommandons de monter un volume dans ce dossier pour avoir la certitude de disposer de l’espace suffisant pour les résultats de la reconnaissance. |
Paramètre de configuration ApiKey
Le paramètre ApiKey
spécifie la clé de ressource Vision utilisée pour suivre les informations de facturation pour le conteneur. Vous devez spécifier une valeur pour ApiKey et il doit s’agir d’une clé valide pour la ressource Vision spécifiée pour le paramètre de configuration Billing
.
Vous trouverez ce paramètre à l’emplacement suivant :
- Portail Azure : Gestion des ressources Azure AI services, sous Clés
Paramètre ApplicationInsights
Le paramètre ApplicationInsights
vous permet d’ajouter la prise en charge de la télémétrie Azure Application Insights à votre conteneur. Application Insights assure une supervision approfondie de votre conteneur. Vous pouvez facilement superviser la disponibilité, les performances et l’utilisation de votre conteneur. De plus, vous pouvez identifier et diagnostiquer rapidement les erreurs dans votre conteneur.
Le tableau suivant décrit les paramètres de configuration pris en charge sous la section ApplicationInsights
.
Obligatoire | Nom | Type de données | Description |
---|---|---|---|
Non | InstrumentationKey |
String | Clé d’instrumentation de l’instance Application Insights à laquelle les données de télémétrie du conteneur sont envoyées. Pour plus d’informations, consultez Application Insights pour ASP.NET Core. Exemple : InstrumentationKey=123456789 |
Paramètre de configuration Billing
Le paramètre Billing
permet de spécifier l’URI de point de terminaison de la ressource Azure AI Services sur Azure servant à effectuer l’analyse des informations de facturation du conteneur. Vous devez donner une valeur à ce paramètre de configuration, qui doit être un URI de point de terminaison valide pour une ressource Azure AI services dans Azure. Le conteneur crée des rapports sur l’utilisation toutes les 10 à 15 minutes.
Vous trouverez ce paramètre à l’emplacement suivant :
- Portail Azure : Vue d’ensemble Azure AI Services, étiquetée
Endpoint
Pensez à ajouter le routage vision/<version>
à l’URI de point de terminaison, comme dans le tableau suivant.
Obligatoire | Nom | Type de données | Description |
---|---|---|---|
Oui | Billing |
String | URI du point de terminaison de facturation Exemple : Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2 |
Paramètre Eula
Le paramètre Eula
indique que vous avez accepté la licence pour le conteneur. Vous devez attribuer à ce paramètre de configuration une valeur qui doit être définie sur accept
.
Obligatoire | Nom | Type de données | Description |
---|---|---|---|
Oui | Eula |
String | Acceptation de la licence Exemple : Eula=accept |
Les conteneurs Azure AI services sont accordés sous licence selon les termes d’un contrat qui régit votre utilisation d’Azure. Si vous ne disposez pas d’un contrat existant régissant votre utilisation d’Azure, vous acceptez que votre utilisation d’Azure soit régie par le Contrat d’abonnement à Microsoft Online, qui intègre les conditions des services en ligne. Pour les préversions, vous acceptez également les conditions d’utilisation supplémentaires des préversions Microsoft Azure. En utilisant le conteneur, vous acceptez les termes du contrat.
Paramètres Fluentd
Fluentd est un collecteur de données open source pour la journalisation unifiée. Les paramètres Fluentd
gèrent la connexion du conteneur à un serveur Fluentd. Le conteneur comprend un fournisseur de journalisation Fluentd qui permet à votre conteneur d’écrire des données de journaux d’activité et, éventuellement, de métriques, sur un serveur Fluentd.
Le tableau suivant décrit les paramètres de configuration pris en charge sous la section Fluentd
.
Name | Type de données | Description |
---|---|---|
Host |
String | Adresse IP ou nom d’hôte DNS du serveur Fluentd. |
Port |
Integer | Port du serveur Fluentd. La valeur par défaut est 24224. |
HeartbeatMs |
Integer | Intervalle de pulsation, en millisecondes. Si aucun trafic d’événement n’est envoyé avant l’expiration de cet intervalle, une pulsation est envoyée au serveur Fluentd. La valeur par défaut est de 60 000 millisecondes (1 minute). |
SendBufferSize |
Integer | Espace de mémoire tampon réseau, en octets, alloué pour les opérations d’envoi. La valeur par défaut est de 32 768 octets (32 kilo-octets). |
TlsConnectionEstablishmentTimeoutMs |
Integer | Délai d’attente, en millisecondes, pour établir une connexion SSL/TLS avec le serveur Fluentd. La valeur par défaut est de 10 000 millisecondes (10 secondes). Si UseTLS est défini sur false, cette valeur est ignorée. |
UseTLS |
Boolean | Indique si le conteneur doit utiliser SSL/TLS pour communiquer avec le serveur Fluentd. La valeur par défaut est false. |
Paramètres des informations d’identification du proxy HTTP
Si vous devez configurer un proxy HTTP pour effectuer des requêtes sortantes, utilisez les deux arguments suivants :
Name | Type de données | Description |
---|---|---|
HTTP_PROXY | string | Le proxy à utiliser, par exemple, http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | Toutes les informations d’identification nécessaires pour s’authentifier auprès du proxy, par exemple username:password . Cette valeur doit être en minuscules. |
<proxy-user> |
string | L’utilisateur pour le proxy. |
<proxy-password> |
string | Le mot de passe associé à <proxy-user> pour le 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> \
Paramètres de journalisation
Les paramètres Logging
gèrent la prise en charge de la journalisation ASP.NET Core pour votre conteneur. Vous pouvez utiliser pour votre conteneur les mêmes paramètres et valeurs de configuration que ceux d’une application ASP.NET Core.
Le conteneur prend en charge les fournisseurs de journalisation suivants :
Fournisseur | Objectif |
---|---|
Console | Fournisseur de journalisation Console ASP.NET Core. Tous les paramètres de configuration ASP.NET Core et les valeurs par défaut de ce fournisseur de journalisation sont pris en charge. |
Déboguer | Fournisseur de journalisation Debug ASP.NET Core. Tous les paramètres de configuration ASP.NET Core et les valeurs par défaut de ce fournisseur de journalisation sont pris en charge. |
Disque | Fournisseur de journalisation JSON. Ce fournisseur de journalisation écrit les données de journal dans le montage de sortie. |
Cette commande de conteneur stocke des informations de journalisation au format JSON dans le montage de sortie :
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
Cette commande de conteneur affiche des informations de débogage, avec le préfixe dbug
, tandis que le conteneur s’exécute :
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
Journalisation Disk
Le fournisseur de journalisation Disk
prend en charge les paramètres de configuration suivants :
Name | Type de données | Description |
---|---|---|
Format |
String | Format de sortie des fichiers journaux. Remarque : Cette valeur doit être définie sur json pour activer le fournisseur de journalisation. Si cette valeur est spécifiée sans que le montage de sortie soit aussi spécifié pendant l’instanciation d’un conteneur, une erreur se produit. |
MaxFileSize |
Integer | Taille maximale, en mégaoctets (Mo), d’un fichier journal. Dès que la taille du fichier journal actif atteint ou dépasse cette valeur, un nouveau fichier journal est commencé par le fournisseur de journalisation. Si la valeur -1 est spécifiée, la taille du fichier journal est limitée uniquement par la taille de fichier maximale, le cas échéant, pour le montage de sortie. La valeur par défaut est 1. |
Pour plus d’informations sur la configuration de la prise en charge de la journalisation ASP.NET Core, consultez Configuration d’un fichier de paramètres.
Paramètres de montage
Utilisez des montages de liaisons pour lire et écrire des données vers et à partir du conteneur. Vous pouvez spécifier un montage d’entrée ou de sortie en spécifiant l’option --mount
dans la commande docker run.
Les conteneurs Azure AI Vision n’utilisent pas de montage d’entrée ou de sortie pour stocker des données d’apprentissage ou de service.
La syntaxe exacte de l’emplacement de montage d’hôte varie en fonction du système d’exploitation hôte. De plus, l’emplacement de montage de l’ordinateur hôte peut ne pas être accessible en raison d’un conflit entre les autorisations utilisées par le compte de service Docker et les autorisations de l’emplacement de montage de l’hôte.
Facultatif | Nom | Type de données | Description |
---|---|---|---|
Non autorisé | Input |
Chaîne | Les conteneurs Azure AI Vision n’utilisent pas cet élément. |
Facultatif | Output |
String | Cible du montage de sortie. La valeur par défaut est /output . Il s’agit de l’emplacement des journaux d’activité. Les journaux d’activité de conteneur sont inclus. Exemple : --mount type=bind,src=c:\output,target=/output |
Exemples de commandes docker run
Les exemples suivants utilisent les paramètres de configuration pour illustrer comment écrire et utiliser des commandes docker run
. Une fois en cours d’exécution, le conteneur continue à s’exécuter jusqu’à ce que vous l’arrêtiez.
- Caractère de continuation de ligne : Les commandes Docker dans les sections suivantes utilisent la barre oblique inverse,
\
, comme caractère de continuation de ligne. Remplacez-la ou supprimez-la en fonction des exigences de votre système d’exploitation hôte. - Ordre des arguments : Ne changez pas l’ordre des arguments, sauf si vous avez une connaissance approfondie des conteneurs Docker.
Remplacez {argument_name} par vos propres valeurs :
Espace réservé | Valeur | Format ou exemple |
---|---|---|
{API_KEY} | La clé de point de terminaison de la ressource Vision dans la page des clés de ressource. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | La valeur de point de terminaison de facturation est disponible dans la page de vue d’ensemble de la ressource. | Pour obtenir des exemples explicites, consultez Collecter les paramètres obligatoires. |
Notes
Les nouvelles ressources créées après le 1er juillet 2019 utilisent des noms de sous-domaines personnalisés. Pour plus d’informations et afin d’obtenir une liste complète des points de terminaison régionaux, consultez Noms personnalisés de sous-domaine pour Azure AI services.
Important
Vous devez spécifier les options Eula
, Billing
et ApiKey
pour exécuter le conteneur, sinon il ne démarrera pas. Pour plus d'informations, consultez Facturation.
La valeur ApiKey est la Clé de la page des clés de la ressource Vision.
Exemples de conteneur Docker
Les exemples Docker suivants s’appliquent au conteneur OCR Read.
Exemple de base
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}
Exemple de journalisation
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