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 リソース プロバイダーに関する詳細を一覧表示する

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 コマンドと同様に、Azure CLI rest コマンドでパラメーターと--filterパラメーターを使用--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 の実験ページ、またはエンドポイントへの GET 呼び出しを使用して/experiments確認できます /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 portal の [サブスクリプション] ページ で、または 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} 対応するリソースのターゲットの種類 障害プロバイダーの 一覧 または エンドポイントへの GET 呼び出し/locations/{locationName}/targetTypes 検索する Microsoft-VirtualMachine
{capabilityName} ターゲット リソースを拡張する個々の機能リソースの名前 エラー参照ドキュメントまたはエンドポイントへの GET 呼び出し使用してcapabilityTypes検索する Shutdown-1.0
{locationName} リソースまたはリージョン エンドポイントの Azure リージョン アカウントで使用可能なすべてのリージョンを検索する az account list-locations --output table eastus