分享方式:


為異常偵測器 API 安裝並執行 Docker 容器

重要

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

注意

容器映像位置已在近期變更。 閱讀本文以查看此容器的更新位置。

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

異常偵測器提供了可在內部部署使用中使用 API 的單一 Docker 容器。 使用容器來:

  • 在您的資料上使用異常偵測器的演算法
  • 監視串流資料,並即時偵測到異常狀況的發生。
  • 以批次方式偵測整個資料集的異常狀況。
  • 批次偵測您資料集內的趨勢變更點。
  • 調整異常偵測演算法的敏感度,使其更與您的資料更加契合。

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

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

必要條件

在使用異常偵測器容器之前,您必須符合下列必要條件:

必要 目的
Docker 引擎 您必須在主機電腦上安裝 Docker 引擎。 Docker 提供可在 macOSWindowsLinux 上設定 Docker 環境的套件。 如需 Docker 和容器基本概念的入門,請參閱 Docker 概觀 \(英文\)。

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

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

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

用來取得相關聯的 API 金鑰和端點 URI 的 Azure 異常偵測器。 這兩個值可在 Azure 入口網站的「異常偵測器概觀」 和「金鑰」頁面上取得,且需要這些值才能啟動容器。

{API_KEY}「金鑰」頁面上兩個可用資源金鑰的其中一個

{ENDPOINT_URI}「概觀」頁面上提供的端點

收集必要參數

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

端點 URI

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

顯示收集端點 URI 供稍後使用的螢幕擷取畫面。

索引鍵

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

顯示取得兩個金鑰之一供稍後使用的螢幕擷取畫面。

重要

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

主機電腦

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

容器的需求和建議

下表說明每個異常偵測器 API 容器的最低和建議的 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 命令下載容器映像。

容器 存放庫
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 pull

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
  • 在容器結束之後自動將其移除。 容器映像仍可在主機電腦上使用。

重要

必須指定 EulaBillingApiKey 選項以執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱帳單

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

如果您打算使用公開的連接埠執行多個容器,請務必使用不同的連接埠執行每個容器。 例如,在連接埠 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 容器會為端點提供一組完整的文件和立即試用功能。 使用此功能,您可以將自己的設定輸入至以 Web 為基礎的 HTML 表單並進行查詢,而無須撰寫任何程式碼。 當查詢傳回時,會提供範例 CURL 命令來示範所需的 HTTP 標頭和本文格式。

容器的首頁

停止容器

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

疑難排解

如果您在啟用輸出掛接和記錄的情況下執行容器,容器將會產生記錄檔,有助於排解在啟動或執行容器時所發生的問題。

提示

如需疑難排解的詳細資訊和指導,請參閱 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}

容器會測試帳單端點的網路連線能力。

計費

異常偵測器容器會使用您 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。

下一步