安裝並執行適用于 異常偵測程式 API 的 Docker 容器

重要

從 2023 年 9 月 20 日起,您將無法建立新的異常偵測程式資源。 異常偵測程式服務將于 2026 年 10 月 1 日淘汰。

注意

容器映射位置最近已變更。 請閱讀本文,以查看此容器的更新位置。

容器可讓您使用自己的環境異常偵測程式 API。 容器非常適合用於特定的安全性和資料控管需求。 在本文中,您將瞭解如何下載、安裝及執行異常偵測程式容器。

異常偵測程式提供單一 Docker 容器,以使用內部部署 API。 使用容器來:

  • 在您的資料上使用異常偵測程式的演算法
  • 監視串流資料,並即時偵測異常。
  • 以批次的形式偵測整個資料集的異常狀況。
  • 將資料集中的趨勢變更點偵測為批次。
  • 調整異常偵測演算法的敏感度,以更符合您的資料。

如需 API 的詳細資訊,請參閱:

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

必要條件

您必須先符合下列必要條件,才能使用異常偵測程式容器:

必要 目的
Docker 引擎 您需要在 主機電腦上安裝 Docker 引擎。 Docker 提供在 macOS Windows Linux 上 設定 Docker 環境的套件。 如需 Docker 和容器基本概念的入門,請參閱 Docker 概觀

Docker 必須設定為允許容器連線,並將帳單資料傳送至 Azure。

在 Windows 上,Docker 也必須設定為支援 Linux 容器。

熟悉 Docker 您應該對 Docker 概念有基本的瞭解,例如登錄、存放庫、容器和容器映射,以及基本 docker 命令的知識。
異常偵測程式資源 若要使用這些容器,您必須具備:

Azure 異常偵測程式 資源,以取得相關聯的 API 金鑰和端點 URI。 這兩個值都可在Azure 入口網站的 異常偵測程式 [概觀 ] 和 [索引鍵] 頁面上取得,而且必須啟動容器。

{API_KEY} : [金鑰 ] 頁面上的兩個可用資源索引鍵 之一

{ENDPOINT_URI} : [概觀 ] 頁面上提供的 端點

收集必要的參數

所有 Azure AI 容器都需要三個主要參數。 Microsoft 軟體授權條款必須具有接受 。 也需要端點 URI 和 API 金鑰。

端點 URI

{ENDPOINT_URI} 值可在相對應 Azure AI 服務資源的 Azure 入口網站 [概觀] 頁面上取得。 移至 [ 概觀 ] 頁面,將滑鼠停留在端點上,然後 會出現 [複製到剪貼簿 ] 圖示。 視需要複製並使用端點。

Screenshot that shows gathering the endpoint URI for later use.

金鑰

{API_KEY} 值可用來啟動容器,並可在相對應 Azure AI 服務資源的 Azure 入口網站 [金鑰] 頁面上取得。 移至 [ 金鑰 ] 頁面,然後選取 [複製到剪貼簿] 圖示。

Screenshot that shows getting one of the two keys for later use.

重要

這些訂用帳戶金鑰可用於存取 Azure AI 服務 API。 請勿共用您的金鑰。 安全地儲存它們。 例如,使用 Azure 金鑰保存庫。 我們也建議您定期重新產生這些金鑰。 呼叫 API 只需一把金鑰。 當您重新產生第一個金鑰時,您可以使用第二個金鑰繼續存取服務。

主機電腦

主機是執行 Docker 容器的 x64 型電腦。 它可以是內部部署或 Azure 中 Docker 主控服務的電腦,例如:

容器需求和建議

下表描述要配置給異常偵測程式容器的最低和建議 CPU 核心和記憶體。

QPS(每秒查詢數) 最小值 建議需求
10 QPS 4 核心,1 GB 記憶體 8 核心 2 GB 記憶體
20 QPS 8 核心,2 GB 記憶體 16 核心 4 GB 記憶體

每個核心必須至少為 2.6 gbhertz (GHz) 或更快。

核心和記憶體會對應至 --cpus--memory 設定,這些設定會當做命令的 docker run 一部分使用。

使用 取得容器映射 docker pull

您可以在容器登錄 syndicate 上 mcr.microsoft.com 找到異常偵測程式容器映射。 它位於存放庫內 azure-cognitive-services/decision ,並命名為 anomaly-detector 。 完整容器映射名稱為 mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector

若要使用最新版本的容器,您可以使用 latest 標記。 您也可以在 MCR 上找到映像標記的完整清單。

docker pull使用 命令來下載容器映射。

容器 存放庫
cognitive-services-anomaly-detector mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest

提示

使用 docker pull 時,請密切注意容器登錄、存放庫、容器映像名稱和對應標記的大小寫。 它們區分大小寫。

提示

您可以使用 docker images 命令來列出您下載的容器映射。 例如,下列命令會列出每個已下載容器映射的識別碼、存放庫和標籤,格式為數據表:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

異常偵測程式容器的 Docker 提取

docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest

如何使用容器

