Azure のリソースを検証する

完了

不適切な運用リソース グループに含まれるすべての開発リソースを評価しました。 問題なく移動できると思いますが、先にテストしたいと考えています。

このユニットでは、移動が成功することを検証する方法について学習します。 また、Azure REST API の validate move 操作を使って、移動のテストと検証を行う方法についても学習します。

移動のテストを準備する

リソースの移動を試行する前に、Azure REST API から validate move 操作を呼び出して、成功するかどうかをテストできます。 このテストは、Azure PowerShell や Azure CLI などを使用してリソースを移動しようとしている場合に特に役立ちます。 これらのツールを使用すると、移動をスクリプト化でき、人が介入する操作を最小限に抑えることができます。 移動のテストは、リソースに影響しません。 この操作では、指定したオプションに基づいて、移動操作が成功するかどうかのみをテストします。

Azure portal からリソースを移動しようとしている場合は、移動の試行前に検証は必要ありません。 Azure portal により自動検証が実行された後、リソースの移動が可能になります。

REST API は、HTTP 要求を送信して呼び出すことができるプログラム インターフェイスです。 多くの場合、プログラマーがカスタム コードに REST API を記述して、それがモバイル アプリなどのクライアントから呼び出されます。 validate move 操作など、特定の Azure REST メソッドを呼び出すには、Azure CLI を使用できます。

az rest --method post --uri <enter the correct REST operation URI here>

正しい REST URI を作成して呼び出し、その他の必要な詳細を指定するには、次の情報を取得する必要があります。

  • Azure のサブスクリプション ID。
  • 現在リソースを保持しているリソース グループの名前。
  • 元のリソース グループ内の各リソースのリソース ID
  • リソース移動先のリソース グループのリソース ID
  • アカウントのアクセス トークン

Azure CLI を使用して Azure REST API 操作を呼び出す場合は、サブスクリプション ID またはアクセス トークンを指定する必要はありません。 CLI には、これらの値が自動的に含まれます。

移動の有効性をテストする

REST API を使用して移動を検証するプロセスを大まかに見てみましょう。

POST 要求は、次の詳細情報を指定して送信できます。

POST https://management.azure.com/subscriptions/<your-subscription-id>/resourceGroups/<your-source-group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <your-access-token>
Content-type: application/json

POST 要求の本文に次の情報を含める必要があります。

{
 "resources": ["<your-resource-id-1>", "<your-resource-id-2>", "<your-resource-id-3>"],
 "targetResourceGroup": "/subscriptions/<your-subscription-id>/resourceGroups/<your-target-group>"
}

Azure CLI を使用してこの POST 要求に正しい本文を指定して送信するには、次のコマンドを実行します。

az rest --method post \
   --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/<your-source-group>/validateMoveResources?api-version=2019-05-10 \
   --body "{\"resources\": [\"<your-resource-id-1>\", \"<your-resource-id-2>\", \"<your-resource-id-3>\"], \"targetResourceGroup\": \"/subscriptions/<your-subscription-id>/resourceGroups/<your-target-group>\"}" \
   --verbose

要求が受け入れられると、次に示すように、API から状態コード 202 が返されます。

Response Code: 202
cache-control: no-cache
pragma: no-cache
expires: -1
location: https://management.azure.com/subscriptions/<your-subscription-id>/operationresults/<your-operation-id>?api-version=2018-02-01
retry-after: 15

この段階では、応答は API が要求を受け入れることを示していますが、移動が成功するかどうかは検証されていません。 この応答では、ロケーション URL が返されます。 この場所の URL を使って、移動をテストします。 要求検証の retry-after 値に示されている時間だけ待ってから、検証をテストします。 この例では、値は 15 秒です。

指定された時間だけ待った後、場所の URL に GET 要求を送信します。

GET <location-url>
Authorization: Bearer <your-access-token>

Azure CLI を使用してこの GET 要求を送信するには、次のコマンドを実行します。

az rest --method get --uri <location-url>

移動が成功することが検証された場合、204 状態コードが表示されます。 そうでない場合は、移動が成功しないことを示す次のようなエラー メッセージが表示されます。

{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}

自分の知識をチェックする

1.

次の状況のうち、検証テストが自動的に行われるのはどれですか?

2.

次の状況のうち、移動を検証する前にアクセス トークンを取得する必要があるのはどれですか?