配置异常检测器单变量容器
重要
从 2023 年 9 月 20 日开始,将无法创建新的异常检测器资源。 异常检测器服务将于 2026 年 10 月 1 日停用。
异常检测器容器运行时环境是使用 docker run
命令参数配置的。 此容器有多个必需设置,以及一些可选设置。 多个示例命令均可用。 容器专用设置是帐单设置。
配置设置
此容器具有以下配置设置:
必须 | 设置 | 目的 |
---|---|---|
是 | ApiKey | 用于跟踪账单信息。 |
否 | ApplicationInsights | 允许向容器添加 Azure Application Insights 遥测支持。 |
是 | Billing | 指定 Azure 上服务资源的终结点 URI。 |
是 | Eula | 表示已接受容器的许可条款。 |
否 | Fluentd | 将日志和(可选)指标数据写入 Fluentd 服务器。 |
否 | Http 代理 | 配置 HTTP 代理以发出出站请求。 |
否 | 日志记录 | 为容器提供 ASP.NET Core 日志记录支持。 |
否 | Mounts | 从主计算机读取数据并将其写入到容器,以及从容器读回数据并将其写回到主计算机。 |
ApiKey 配置设置
ApiKey
设置指定用于跟踪容器账单信息的 Azure 资源键。 必须为 ApiKey 指定值,并且该值必须是为 Billing
配置设置指定的异常检测器资源的有效密钥。
可以在以下位置找到此设置:
- Azure 门户:异常检测器的资源管理,位于“密钥”下
ApplicationInsights 设置
此 ApplicationInsights
设置允许向容器添加 Azure Application Insights 遥测支持。 Application Insights 可深入监视容器。 可以轻松监视容器的可用性、性能和使用情况。 还可以快速识别和诊断容器中的错误。
下表描述了 ApplicationInsights
节支持的配置设置。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
否 | InstrumentationKey |
字符串 | 容器遥测数据要发送到的 Application Insights 实例的检测密钥。 有关详细信息,请参阅适用于 ASP.NET Core 的 Application Insights。 例如: InstrumentationKey=123456789 |
Billing 配置设置
Billing
设置指定 Azure 上用于计量容器的账单信息的异常检测器资源的终结点 URI。 必须为此配置设置指定值,并且该值必须是 Azure 上异常检测器资源的有效终结点 URI。
可以在以下位置找到此设置:
- Azure 门户:“异常检测器的概述”标记为
Endpoint
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Billing |
字符串 | 账单终结点 URI。 有关获取账单 URI 的详细信息,请参阅收集必需的参数。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名。 |
Eula 设置
Eula
设置表示已接受容器的许可条款。 必须为此配置设置指定值,并且该值必须设置为 accept
。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Eula |
字符串 | 接受许可证 示例: Eula=accept |
Azure AI 服务容器根据管理 Azure 使用的协议获得许可。 如果没有管理 Azure 使用情况的现有协议,则表示你同意管理 Azure 使用情况的协议是 Azure 在线订阅协议,其中包含联机服务条款。 使用容器即表示同意这些条款。
Fluentd 设置
Fluentd 是一个用于统一日志记录的开放源代码数据收集器。 Fluentd
设置管理容器到 Fluentd 服务器的连接。 容器包含一个 Fluentd 日志记录提供程序,使容器可以向 Fluentd 服务器写入日志和(可选)指标数据。
下表描述了 Fluentd
节支持的配置设置。
名称 | 数据类型 | 说明 |
---|---|---|
Host |
字符串 | Fluentd 服务器的 IP 地址或 DNS 主机名。 |
Port |
整数 | Fluentd 服务器的端口。 默认值为 24224。 |
HeartbeatMs |
整数 | 检测信号间隔,以毫秒为单位。 如果在此间隔过期之前未发送事件流量,则将检测信号发送到 Fluentd 服务器。 默认值为 60000 毫秒(1 分钟)。 |
SendBufferSize |
整数 | 为发送操作分配的网络缓冲空间,以字节为单位。 默认值为 32768 字节(32 KB)。 |
TlsConnectionEstablishmentTimeoutMs |
Integer | 与 Fluentd 服务器建立 SSL/TLS 连接的超时值,以毫秒为单位。 默认值为 10000 毫秒(10 秒)。 如果 UseTLS 设置为 false,则会忽略此值。 |
UseTLS |
布尔 | 指示容器是否应使用 SSL/TLS 来与 Fluentd 服务器通信。 默认值为 false。 |
Http 代理凭据设置
如果需要配置 HTTP 代理以发出出站请求,请使用以下两个参数:
名称 | 数据类型 | 说明 |
---|---|---|
HTTP_PROXY | string | 要使用的代理,例如 http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | 字符串 | 对代理进行身份验证所需的任何凭据,例如 username:password 。 此值必须采用小写形式。 |
<proxy-user> |
string | 代理的用户。 |
<proxy-password> |
string | 与代理的 <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 应用程序的相同配置设置和值。
容器支持以下日志记录提供程序:
提供程序 | 目标 |
---|---|
控制台 | ASP.NET Core Console 日志记录提供程序。 支持此日志记录提供程序的所有 ASP.NET Core 配置设置和默认值。 |
调试 | ASP.NET Core Debug 日志记录提供程序。 支持此日志记录提供程序的所有 ASP.NET Core 配置设置和默认值。 |
Disk | 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 日志记录
Disk
日志记录提供程序支持以下配置设置:
名称 | 数据类型 | 说明 |
---|---|---|
Format |
字符串 | 日志文件的输出格式。 注意:此值必须设置为 json 才能启用日志记录提供程序。 如果指定了此值,但未同时在实例化容器时指定输出装入点,则会发生错误。 |
MaxFileSize |
整数 | 日志文件的最大大小,以 MB 为单位。 如果当前日志文件的大小达到或超过此值,则日志记录提供程序会启动新的日志文件。 如果指定 -1,则日志文件的大小仅受输出装入点的最大文件大小(如果有)的限制。 默认值为 1。 |
有关配置 ASP.NET Core 日志记录支持的详细信息,请参阅设置文件配置。
装载设置
使用绑定装载从容器读取数据并将数据写入容器。 可以通过在 docker run 命令中指定 --mount
选项来指定输入装载或输出装载。
异常检测器容器不使用输入或输出装载来存储训练或服务数据。
主机确切语法的安装位置因主机操作系统不同而异。 另外,由于 Docker 服务帐户使用的权限与主机装载位置权限之间有冲突,因此可能无法访问主计算机的装载位置。
可选 | 名称 | 数据类型 | 说明 |
---|---|---|---|
不允许 | Input |
String | 异常检测器容器不使用此项。 |
可选 | Output |
String | 输出装入点的目标。 默认值为 /output 。 这是日志的位置。 这包括容器日志。 示例: --mount type=bind,src=c:\output,target=/output |
Docker 运行命令示例
以下示例使用的配置设置说明如何编写和使用 docker run
命令。 运行后,容器将继续运行,直到停止它。
- 行继续符:以下各部分中的 Docker 命令使用反斜杠 (
\
) 作为 bash shell 行继续符。 根据主机操作系统的要求替换或删除字符。 例如,Windows 的行继续符是插入符号^
。 将反斜杠替换为插入符号。 - 参数顺序:除非很熟悉 Docker 容器,否则不要更改参数顺序。
将括号 {}
中的值替换为你自己的值:
占位符 | Value | 格式或示例 |
---|---|---|
{API_KEY} | “Azure Anomaly Detector 密钥”页上的 Anomaly Detector 资源的终结点密钥。 |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | Azure Anomaly Detector “概览”页面上提供了账单终结点值。 |
有关显式示例,请参阅收集必需的参数。 |
注意
2019 年 7 月 1 日之后创建的新资源将使用自定义子域名。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名。
重要
必须指定 Eula
、Billing
和 ApiKey
选项运行容器;否则,该容器不会启动。 有关详细信息,请参阅计费。
ApiKey 值是 Azure AI 异常检测器“资源密钥”页中提供的 密钥。
异常检测器容器 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