你当前正在访问 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
实用工具从命令行执行这些操作。
提示
若要通过 AZ 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 资源 ID | 可以在 Chaos Studio 试验页上或通过对 /experiments 终结点的 GET 调用查找 |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 查找 |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | 目标资源所在的资源组的名称 | 在“资源组”页中或通过运行 az group list --output table 查找 |
my-resource-group |
{executionDetailsId} | 试验执行的执行 ID | 在 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 |