你当前正在访问 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