Настройка однопараметрических контейнеров Детектора аномалий

Важно!

Начиная с 20 сентября 2023 г. вы не сможете создавать новые Детектор аномалий ресурсы. Служба Детектор аномалий отменяется 1 октября 2026 года.

Среда выполнения контейнера Детектор аномалий API настраивается с помощью docker run аргументов команды. Контейнер поддерживает несколько обязательных и несколько необязательных параметров. Доступны несколько примеров этой команды. Для конкретного контейнера настраиваются входные параметры выставления счетов.

Параметры конфигурации

К контейнеру применяются следующие параметры конфигурации.

Обязательное поле Параметр Purpose
Да ApiKey Используется для отслеживания данных для выставлении счетов.
Нет ApplicationInsights Позволяет добавить в контейнер поддержку телеметрии Azure Application Insights.
Да Выставление счетов Задает URI конечной точки для ресурса службы в Azure.
Да Лицензионное соглашение Указывает, что вы приняли условия лицензии для контейнера.
Нет Fluentd Записывает данные в журнал и (необязательно) передает метрики на сервер Fluentd.
Нет прокси-серверу HTTP Настраивает прокси-сервер HTTP для исходящих запросов.
Нет Ведение журнала Обеспечивает поддержку ведения журнала ASP.NET Core для вашего контейнера.
Нет Подключения Читает и записывает данные с главного компьютера в контейнер и обратно.

Важно!

Параметры ApiKey, Billing и Eula используются совместно, и для всех трех параметров необходимо указать допустимые значения. В противном случае контейнер не запустится. Дополнительные сведения об использовании этих параметров конфигурации для создания экземпляра контейнера см. в разделе Выставление счетов.

Параметр конфигурации ApiKey

Параметр ApiKey определяет ключ ресурса Azure, который используется для отслеживания данных для выставления счетов для контейнера. Необходимо указать значение для ApiKey, и это значение должно быть допустимым ключом для ресурса детектора аномалий, указанного в Billing параметре конфигурации.

Этот параметр можно найти в следующем месте.

  • Портал Azure: управление ресурсами детектора аномалий в разделе ключи

Параметр ApplicationInsights.

Параметр ApplicationInsights позволяет добавить в контейнер поддержку телеметрии Azure Application Insights. Служба Application Insights обеспечивает детализированный мониторинг контейнера. Вы можете легко отслеживать доступность, производительность и использование своего контейнера. Вы также можете быстро идентифицировать и диагностировать ошибки в контейнере.

В следующей таблице описаны параметры конфигурации, поддерживаемые в разделе ApplicationInsights.

Обязательное поле Имя Тип данных Description
Нет InstrumentationKey Строка Ключ инструментирования экземпляра Application Insights, которому отправляются данные телеметрии для контейнера. Дополнительные сведения см. в статье Application Insights для ASP.NET Core.

Пример:
InstrumentationKey=123456789

Параметр конфигурации выставления счетов

Этот Billing параметр указывает URI конечной точки ресурса детектора аномалий в Azure, используемого для измерения информации о выставлении счетов для контейнера. Необходимо указать значение для этого параметра конфигурации, и это значение должно быть допустимым URI конечной точки для ресурса детектора аномалий в Azure.

Этот параметр можно найти в следующем месте.

  • Портал Azure: обзор детектора аномалий, помеченный Endpoint
Обязательное поле Имя Тип данных Description
Да Billing Строка URI конечной точки биллинга. Дополнительные сведения о получении URI выставления счетов см. в разделе Сбор обязательных параметров. Дополнительные сведения и полный список региональных конечных точек см. в разделе "Пользовательские имена поддомена" для служб ИИ Azure.

Параметр 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.

Контейнеры детектора аномалий не используют входные или выходные подключения для хранения учебных данных или данных службы.

Точный синтаксис расположения подключения к узлу зависит от операционной системы узла. Кроме того, расположение подключения на главном компьютере может оказаться недоступным из-за конфликта между разрешениями для учетной записи службы Docker и расположением подключения к узлу.

Необязательно Имя Тип данных Description
Не разрешенный Input Строка Контейнеры детектора аномалий не используют это.
Необязательно Output Строка Цель выходного подключения. Значение по умолчанию — /output. Это расположение файлов журналов. Сюда входят журналы контейнера.

Пример:
--mount type=bind,src=c:\output,target=/output

Примеры команд docker run

В следующих примерах параметры конфигурации иллюстрируют процесс написания и использования команд docker run. После запуска контейнер продолжает работу, пока вы его не остановите.

  • Символ продолжения строки: в следующих разделах команда Docker в качестве символа продолжения строки использует обратную косую черту\ для оболочки bash. Замените или удалите ее в соответствии с требованиями вашей операционной системы. Например, символ продолжения строки для Windows — это крышка (^). Замените обратную косую черту крышкой.
  • Порядок аргументов: Не меняйте порядок аргументов, если у вас недостаточно опыта работы с Docker-контейнерами.

Замените значение в скобках ({}) собственными значениями:

Заполнитель Значение Формат или пример
{API_KEY} Ключ конечной точки ресурса Anomaly Detector на странице "Ключи" Anomaly Detector портала Azure. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Значение конечной точки биллинга доступно на странице "Обзор" Anomaly Detector портала Azure. См. раздел Сбор обязательных параметров с наглядными примерами.

Примечание.

Новые ресурсы, созданные после 1 июля 2019 г., будут использовать пользовательские имена поддоменов. Дополнительные сведения и полный список региональных конечных точек см. в разделе "Пользовательские имена поддомена" для служб ИИ Azure.

Важно!

Для запуска контейнера необходимо указать параметры Eula, Billing и ApiKey. В противном случае контейнер не запустится. Дополнительные сведения см. в разделе о выставлении счетов. Значение ApiKey — это ключ из страницы ключей ресурсов Детектор аномалий ИИ Azure.

Примеры Docker для контейнера детекторов

Следующие примеры из Docker предназначены для контейнера детектора аномалий.

Простой пример

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

Пример настройки ведения журнала через аргументы командной строки

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

Следующие шаги