容器在 主機電腦上 之後,請使用下列程式來處理容器。

  1. 使用必要的計費設定執行容器 。 有更多 命令範例 docker run 可供使用。
  2. 查詢容器的預測端點

使用 執行容器 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
  • 在容器結束時自動移除容器。 主機電腦上仍可使用容器映射。

重要

Eula必須指定 、 BillingApiKey 選項來執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱 計費

在相同的主機上執行多個容器

如果您想要使用公開的埠執行多個容器,請務必使用不同的埠執行每個容器。 例如,在埠 5000 上執行第一個容器,並在埠 5001 上執行第二個容器。

<container-registry>將 和 <container-name> 取代為您所使用的容器值。 這些不需要是相同的容器。 您可以同時在主機上執行異常偵測程式容器和 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。

請對容器 API 使用主機 http://localhost:5000。

驗證容器是否正在執行

有數種方式可以驗證容器正在執行。 找出有問題的容器的外部 IP 位址和公開的埠,然後開啟您最愛的網頁瀏覽器。 使用後續的各種要求 URL 來驗證容器正在執行中。 此處列出的範例要求 URL 為 http://localhost:5000 ,但您的特定容器可能會有所不同。 請務必依賴容器的外部 IP 位址和公開的埠。

要求 URL 目的
http://localhost:5000/ 容器會提供首頁。
http://localhost:5000/ready 透過 GET 要求,此 URL 會提供容器已準備好接受模型查詢的驗證。 此要求可用於 Kubernetes 活躍度和整備探查
http://localhost:5000/status 此外,使用 GET 要求此 URL 會驗證用來啟動容器的 API 金鑰是否有效,而不會造成端點查詢。 此要求可用於 Kubernetes 活躍度和整備探查
http://localhost:5000/swagger 容器會為端點提供一組完整的文件和立即試用功能。 透過這項功能,您可以將您的設定輸入網頁式 HTML 表單,然後進行查詢,而不需要撰寫任何程式碼。 查詢傳回之後,會提供範例 CURL 命令來示範所需的 HTTP 標頭和主體格式。

Container's home page

停止容器

若要關閉容器,請在容器執行所在的命令列環境中,選取 Ctrl+C

疑難排解

如果您執行已啟用輸出 掛接 和記錄的容器,容器會產生記錄檔,有助於針對啟動或執行容器時發生的問題進行疑難排解。

提示

如需疑難排解資訊和指引,請參閱 Azure AI 容器常見問題(常見問題)。

如果您在執行 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}

容器會測試與計費端點的網路連線。

計費

異常偵測程式容器會使用 Azure 帳戶上的異常偵測程式 資源,將帳單資訊傳送至 Azure。

對容器的查詢會以用於 ApiKey 參數的 Azure 資源定價層計費。

Azure AI 服務容器若未連線至計量或計費端點,即無法獲得執行的授權。 您必須讓容器隨時與計費端點通訊帳單資訊。 Azure AI 服務容器不會將客戶資料 (例如正在分析的影像或文字) 傳送給 Microsoft。

連接到 Azure

容器需要計費引數值才能執行。 這些值可讓容器連線到計費端點。 容器會每隔 10 到 15 分鐘報告使用量。 如果容器未在允許的時間範圍內連線到 Azure,容器會繼續執行,但在還原計費端點之前不會提供查詢。 在 10 到 15 分鐘的相同時間間隔內,嘗試連接 10 次。 如果它無法連線到 10 次嘗試內的計費端點,容器就會停止提供要求。 請參閱「Azure AI 服務容器常見問題集」,以獲得需傳送哪些資訊給 Microsoft 以供計費的範例。

計費引數

當下列三個選項都提供有效值時,此命令 docker run 會啟動容器:

選項 描述
ApiKey Azure AI 服務資源的 API 金鑰,用於追蹤計費資訊。
此選項的值必須設定為 中 Billing 指定之已布建資源的 API 金鑰。
Billing Azure AI 服務資源的端點,用於追蹤計費資訊。
此選項的值必須設定為已布建 Azure 資源的端點 URI。
Eula 表示您已接受容器的授權。
此選項的值必須設定為 接受

如需這些選項的詳細資訊,請參閱 設定容器

摘要

在本文中,您已瞭解下載、安裝及執行異常偵測程式容器的概念和工作流程。 摘要說明:

  • 異常偵測程式提供一個適用于 Docker 的 Linux 容器,使用批次與串流、預期的範圍推斷和敏感度微調來封裝異常偵測。
  • 容器映射會從專用於容器的私人 Azure Container Registry 下載。
  • 容器映射會在 Docker 中執行。
  • 您可以藉由指定容器的主機 URI,使用 REST API 或 SDK 來呼叫異常偵測程式容器中的作業。
  • 在具現化容器時,您必須指定帳單資訊。

重要

Azure AI 容器若未連線至用於計量的 Azure,即無法獲得執行的授權。 客戶必須讓容器隨時與計量服務通訊計費資訊。 Azure AI 容器不會將客戶資料(例如正在分析的時間序列資料)傳送給 Microsoft。

下一步