安裝並執行適用于 異常偵測程式 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 入口網站 [概觀] 頁面上取得。 移至 [ 概觀 ] 頁面,將滑鼠停留在端點上,然後 會出現 [複製到剪貼簿 ] 圖示。 視需要複製並使用端點。
金鑰
{API_KEY}
值可用來啟動容器,並可在相對應 Azure AI 服務資源的 Azure 入口網站 [金鑰] 頁面上取得。 移至 [ 金鑰 ] 頁面,然後選取 [複製到剪貼簿] 圖示。
重要
這些訂用帳戶金鑰可用於存取 Azure AI 服務 API。 請勿共用您的金鑰。 安全地儲存它們。 例如,使用 Azure 金鑰保存庫。 我們也建議您定期重新產生這些金鑰。 呼叫 API 只需一把金鑰。 當您重新產生第一個金鑰時,您可以使用第二個金鑰繼續存取服務。
主機電腦
主機是執行 Docker 容器的 x64 型電腦。 它可以是內部部署或 Azure 中 Docker 主控服務的電腦,例如:
- Azure Kubernetes Service 。
- 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 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
如何使用容器
容器在 主機電腦上 之後,請使用下列程式來處理容器。
- 使用必要的計費設定執行容器 。 有更多 命令範例
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
- 在容器結束時自動移除容器。 主機電腦上仍可使用容器映射。
重要
Eula
必須指定 、 Billing
和 ApiKey
選項來執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱 計費 。
在相同的主機上執行多個容器
如果您想要使用公開的埠執行多個容器,請務必使用不同的埠執行每個容器。 例如,在埠 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 標頭和主體格式。 |
停止容器
若要關閉容器,請在容器執行所在的命令列環境中,選取 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。
下一步
- 檢閱 設定容器 以進行組態設定
- 將異常偵測程式容器部署至Azure 容器執行個體
- 深入瞭解 異常偵測程式 API 服務