分享方式:


使用 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/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} 包含混沌實驗設定的 JSON 由使用者產生 experiment.json (如需完整範例檔案,請參閱 CLI 教學課程)
{subscriptionId} 目標資源所在的訂用帳戶識別碼 Azure 入口網站的訂用帳戶頁面中尋找,或藉由執行 az account list --output table 來尋找 6b052e15-03d3-4f17-b2e1-be7f07588291
{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