使用 REST API 來與 Chaos Studio 互動
如果您要將 Azure Chaos Studio 整合到 CI/CD 管線中,或只想要使用直接 API 呼叫來與 Azure 資源互動,您可使用 Chaos Studio 的 REST API。 如需完整的 API 參考,請瀏覽 Azure Chaos Studio REST API 參考。 此頁面提供有效使用 REST API 的範例,並非作為完整參考。
本文假設您使用 Azure CLI 來執行這些命令,但您可加以調整以適應其他標準 REST 用戶端。
您可以使用 Chaos Studio REST API:
- 建立、修改和刪除實驗
- 檢視、啟動和停止實驗執行
- 檢視和管理目標
- 向 Chaos Studio 資源提供者註冊和取消註冊您的訂用帳戶
- 檢視可用的資源提供者作業。
使用 az cli
公用程式來從命令列執行這些動作。
提示
若要透過 Azure CLI 取得更詳細的輸出,請將 --verbose
附加至每個命令的結尾。 當命令執行時,此變數會傳回更多中繼資料,包括 x-ms-correlation-request-id
,這可協助偵錯。
這些範例已透過正式運作的 Chaos Studio API 版本 2023-11-01
來檢閱。
資源提供者命令
本節列出 Chaos Studio 提供者命令,協助您了解資源提供者的狀態和可用的作業。
列出 Microsoft.Chaos 資源提供者的詳細資料
這會顯示 Chaos 資源提供者和區域可用性的可用 API 版本等資訊。 此作業所需的最新 api-version
可能與 Chaos 資源提供者作業的 api-version
不同。
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}"
列出 Microsoft.Chaos 資源提供者的所有作業
az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}"
目標和功能
這些作業可協助您查看可用的目標和功能,並將其新增至目標。
列出區域中所有可用的目標類型
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}"
列出目標類型可用的所有功能
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}"
啟用資源作為目標
若要在實驗中使用資源,您必須將它啟用作為目標。
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}"
啟用目標的功能
一旦啟用資源作為目標,您必須指定允許哪些功能 (對應至錯誤)。
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}"
查看目標已啟用哪些功能
啟用目標和功能後,您就可以檢視已啟用的功能。 這適用於建構混沌實驗,因為它包含每個錯誤的參數結構描述。
az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"
實驗
這些作業可協助您檢視、執行和管理實驗。
列出資源群組中的所有實驗
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"
依名稱取得實驗的設定詳細資料
az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
建立或更新實驗
az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json}
注意:如果您收到 UnsupportedMediaType
錯誤,請確定您參考的 JSON 檔案有效,並嘗試其他方法來參考 .json
檔案。 不同的命令列解釋器可能需要不同的檔案參考方法。 另一個常見的語法是 --body "@experimentName.json"
。
刪除實驗
az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
啟動實驗
az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"
取得實驗的所有執行
az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}"
列出特定實驗執行的詳細資料
如果實驗失敗,這可用來尋找錯誤訊息和失敗的特定目標、分支、步驟或動作。
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
取消 (停止) 實驗
az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}"
其他有用的命令和秘訣
雖然這些命令不會特別使用 Chaos Studio API,但它們對於有效使用 Chaos Studio 很有用。
使用 Azure Resource Graph 檢視 Chaos Studio 資源
您可使用 Azure Resource Graph REST API 來查詢與 Chaos Studio 相關聯的資源,例如目標和功能。
az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"
或者,您也可使用 Azure Resource Graph 的 az cli
延伸模組。
az graph query -q "chaosresources | summarize count() by type"
例如,如果您想要依資源群組取得訂用帳戶中所有作用中 Chaos Studio 目標的摘要,您可使用:
az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"
篩選和查詢
如同其他 Azure CLI 命令,您可以使用 --query
和 --filter
參數搭配 Azure CLI rest
命令。 例如,若要查看特定目標類型的可用功能類型資料表,請使用下列命令:
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version=2023-11-01" --output table --query 'value[].{name:name, faultType:properties.runtimeProperties.kind, urn:properties.urn}'
參數定義
本節說明本文件中使用的參數,以及如何填入這些參數。
參數名稱 | 定義 | 查詢 | 範例 |
---|---|---|---|
{apiVersion} | 當您執行所提供的命令時要使用的 API 版本 | 可以在 API 文件中找到 | 2023-11-01 |
{experimentId} | 實驗的 Azure 資源識別碼 | 在 Chaos Studio 實驗頁面上或透過對 /experiments 端點的 GET 呼叫即可找到 |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment |
{experimentName.json} | 包含混沌實驗設定的 JSON | 由使用者產生 | experiment.json (如需完整範例檔案,請參閱 CLI 教學課程) |
{subscriptionId} | 目標資源所在的訂用帳戶識別碼 | 在 Azure 入口網站的訂用帳戶頁面中尋找,或藉由執行 az account list --output table 來尋找 |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | 目標資源所在資源群組的名稱 | 在資源群組頁面中尋找,或藉由執行 az group list --output table 來尋找 |
my-resource-group |
{executionDetailsId} | 實驗執行的執行識別碼 | 在 Chaos Studio 實驗頁面中尋找,或透過對 /executions 端點的 GET 呼叫尋找 |
C69E7FCD-1548-47E5-9DDA-92A5DD60E610 |
{targetType} | 對應資源的目標類型 | 在錯誤提供者清單中尋找,或透過對 /locations/{locationName}/targetTypes 端點的 GET 呼叫尋找 |
Microsoft-VirtualMachine |
{capabilityName} | 個別功能資源的名稱,用於擴充目標資源 | 在錯誤參考文件中尋找,或透過對 capabilityTypes 端點的 GET 呼叫尋找 |
Shutdown-1.0 |
{locationName} | 資源或區域端點的 Azure 區域 | 使用 az account list-locations --output table 尋找帳戶的所有可能區域 |
eastus |