你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 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
要求可能与混沌资源提供程序操作不同 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 命令一样,可以将和--filter
参数与 Azure CLI rest
命令一--query
起使用。 例如,若要查看特定目标类型的可用功能类型的表,请使用以下命令:
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 资源 ID | 可以在 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} | 目标资源所在的订阅 ID | 在“Azure 门户订阅”页中或通过运行查找az account list --output table |
6b052e15-03d3-4f17-b2e1-be7f07588291 |
{resourceGroupName} | 目标资源所在的资源组的名称 | 在 “资源组”页 或运行中查找 az group list --output table |
my-resource-group |
{executionDetailsId} | 试验执行的执行 ID | 在 Chaos Studio 试验页 或对终结点的 GET 调用 中 /executions 查找 |
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 |