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 |