次の方法で共有


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} 

注: 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 コマンドと同様に、Azure CLI の rest コマンドで --query パラメーターと --filter パラメーターを使用できます。 たとえば、特定のターゲットの種類で使用可能な機能の種類の表を表示するには、次のコマンドを使用します。

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 portal の [サブスクリプション] ページ を参照するか、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