在 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 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 秒。
等待指定时间后,将 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>"...}}