在 Azure 中驗證資源

已完成

您已評定位於錯誤生產資源群組中的所有開發資源。 您認為可以在沒有問題的情況下移動它們,但您想要先進行測試。

在此單元中,您會了解如何驗證移動是否成功。 您也會了解如何使用 Azure REST API validate move 作業來測試及驗證您的移動。

準備測試您的移動

在嘗試移動資源之前,您可以透過從 Azure REST API 呼叫 validate move 作業,來測試是否會成功。 例如,如果您嘗試使用 Azure PowerShell 或 Azure CLI 移動資源,此測試會特別實用。 您可以使用這些工具來撰寫以最低人為互動執行移動的指令碼。 測試移動並不會影響您的資源。 作業只會根據您提供的選項,測試您的移動作業是否會成功。

如果您嘗試透過 Azure 入口網站移動資源,就不需要在嘗試前先驗證移動。 Azure 入口網站會先執行自動驗證,然後才允許您移動資源。

REST API 是一種程式設計介面,您可以透過傳送 HTTP 要求來進行呼叫。 程式設計師通常會從用戶端 (例如行動應用程式) 的自訂程式碼中呼叫 REST API。 若要呼叫特定的 Azure REST 方法 (例如 validate move 作業),您可以使用 Azure CLI:

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

若要制定要呼叫的正確 REST URI,以及提供其他必要詳細資料,您必須取得下列資訊:

  • 您的 Azure 訂用帳戶識別碼。
  • 目前保留您資源的資源群組名稱。
  • 原始資源群組中每個資源的資源識別碼
  • 您要將資源移到其中的目的地資源群組資源識別碼
  • 您的帳戶存取權杖

當您使用 Azure CLI 呼叫 Azure REST API 作業時,您不需要提供訂用帳戶識別碼或存取權杖。 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 秒。

等候指定的時間之後,將 GET 要求傳送至位置 URL:

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.

在下列哪個情況下,您必須先取得存取權杖才能驗證移動?