Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Important
从 2023 年 9 月 20 日起,将无法创建新的异常检测器资源。 异常检测器服务将于 2026 年 10 月 1 日停用。
Note
容器图像位置最近发生了更改。 阅读本文以查看此容器的更新位置。
容器使您能够在自己的环境中使用 异常检测器 API。 容器非常适合用于满足特定的安全性和数据管理要求。 本文介绍如何下载、安装以及运行异常检测器容器。
异常检测器提供单个 Docker 容器以在本地使用 API。 容器用途:
- 使用异常检测器算法分析您的数据
- 监视流数据,并在实时发生异常时对其进行检测。
- 以批的形式检测整个数据集中的异常。
- 批量检测数据集中的趋势变化点。
- 调整异常情况检测算法的敏感程度,以更好地适应你的数据。
有关 API 的详细信息,请参阅:
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
Prerequisites
使用异常检测器容器之前,必须满足以下先决条件:
| Required | Purpose |
|---|---|
| Docker 引擎 | 需要在主计算机上安装 Docker 引擎。 Docker 提供用于在 macOS、Windows 和 Linux 上配置 Docker 环境的包。 有关 Docker 和容器的基础知识,请参阅 Docker 概述。 必须将 Docker 配置为允许容器连接 Azure 并向其发送账单数据。 在 Windows 上,Docker 还必须配置为支持 Linux 容器。 |
| 熟悉 Docker | 应对 Docker 概念有基本的了解,例如注册表、存储库、容器和容器映像,以及基本的 docker 命令的知识。 |
| 异常检测器资源 | 若要使用这些容器,必须具有: 一个用于获取关联 API 密钥和终结点 URI 的 Azure 异常检测器资源。 这两个值都可以从 Azure 门户中的异常检测器“概述”和“密钥”页获取;必须获取这两个值才能启动该容器。 {API_KEY} :“密钥”页上提供的两个可用资源密钥中的一个 {ENDPOINT_URI} :“概述”页上提供的终结点 |
收集必需的参数
所有 Azure AI 容器都需要三个主要参数。 Microsoft 软件许可条款必须存在,且其值必须为 accept。 还需要终结点 URI 和 API 密钥。
端点 URI
可在 Azure 门户中相应 Azure AI 服务资源的“概览”页上找到 {ENDPOINT_URI} 值。 转到概述页,将鼠标悬停在端点上,会出现一个复制到剪贴板图标。 复制该端点并在需要时使用。
键
{API_KEY} 值用于启动容器,可在 Azure 门户中相应 Azure AI 服务资源的“密钥”页上找到。 转到 “密钥 ”页,然后选择“ 复制到剪贴板 ”图标。
Important
这些订阅密钥用于访问 Azure AI 服务 API。 请勿共享密钥。 安全地存储它们。 例如,使用Azure 密钥保管库。 我们还建议定期重新生成这些密钥。 进行 API 调用只需要一个密钥。 重新生成第一个密钥时,可以使用第二个密钥继续访问服务。
主计算机
主机是运行 Docker 容器且基于 x64 的计算机。 它可以是本地计算机,也可以是 Azure 中的 Docker 托管服务,例如:
- Azure Kubernetes 服务。
- Azure 容器实例。
- 部署到 Azure Stack 的 Kubernetes 群集。 有关详细信息,请参阅将 Kubernetes 部署到 Azure Stack。
容器要求和建议
下表显示了为每个异常检测器容器分配的最小和建议的 CPU 核心数和内存。
| QPS(每秒查询次数) | 最小值 | 推荐 |
|---|---|---|
| 10 QPS | 4 个内核,1 GB 内存 | 8 个内核,2 GB 内存 |
| 20 QPS | 8 个内核,2 GB 内存 | 16 个内核,4 GB 内存 |
每个核心必须至少为 2.6 千兆赫 (GHz) 或更快。
核心和内存对应于 --cpus 和 --memory 设置,用作 docker run 命令的一部分。
使用 docker pull 获取容器映像
在 mcr.microsoft.com 联合容器注册表中可以找到异常检测器容器映像。 它驻留在 azure-cognitive-services/decision 存储库中,名为 anomaly-detector。 完全限定的容器映像名称为 mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector。
若要使用最新版本的容器,可以使用 latest 标记。 还可以在 MCR 上找到映像标记的完整列表。
使用 docker pull 命令下载容器映像。
| 集装箱 | 资料库 |
|---|---|
| 认知服务异常检测器 | mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest |
Tip
在使用 docker pull 时,请密切注意容器注册表、存储库、容器映像名称和相应标记的大小写。 它们是区分大小写的。
Tip
可以使用 docker images 命令列出下载的容器映像。 例如,以下命令列出了每个下载的容器映像的 ID、存储库和标记,格式为表:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
适用于异常检测器容器的 Docker pull
docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest
如何使用容器
一旦容器位于主计算机上,请通过以下过程使用容器。
-
运行容器,并使用所需的计费设置。 更多 示例 的
docker run命令可用。 - 查询容器的预测终结点。
使用 docker run 运行容器
使用 docker run 命令运行容器。 请参阅收集所需参数,以获取{ENDPOINT_URI}和{API_KEY}值的详细信息。
命令的示例docker run是可用的。
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
此命令:
- 从容器映像运行异常检测器容器
- 分配一个 CPU 核心和 4 GB 内存
- 公开 TCP 端口 5000,并为容器分配伪 TTY
- 退出后自动删除容器。 容器映像在主计算机上仍然可用。
Important
要运行容器,必须指定 Eula、Billing 和 ApiKey 选项;否则,容器将不会启动。 有关详细信息,请参阅 计费。
在同一主机上运行多个容器
若要运行多个公开端口的容器,请确保在运行每个容器时使用不同的端口。 例如,在端口 5000 上运行第一个容器,在端口 5001 上运行第二个容器。
请将 <container-registry> 和 <container-name> 替换为所用容器的值。 这些容器不需要是同一容器。 可以在 HOST 上同时运行异常检测器和 LUIS 容器,也可以运行多个异常检测器容器。
在主机端口 5000 上运行第一个容器。
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
在主机端口 5001 上运行第二个容器。
docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
每个后续容器应位于不同的端口上。
查询容器的预测终结点
容器提供了基于 REST 的查询预测终结点 API。
使用主机 http://localhost:5000 来提供容器 API。
验证容器是否正在运行
有几种方法可用于验证容器是否正在运行。 找到相关容器的外部 IP 地址和公开端口,并打开你常用的 Web 浏览器。 使用下面的各种请求 URL 来验证容器是否正在运行。 此处列出的示例请求 URL 是 http://localhost:5000,但你的特定容器可能有所不同。 请确保使用容器的外部IP地址和公开端口。
| 请求网址 | Purpose |
|---|---|
http://localhost:5000/ |
该容器提供一个主页。 |
http://localhost:5000/ready |
使用 GET 对此 URL 进行请求,可以验证容器是否已准备好接受针对模型的查询。 此请求可用于 Kubernetes 运行情况和就绪情况探测。 |
http://localhost:5000/status |
此外,使用 GET 请求此 URL 会验证用于启动容器的 API 密钥是否有效,而不会导致终结点查询。 此请求可用于 Kubernetes 运行情况和就绪情况探测。 |
http://localhost:5000/swagger |
容器为端点提供了一整套文档以及“尝试一下”功能。 使用此功能可以将设置输入到基于 Web 的 HTML 表单并进行查询,而无需编写任何代码。 查询返回后,将提供一个示例 CURL 命令来演示所需的 HTTP 标头和正文格式。 |
停止容器
若要关闭容器,请在运行容器的命令行环境中,选择 Ctrl+C。
疑难解答
如果在启用输出挂载和日志记录的情况下运行容器,该容器会生成日志文件,有助于排查容器在启动或运行过程中发生的问题。
Tip
如需更多的故障排除信息和指南,请参阅 Azure AI 容器常见问题解答 (FAQ)。
如果在运行 Azure AI 服务容器时遇到问题,可以尝试使用 Microsoft 诊断容器。 使用此容器诊断部署环境中的常见错误,这些错误可能会阻止Azure AI 容器按预期运行。
若要获取容器,请使用以下 docker pull 命令:
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
然后运行容器。 将 {ENDPOINT_URI} 替换为你的终结点,将 {API_KEY} 替换为你的资源的密钥:
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
容器会测试与计费终结点之间的网络连接性。
Billing
异常检测器容器使用 Azure 帐户上的异常检测器资源将帐单信息发送到 Azure。
对该容器的查询将按用于 ApiKey 参数的 Azure 资源的定价层级计费。
Azure AI 服务容器在未连接到计量或计费终结点的情况下无权运行。 必须使容器能够随时与计费终结点通信计费信息。 Azure AI 服务容器不会将客户数据(例如,正在分析的图像或文本)发送给 Azure。
连接到Azure
容器需要计费参数的值才能运行。 这些值允许容器连接到计费终结点。 容器每 10 到 15 分钟报告一次使用情况。 如果容器未在允许的时间范围内连接到 Azure,容器将继续运行,但不会为查询提供服务,直到计费终结点恢复。 在 10 到 15 分钟的同一时间间隔内尝试连接 10 次。 如果无法在 10 次尝试内连接到计费终结点,容器会停止处理请求。
计费争议
当以下三个选项都提供了有效值时,docker run 命令会启动容器:
| Option | 说明 |
|---|---|
ApiKey |
用于跟踪账单信息的 Azure AI 服务资源的 API 密钥。 必须将此选项的值设置为 Billing 中指定的已预配资源的 API 密钥。 |
Billing |
用于跟踪账单信息的 Azure AI 服务资源的终结点。 必须将此选项的值设置为已预配的 Azure 资源的终结点 URI。 |
Eula |
表示已接受容器的许可条款。 此选项的值必须设置为 接受。 |
有关这些选项的详细信息,请参阅 “配置容器”。
总结
本文介绍了下载、安装和运行异常检测器容器的相关概念和工作流程。 综上所述:
- 异常检测器提供了一个适用于 Docker 的 Linux 容器,封装了异常检测、批处理与流处理、预期范围推理以及灵敏度调整功能。
- 容器映像从专用的 Azure 容器注册表中下载,该注册表专用于容器。
- 容器映像在 Docker 中运行。
- 可使用 REST API 或 SDK 通过指定容器的主机 URI 来调用异常检测器容器中的操作。
- 必须在实例化容器时指定账单信息。
Important
Azure AI 容器未经连接到Azure进行计量,则不会获得运行许可。 客户需要始终让容器向计量服务传送账单信息。 Azure AI 容器不会将客户数据(例如分析的时序数据)发送到Microsoft。
后续步骤
- 查看配置容器以了解配置设置的详情。
- 将异常检测器容器部署到 Azure 容器实例
- 详细了解异常检测器 API 服务