Настройка Docker-контейнеров Read OCR
Вы можете настроить среду выполнения контейнера OCR для распознавания визуального распознавания Azure с помощью docker run
аргументов команд. Контейнер поддерживает несколько обязательных и несколько необязательных параметров. Доступны несколько примеров этой команды. Для конкретного контейнера настраиваются входные параметры выставления счетов.
Параметры конфигурации
К контейнеру применяются следующие параметры конфигурации:
Обязательное поле | Параметр | Purpose |
---|---|---|
Да | ApiKey | Отслеживает данные для выставления счетов. |
No | ApplicationInsights | Позволяет добавить в контейнер поддержку телеметрии Azure Application Insights. |
Да | Выставление счетов | Задает URI конечной точки для ресурса службы в Azure. |
Да | Лицензионное соглашение | Указывает, что вы приняли условия лицензии для контейнера. |
No | Fluentd | Записывает данные в журнал и при необходимости передает метрики на сервер Fluentd. |
No | Прокси-сервер HTTP: | Настраивает прокси-сервер HTTP для исходящих запросов. |
No | Ведение журнала | Обеспечивает поддержку ведения журнала ASP.NET Core для вашего контейнера. |
No | Подключения | Считывает и записывает данные с главного компьютера в контейнер и обратно. |
Внимание
Параметры ApiKey
, Billing
и Eula
используются совместно, и для всех трех параметров необходимо указать допустимые значения. В противном случае контейнер не запустится. Дополнительные сведения об использовании этих параметров конфигурации для создания экземпляра контейнера см. в разделе Выставление счетов.
К контейнеру применяются следующие контейнерные параметры конфигурации:
Обязательное поле | Параметр | Характер использования |
---|---|---|
No | ReadEngineConfig:ResultExpirationPeriod | Только контейнеры версии 2.0. Истечение срока действия результата в часах. Значение по умолчанию — 48 часов. Этот параметр указывает, когда система должна очистить результаты распознавания. Например, если resultExpirationPeriod=1 , система очищает результат распознавания через 1 час после процесса. Если значение resultExpirationPeriod=0 , система очищает результат распознавания после получения результата. |
No | Cache:Redis | Только контейнеры версии 2.0. Активирует хранилище Redis для хранения результатов. Кэш необходим, если несколько контейнеров чтения OCR помещаются за пределами подсистемы балансировки нагрузки. |
No | Queue:RabbitMQ | Только контейнеры версии 2.0. Активирует RabbitMQ для решения задач диспетчеризации. Этот параметр полезен при помещении нескольких контейнеров чтения OCR за пределы подсистемы балансировки нагрузки. |
No | Queue:Azure:QueueVisibilityTimeoutInMilliseconds | Только контейнеры версии 3.0. Установите таймер на время, в течение которого сообщение будет невидимым при обработке другой рабочей ролью. |
No | Storage::DocumentStore::MongoDB | Только контейнеры версии 2.0. Активирует MongoDB для постоянного хранения результатов. |
No | Storage:ObjectStore:AzureBlob:ConnectionString | Только контейнеры версии 3.0. Строка подключения к хранилищу blob-объектов Azure. |
No | Storage:TimeToLiveInDays | Только контейнеры версии 3.0. Истечение срока действия результата в днях. Этот параметр указывает, когда система должна очистить результаты распознавания. Значение по умолчанию — 2 дня. Это означает, что для результата существующего более длительное время, чем указанный период, не гарантируется успешное извлечение. Значение является целым числом, и оно должно находиться в диапазоне от 1 дня до 7 дней. |
No | StorageTimeToLiveInMinutes | Версия 3.2-model-2021-09-30-preview и новые контейнеры. Истечение срока действия результата в минутах. Этот параметр указывает, когда система должна очистить результаты распознавания. Значение по умолчанию — 2 дня (2880 минут). Это означает, что для результата существующего более длительное время, чем указанный период, не гарантируется успешное извлечение. Значение является целым числом, и оно должно находиться в диапазоне от 60 минут до 7 дней (10080 минут). |
No | Task:MaxRunningTimeSpanInMinutes | Только контейнеры версии 3.0. Максимальное время выполнения одиночного запроса. Значение по умолчанию — 60 минут. |
No | EnableSyncNTPServer | Только контейнеры версии 3.x, за исключением контейнеров версии 3.2-model-2021-09-30-preview и более новых контейнеров. Включает механизм синхронизации NTP-сервера, который обеспечивает синхронизацию между системным временем и ожидаемой средой выполнения задачи. Обратите внимание, что для этого требуется внешний сетевой трафик. Значение по умолчанию — true . |
No | NTPServerAddress | Только контейнеры версии 3.x, за исключением контейнеров версии 3.2-model-2021-09-30-preview и более новых контейнеров. NTP-сервер для синхронизации времени. Значение по умолчанию — time.windows.com . |
No | Mounts:Shared | Только контейнеры версии 3.0. Локальная папка для хранения результатов распознавания. Значение по умолчанию — /share . Для запуска контейнера без использования хранилища BLOB-объектов Azure рекомендуется подключить том к этой папке, чтобы обеспечить наличие пространства для результатов распознавания. |
Параметр конфигурации ApiKey
Этот ApiKey
параметр задает ключ ресурса визуального зрения, используемый для отслеживания сведений о выставлении счетов для контейнера. Необходимо указать значение apiKey, а значение должно быть допустимым ключом для ресурса визуального распознавания, указанного Billing
для параметра конфигурации.
Этот параметр можно найти в следующем месте.
- портал Azure: Управление ресурсами служб искусственного интеллекта Azure в разделе "Ключи"
Параметр ApplicationInsights.
Параметр ApplicationInsights
позволяет добавить в контейнер поддержку телеметрии Azure Application Insights. Служба Application Insights обеспечивает детализированный мониторинг контейнера. Вы можете легко отслеживать доступность, производительность и использование своего контейнера. Вы также можете быстро идентифицировать и диагностировать ошибки в контейнере.
В следующей таблице описаны параметры конфигурации, поддерживаемые в разделе ApplicationInsights
.
Обязательное поле | Имя. | Тип данных | Description |
---|---|---|---|
Нет | InstrumentationKey |
Строка | Ключ инструментирования экземпляра Application Insights, которому отправляются данные телеметрии для контейнера. Дополнительные сведения см. в статье Application Insights для ASP.NET Core. Пример: InstrumentationKey=123456789 |
Параметр конфигурации выставления счетов
Этот Billing
параметр задает URI конечной точки ресурса служб ИИ Azure в Azure, используемого для измерения сведений о выставлении счетов для контейнера. Необходимо указать значение для этого параметра конфигурации, а значение должно быть допустимым универсальным кодом ресурса конечных точек для ресурса служб искусственного интеллекта Azure в Azure. Отчеты об использовании контейнера примерно каждые 10—15 минут.
Этот параметр можно найти в следующем месте.
- портал Azure: Общие сведения о службах ИИ Azure, помеченные
Endpoint
Не забудьте добавить маршрут vision/<version>
к универсальному коду ресурса (URI) конечной точки, как показано в следующей таблице.
Обязательное поле | Имя. | Тип данных | Description |
---|---|---|---|
Да | Billing |
Строка | URI конечной точки выставления счетов Пример: Billing=https://westcentralus.api.cognitive.microsoft.com/vision/v3.2 |
Параметр Eula
Параметр Eula
указывает, что вы приняли условия лицензии для контейнера. Для этого параметра конфигурации необходимо указать значение accept
.
Обязательное поле | Имя. | Тип данных | Description |
---|---|---|---|
Да | Eula |
Строка | Принятие условий лицензионного соглашения Пример: Eula=accept |
Контейнеры служб искусственного интеллекта Azure лицензируются в соответствии с вашим соглашением , определяющим использование Azure. Если вы не заключали соглашение, регламентирующее использование Azure, вы подтверждаете, что ваше соглашение об использовании Azure является соглашением Microsoft Online Subscription, которое содержит условия использования веб-служб. Что касается предварительных версий, вы также соглашаетесь с Дополнительными условиями использования предварительных версий Microsoft Azure. Факт использования вами контейнера подтверждает ваше согласие с этими условиями.
Параметры Fluentd
Fluentd — это сборщик данных с открытым кодом для унифицированного ведения журнала. Параметры Fluentd
управляют подключением контейнера к серверу Fluentd. В состав контейнера входит поставщик ведения журнала Fluentd, который позволяет контейнеру записывать данные журналов и (необязательно) данные метрик на сервер Fluentd.
В следующей таблице описаны параметры конфигурации, поддерживаемые в разделе Fluentd
.
Имя. | Тип данных | Description |
---|---|---|
Host |
Строка | IP-адрес или имя узла DNS сервера Fluentd. |
Port |
Целое | Порт сервера Fluentd. Значение по умолчанию — 24224. |
HeartbeatMs |
Целое | Интервал пульса в миллисекундах. Если до окончания этого интервала не отправлялся никакой трафик событий, пульс отправляется на сервер Fluentd. Значение по умолчанию — 60 000 миллисекунд (1 минута). |
SendBufferSize |
Целое | Место в сетевом буфере (в байтах), выделенное для операций отправки. Значение по умолчанию — 32768 байт (32 килобайта). |
TlsConnectionEstablishmentTimeoutMs |
Целое | Время ожидания (в миллисекундах) до установки соединения по протоколу SSL/TLS с сервером Fluentd. Значение по умолчанию — 10 000 миллисекунд (10 секунд). Если для параметра UseTLS задано значение false, то это значение игнорируется. |
UseTLS |
Логический | Указывает, должен ли контейнер использовать протокол SSL/TLS для связи с сервером Fluentd. По умолчанию используется значение false. |
Параметры учетных данных прокси-сервера HTTP
Чтобы настроить прокси-сервер HTTP для исходящих запросов, используйте следующие два аргумента.
Имя. | Тип данных | Description |
---|---|---|
HTTP_PROXY | строка | Используемый прокси-сервер, например http://proxy:8888 .<proxy-url> |
HTTP_PROXY_CREDS | строка | Любые учетные данные, необходимые для выполнения аутентификации на прокси-сервере, например username:password . Это значение должно быть в нижнем регистре. |
<proxy-user> |
строка | Пользователь прокси-сервера. |
<proxy-password> |
строка | Пароль, связанный с параметром <proxy-user> прокси-сервера. |
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> \
Параметры ведения журнала
Параметры Logging
управляют поддержкой ведения журнала ASP.NET Core для контейнера. Вы можете использовать для контейнера те же параметры конфигурации и значения, что и для приложения ASP.NET Core.
Контейнер поддерживает указанных ниже поставщиков ведения журналов.
Provider | Характер использования |
---|---|
Консоль | Поставщик ведения журнала Console для ASP.NET Core. Для этого поставщика ведения журнала поддерживаются все параметры конфигурации ASP.NET Core и значения по умолчанию. |
Debug | Поставщик ведения журнала Debug для ASP.NET Core. Для этого поставщика ведения журнала поддерживаются все параметры конфигурации ASP.NET Core и значения по умолчанию. |
Диск | Поставщик ведения журнала JSON. Поставщик ведения журнала записывает данные журнала в выходное подключение. |
В этой команде для контейнера хранятся сведения о ведении журнала в формате JSON для выходного подключения:
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
Во время выполнения контейнера в этой команде для контейнера отображается отладочная информация с префиксом dbug
:
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
Ведение журнала диска
Поставщик ведения журнала Disk
поддерживает перечисленные ниже параметры конфигурации:
Имя. | Тип данных | Description |
---|---|---|
Format |
Строка | Выходной формат файлов журналов. Примечание. Чтобы включить поставщика ведения журнала, для этого параметра необходимо задать значение json . Если это значение задано без указания выходного подключения, при создании экземпляра контейнера возникает ошибка. |
MaxFileSize |
Целое | Максимальный размер файла журнала в мегабайтах (МБ). Когда размер текущего файла журнала достигает этого значения или превышает его, поставщик ведения журнала создает файл журнала. Если задано значение –1, то размер файла журнала ограничивается только максимальным размером файла (если он задан) для выходного подключения. Значение по умолчанию равно 1. |
Дополнительные сведения о настройке поддержки ведения журналов для ASP.NET Core см. в разделе Настройка файла параметров.
Параметры подключения
Используйте подключения привязок для чтения данных из контейнера и записи в него. Вы можете указать входное или выходное подключение, указав параметр --mount
в команде docker run.
Контейнеры Визуального распознавания искусственного интеллекта Azure не используют входные или выходные подключения для хранения обучающих или служебных данных.
Точный синтаксис расположения подключения к узлу зависит от операционной системы узла. Кроме того, расположение подключения на главном компьютере может оказаться недоступным из-за конфликта между разрешениями для учетной записи службы Docker и расположением подключения к узлу.
Необязательно | Имя. | Тип данных | Description |
---|---|---|---|
Не разрешенный | Input |
Строка | Контейнеры Визуального распознавания искусственного интеллекта Azure не используют это. |
Необязательно | Output |
Строка | Цель выходного подключения. Значение по умолчанию — /output . Это расположение файлов журналов. Сюда входят журналы контейнера. Пример: --mount type=bind,src=c:\output,target=/output |
Примеры команд docker run
В следующих примерах параметры конфигурации иллюстрируют процесс написания и использования команд docker run
. После запуска контейнер продолжает работу, пока вы его не остановите.
- Символ продолжения строки: в следующих разделах команда Docker в качестве символа продолжения строки использует обратную косую черту
\
. Замените или удалите ее в соответствии с требованиями вашей операционной системы. - Порядок аргументов: Не меняйте порядок аргументов, если у вас недостаточно опыта работы с Docker-контейнерами.
Замените строку {имя_аргумента} собственными значениями.
Заполнитель | Значение | Формат или пример |
---|---|---|
{API_KEY} | Ключ конечной точки ресурса Визуального зрения на странице ключей ресурсов. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | Значение конечной точки выставления счетов доступно на странице обзора ресурсов. | См. раздел Сбор обязательных параметров с наглядными примерами. |
Примечание.
Новые ресурсы, созданные после 1 июля 2019 г., будут использовать пользовательские имена поддоменов. Дополнительные сведения и полный список региональных конечных точек см. в разделе "Пользовательские имена поддомена" для служб ИИ Azure.
Внимание
Для запуска контейнера необходимо указать параметры Eula
, Billing
и ApiKey
. В противном случае контейнер не запустится. Дополнительные сведения см. в разделе о выставлении счетов.
Значение ApiKey — это ключ на странице ключей ресурсов визуального распознавания.
Примеры Docker-контейнера
Следующие примеры из Docker предназначены для контейнеров Read OCR.
Простой пример
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}
Пример ведения журнала
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
Следующие шаги
- Ознакомьтесь со статьей Установка и запуск контейнеров.