快速入門:使用單變量異常偵測器用戶端程式庫
重要
從 2023 年 9 月 20 日起,您將無法建立新的異常偵測器資源。 異常偵測器服務將於 2026 年 10 月 1 日淘汰。
程式庫參考文件 |程式庫原始程式碼 | 套件 (NuGet) |在 GitHub 上尋找範例程式碼
開始使用適用於 C# 的異常偵測器用戶端程式庫。 請依照下列步驟,開始使用服務提供的演算法安裝套件。 Anomaly Detector 服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。
使用適用於 C# 的異常偵測器用戶端程式庫來:
- 以批次要求方式偵測整個時間序列資料集的異常狀況
- 偵測您的時間序列中最新資料點的異常狀態
- 偵測您資料集內的趨勢變更點。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版 .NET Core
- 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (
F0
) 來試用服務,之後可升級至付費層以用於實際執行環境。
設定
建立新的 .NET Core 應用程式
在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new
命令建立名為 anomaly-detector-quickstart
的新主控台應用程式。 此命令會建立簡單的 "Hello World" 專案,內含單一 C# 來源檔案:Program.cs。
dotnet new console -n anomaly-detector-quickstart
將目錄變更為新建立的應用程式資料夾。 您可以使用下列命令來建置應用程式:
dotnet build
建置輸出應該不會有警告或錯誤。
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
安裝用戶端程式庫
在應用程式目錄中,使用下列命令安裝適用於 .NET 的 Anomaly Detector 用戶端程式庫:
dotnet add package Azure.AI.AnomalyDetector --prerelease
擷取金鑰和端點
若要成功對異常偵測器服務發出呼叫,您將需要下列值:
變數名稱 | 值 |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點:https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
當您透過 Azure 入口網站查看資源時,可以在 [金鑰和端點] 區段中找到 API 金鑰值。 您可以使用 KEY1 或 KEY2 。 |
DATA_PATH |
本快速入門會使用 request-data.csv 檔案,您可以從 GitHub 範例資料下載。 範例路徑: c:\\test\\request-data.csv |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
建立環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
下載範例資料
本快速入門會使用 request-data.csv
檔案,您可以從 GitHub 範例資料下載
您也可以執行下列項目來下載範例資料:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
偵測異常
從專案目錄中開啟 program.cs 檔案,並取代為下列程式碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Azure;
using Azure.AI.AnomalyDetector;
using static System.Environment;
namespace anomaly_detector_quickstart
{
internal class Program
{
static void Main(string[] args)
{
string endpoint = GetEnvironmentVariable("ANOMALY_DETECTOR_ENDPOINT");
string apiKey = GetEnvironmentVariable("ANOMALY_DETECTOR_API_KEY");
var endpointUri = new Uri(endpoint);
var credential = new AzureKeyCredential(apiKey);
//create client
AnomalyDetectorClient client = new AnomalyDetectorClient(endpointUri, credential);
//read data
//example: string datapath = @"c:\test\request-data.csv";
string datapath = @"REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH";
List<TimeSeriesPoint> list = File.ReadAllLines(datapath, Encoding.UTF8)
.Where(e => e.Trim().Length != 0)
.Select(e => e.Split(','))
.Where(e => e.Length == 2)
.Select(e => new TimeSeriesPoint(float.Parse(e[1])) { Timestamp = DateTime.Parse(e[0]) }).ToList();
//create request
UnivariateDetectionOptions request = new UnivariateDetectionOptions(list)
{
Granularity = TimeGranularity.Daily
};
UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);
bool hasAnomaly = false;
for (int i = 0; i < request.Series.Count; ++i)
{
if (result.IsAnomaly[i])
{
Console.WriteLine("Anomaly detected at index: {0}.", i);
hasAnomaly = true;
}
}
if (!hasAnomaly)
{
Console.WriteLine("No anomalies detected in the series.");
}
}
}
}
使用下列命令執行您的應用程式:
dotnet run program.cs
輸出
Anomaly detected at index: 3
Anomaly detected at index: 18
Anomaly detected at index: 21
Anomaly detected at index: 22
Anomaly detected at index: 23
Anomaly detected at index: 24
Anomaly detected at index: 25
Anomaly detected at index: 28
Anomaly detected at index: 29
Anomaly detected at index: 30
Anomaly detected at index: 31
Anomaly detected at index: 32
Anomaly detected at index: 35
Anomaly detected at index: 44
程式碼詳細資料
瞭解瞭解您的結果
在上述程式碼中,會讀取範例資料並將其轉換成 DetectRequest
物件。 我們使用檔案路徑呼叫 File.ReadAllLines
,並建立 TimeSeriesPoint
物件清單,然後移除任何新行字元。 擷取這些值,並將時間戳記與其數字值分開,然後將其新增至新的 TimeSeriesPoint
物件。 DetectRequest
物件是由一系列的資料點所組成,並包含資料點之資料細微性 (或週期性) 的 TimeGranularity.Daily
。
接著我們使用 DetectRequest
物件來呼叫用戶端的 DetectEntireSeriesAsync
方法,並等候 EntireDetectResponse
物件形式的回應。 然後逐一查看回應的 IsAnomaly
值,並列印任何為 true 的值。 如果有找到,這些值會對應到異常資料點的索引。
清除資源
如果您想要清除和移除異常偵測器資源,可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用您所建立的環境變數,建議您也考慮刪除環境變數。
程式庫參考文件 |程式庫原始程式碼 | 套件 (npm) |在 GitHub 上尋找範例程式碼
開始使用適用於 JavaScript 的 Anomaly Detector 用戶端程式庫。 請遵循下列步驟安裝套件,並開始使用服務提供的演算法。 異常偵測器服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。
使用適用於 JavaScript 的 Anomaly Detector 用戶端程式庫來:
- 以批次要求方式偵測整個時間序列資料集的異常狀況
- 偵測您的時間序列中最新資料點的異常狀態
- 偵測您資料集內的趨勢變更點。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版的 Node.js
- 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (
F0
) 來試用服務,之後可升級至付費層以用於實際執行環境。
設定
建立新的 Node.js 應用程式
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。
mkdir myapp && cd myapp
建立含有下列內容的檔案 package.json
:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
安裝用戶端程式庫
從與 package.json 檔案相同的目錄中執行下列命令,以安裝必要的 npm 套件:
npm install
擷取金鑰和端點
若要成功對異常偵測器服務發出呼叫,您將需要下列值:
變數名稱 | 值 |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點:https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
當您透過 Azure 入口網站查看資源時,可以在 [金鑰和端點] 區段中找到 API 金鑰值。 您可以使用 KEY1 或 KEY2 。 |
datapath |
本快速入門會使用 request-data.csv 檔案,您可以從 GitHub 範例資料下載。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
建立環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
下載範例資料
本快速入門會使用 request-data.csv
檔案,您可以從 GitHub 範例資料下載
您也可以執行下列項目來下載範例資料:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
偵測異常
建立名為 index.js
的檔案,並以下列程式碼取代:
const AnomalyDetector = require("@azure-rest/ai-anomaly-detector").default,
{ isUnexpected } = require("@azure-rest/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");
const { parse } = require("csv-parse/sync");
const fs = require("fs");
// Retrieve the endpoint and key from the environment variables.
const apiKey = process.env["ANOMALY_DETECTOR_API_KEY"] || "";
const endpoint = process.env["ANOMALY_DETECTOR_ENDPOINT"] || "";
const timeSeriesDataPath = "./request-data.csv";
function read_series_from_file(path) {
let result = Array();
let input = fs.readFileSync(path).toString();
let parsed = parse(input, { skip_empty_lines: true });
parsed.forEach(function (e) {
result.push({ timestamp: new Date(e[0]), value: Number(e[1]) });
});
return result;
}
async function main() {
// create client
const credential = new AzureKeyCredential(apiKey);
const client = AnomalyDetector(endpoint, credential);
// construct request
const options = {
body: {
granularity: "daily",
imputeMode: "auto",
maxAnomalyRatio: 0.25,
sensitivity: 95,
series: read_series_from_file(timeSeriesDataPath),
},
headers: { "Content-Type": "application/json" },
};
// get last detect result
const result = await client.path("/timeseries/entire/detect").post(options);
if (isUnexpected(result)) {
throw result;
}
if (result.body.isAnomaly) {
result.body.isAnomaly.forEach(function (anomaly, index) {
if (anomaly === true) {
console.log(index);
}
});
} else {
console.log("There is no anomaly detected from the series.");
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
module.exports = { main };
執行應用程式
使用快速入門檔案上使用 node
命令執行應用程式。
node index.js
輸出
Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44
瞭解瞭解您的結果
在上述程式碼中,我們會呼叫異常偵測器 API,以使用用戶端 detectEntireSeries() 方法批次偵測整個時間序列的異常情形。 我們會儲存傳回的 AnomalyDetectorDetectEntireSeriesResponse 物件。 接著逐一查看回應的 isAnomaly
清單,然後列印任何 true
值的索引。 如果有找到,這些值會對應到異常資料點的索引。
清除資源
如果您想要清除和移除異常偵測器資源,可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用您所建立的環境變數,建議您也考慮刪除環境變數。
程式庫參考文件 |程式庫原始程式碼 | 套件 (PyPi) |在 GitHub 上尋找範例程式碼
開始使用適用於 Python 的 Anomaly Detector 用戶端程式庫。 請遵循下列步驟安裝套件,並開始使用服務提供的演算法。 Anomaly Detector 服務可藉由自動對時間序列資料使用最適合的模型,而讓您找出其中的異常狀況,不論是什麼產業、情境或資料量都沒問題。
使用適用於 Python 的 Anomaly Detector 用戶端程式庫來:
- 以批次要求方式偵測整個時間序列資料集的異常狀況
- 偵測您的時間序列中最新資料點的異常狀態
- 偵測您資料集內的趨勢變更點。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Python 3.x
- Pandas 資料分析程式庫
- 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (
F0
) 來試用服務,之後可升級至付費層以用於實際執行環境。
設定
安裝用戶端程式庫。 您可以使用下列命令來安裝用戶端程式庫:
pip install --upgrade azure.ai.anomalydetector
擷取金鑰和端點
若要成功對異常偵測器服務發出呼叫,您將需要下列值:
變數名稱 | 值 |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點:https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
當您透過 Azure 入口網站查看資源時,可以在 [金鑰和端點] 區段中找到 API 金鑰值。 您可以使用 KEY1 或 KEY2 。 |
DATA_PATH |
本快速入門會使用 request-data.csv 檔案,您可以從 GitHub 範例資料下載。 範例路徑: c:\\test\\request-data.csv |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
建立環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
下載範例資料
本快速入門會使用 request-data.csv
檔案,您可以從 GitHub 範例資料下載
您也可以執行下列項目來下載範例資料:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
偵測異常
建立命名為 quickstart.py 的新 Python 檔案。 然後,以您慣用的編輯器或 IDE 加以開啟。
將 quickstart.py 的內容取代為下列程式碼。 修改程式碼以新增金鑰、端點及時間序列資料路徑的環境變數名稱:
from azure.ai.anomalydetector import AnomalyDetectorClient from azure.ai.anomalydetector.models import * from azure.core.credentials import AzureKeyCredential import pandas as pd import os API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY'] ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT'] DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY)) series = [] data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0]) for index, row in data_file.iterrows(): series.append(TimeSeriesPoint(timestamp=row[0], value=row[1])) request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY) change_point_response = client.detect_univariate_change_point(request) anomaly_response = client.detect_univariate_entire_series(request) for i in range(len(data_file.values)): if (change_point_response.is_change_point[i]): print("Change point detected at index: "+ str(i)) elif (anomaly_response.is_anomaly[i]): print("Anomaly detected at index: "+ str(i))
重要
在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。
使用快速入門檔案上的
python
命令執行應用程式python quickstart.py
輸出
Anomaly detected at index: 3
Anomaly detected at index: 18
Change point detected at index: 20
Anomaly detected at index: 21
Anomaly detected at index: 22
Anomaly detected at index: 23
Anomaly detected at index: 24
Anomaly detected at index: 25
Change point detected at index: 27
Anomaly detected at index: 28
Anomaly detected at index: 29
Anomaly detected at index: 30
Anomaly detected at index: 31
Anomaly detected at index: 32
Anomaly detected at index: 35
Anomaly detected at index: 44
瞭解瞭解您的結果
在上述程式碼中,我們會呼叫異常偵測器 API 兩次。 第一次呼叫會使用 detect_change_point
方法,檢查範例資料數列的趨勢變更點。 此呼叫會傳回儲存在名為 change_point_request
變數中的 ChangePointDetectResponse
。 接著逐一查看回應的 is_change_point
清單,然後使用 true
布林值列印任何值的索引。
第二個呼叫會使用 detect_entire_series
方法檢查整個範例資料數列是否有異常。 此呼叫會傳回儲存在名為 anomaly_response
變數中的 EntireDetectResponse
。 逐一查看回應的 is_anomaly
清單,然後使用 true
布林值列印任何值的索引。 我們也可以使用 detect_last_point
方法;此方法更適合用來偵測即時資料中的異常情形。 若要深入了解,請參閱最佳做法指南。
將結果視覺化
為了視覺化與範例資料數列相關的異常和變更點,我們將使用熱門的開放原始碼程式庫 matplotlib。
安裝 程式庫。
pip install matplotlib
使用下列程式碼修改您的 quickstart.py 檔案:
from azure.ai.anomalydetector import AnomalyDetectorClient from azure.ai.anomalydetector.models import * from azure.core.credentials import AzureKeyCredential import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates import os API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY'] ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT'] DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY)) series = [] data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0]) for index, row in data_file.iterrows(): series.append(TimeSeriesPoint(timestamp=row[0], value=row[1])) request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY) change_point_response = client.detect_univariate_change_point(request) anomaly_response = client.detect_univariate_entire_series(request) for i in range(len(data_file.values)): temp_date_to_num = mdates.date2num(data_file.values[i]) date= temp_date_to_num[0] if (change_point_response.is_change_point[i]): plt.plot(date,data_file.values[i][1], 's', color ='blue') print("Change point detected at index: "+ str(i)) elif (anomaly_response.is_anomaly[i]): plt.plot(date,data_file.values[i][1], '^', color="red") print("Anomaly detected at index: "+ str(i)) else: plt.plot(date,data_file.values[i][1], 'o', color ='green') plt.show()
重要
在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。
使用快速入門檔案上的
python
命令執行應用程式python quickstart.py
輸出
在此程式碼範例中,我們已新增 matplotlib
程式庫,讓我們能夠視覺化並輕鬆區分一般資料點與變更點以及異常情形。 變更點以藍色方塊表示,異常情形是紅色三角形,而一般資料點則是綠色圓形。 日期會使用 matplotlib
的 date2num
方法來轉換成數字,以提供圖表 Y 軸的圖形易記值。
清除資源
如果您想要清除和移除異常偵測器資源,可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 如果您不想再使用您所建立的環境變數,建議您也考慮刪除環境變數。
在本快速入門中,您將了解如何使用異常偵測器服務和 cURL,偵測時間序列資料批次中的異常狀況。
如需有關異常偵測器概念的高階探討,請參閱概觀文章。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立異常偵測程式資源,以取得您的金鑰和端點。 部署完成後,選取 [移至資源] 按鈕。 您可以使用免費定價層 (
F0
) 來試用服務,之後可升級至付費層以用於實際執行環境。 - 時間序列資料的有效 JSON 檔案,用來測試異常狀況。 如果您沒有自己的檔案,可以從要求本文範例建立 sample.json 檔案
擷取金鑰和端點
若要成功對異常偵測器服務發出呼叫,您將需要下列值:
變數名稱 | 值 |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 範例端點:https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
當您透過 Azure 入口網站查看資源時,可以在 [金鑰和端點] 區段中找到 API 金鑰值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
建立環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
偵測異常
在命令提示字元中,執行下列命令。 您必須將下列值插入命令中。
- 您的異常偵測器服務訂用帳戶金鑰。
- 您的異常偵測器端點位址。
- 時間序列資料的有效 JSON 檔案,用來測試異常狀況。 如果您沒有自己的檔案,可以從要求本文範例建立 sample.json 檔案。
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect"
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%"
-d "@path_to_sample_file.json"
完整命令作為單行的範例:
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%" -d "@c:\test\rest.json"
或者,如果您是從 Bash 殼層執行 cURL 命令,則命令會稍有不同:
curl -v POST "$ANOMALY_DETECTOR_ENDPOINT/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: $ANOMALY_DETECTOR_API_KEY" -d "@c:\test\rest.json"
如果使用了必要條件中的範例資料,您應該會收到回應 200,並顯示下列結果:
{
"expectedValues": [
827.7940908243968,
798.9133774671927,
888.6058431807189,
900.5606407986661,
962.8389426378304,
933.2591606306954,
891.0784104799666,
856.1781601363697,
809.8987227908941,
807.375129007505,
764.3196682448518,
803.933498594564,
823.5900620883058,
794.0905641334288,
883.164245249282,
894.8419000690953,
956.8430591101258,
927.6285055190114,
885.812983784303,
851.6424797402517,
806.0927886943216,
804.6826815312029,
762.74070738882,
804.0251702513732,
825.3523662579559,
798.0404188724976,
889.3016505577698,
902.4226124345937,
965.867078532635,
937.3200495736695,
896.1720524711102,
862.0087368413656,
816.4662342097423,
814.4297745524709,
771.8614479159354,
811.859271346729,
831.8998279215521,
802.947544797165,
892.5684407435083,
904.5488214533809,
966.8527063844707,
937.3168391003043,
895.180003672544,
860.3649596356635,
814.1707285969043,
811.9054862686213,
769.1083769610742,
809.2328084659704
],
"upperMargins": [
41.389704541219835,
39.94566887335964,
44.43029215903594,
45.02803203993331,
48.14194713189152,
46.66295803153477,
44.55392052399833,
42.808908006818484,
40.494936139544706,
40.36875645037525,
38.215983412242586,
40.196674929728196,
41.17950310441529,
39.70452820667144,
44.1582122624641,
44.74209500345477,
47.84215295550629,
46.38142527595057,
44.290649189215145,
42.58212398701258,
40.30463943471608,
40.234134076560146,
38.137035369441,
40.201258512568664,
41.267618312897795,
39.90202094362488,
44.46508252788849,
45.121130621729684,
48.29335392663175,
46.86600247868348,
44.80860262355551,
43.100436842068284,
40.82331171048711,
40.721488727623544,
38.593072395796774,
40.59296356733645,
41.5949913960776,
40.14737723985825,
44.62842203717541,
45.227441072669045,
48.34263531922354,
46.86584195501521,
44.759000183627194,
43.01824798178317,
40.70853642984521,
40.59527431343106,
38.45541884805371,
40.46164042329852
],
"lowerMargins": [
41.389704541219835,
39.94566887335964,
44.43029215903594,
45.02803203993331,
48.14194713189152,
46.66295803153477,
44.55392052399833,
42.808908006818484,
40.494936139544706,
40.36875645037525,
38.215983412242586,
40.196674929728196,
41.17950310441529,
39.70452820667144,
44.1582122624641,
44.74209500345477,
47.84215295550629,
46.38142527595057,
44.290649189215145,
42.58212398701258,
40.30463943471608,
40.234134076560146,
38.137035369441,
40.201258512568664,
41.267618312897795,
39.90202094362488,
44.46508252788849,
45.121130621729684,
48.29335392663175,
46.86600247868348,
44.80860262355551,
43.100436842068284,
40.82331171048711,
40.721488727623544,
38.593072395796774,
40.59296356733645,
41.5949913960776,
40.14737723985825,
44.62842203717541,
45.227441072669045,
48.34263531922354,
46.86584195501521,
44.759000183627194,
43.01824798178317,
40.70853642984521,
40.59527431343106,
38.45541884805371,
40.46164042329852
],
"isAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"isPositiveAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"isNegativeAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"period": 12
}
如需詳細資訊,請參閱異常偵測器 REST 參考。
清除資源
如果您想要清除和移除 Azure AI 服務訂用帳戶,則可以刪除資源或資源群組。 刪除資源群組也會刪除與資源群組相關聯的任何其他資源。
下一步
概念:
教學課程: