Share via


使用 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 資源提供者的詳細數據

這會顯示混亂資源提供者和區域可用性的可用 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} 

刪除實驗

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} 個別功能資源的名稱,擴充目標資源 錯誤參考檔案中尋找,或使用對端點的 GET 呼叫capabilityTypes Shutdown-1.0
{locationName} 資源或區域端點的 Azure 區域 使用 尋找帳戶的所有可能區域 az account list-locations --output table eastus