使用 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 |