Проверка ресурсов в Azure

Завершено

Вы оценили все ресурсы разработки, которые находятся в неправильной рабочей группе ресурсов. Вы думаете, что они могут двигаться без проблем, но вы хотите сначала протестировать его.

В этом уроке вы узнаете, как проверить успешность перемещения. Вы также узнаете, как использовать операцию REST API validate move Azure для тестирования и проверки перемещения.

Подготовка к тестированию перемещения

Прежде чем пытаться переместить ресурс, можно проверить, будет ли эта процедура успешной, вызвав операцию validate move из REST API Azure. Эта проверка особенно полезна при переносе ресурсов, например с помощью Azure PowerShell или интерфейса командной строки Azure. Эти средства можно использовать для составления сценариев перемещения с минимальным участием человека. Тестирование перемещения не затрагивает сами ресурсы. Эта операция лишь проверяет успешность операции перемещения на основе предоставленных параметров.

Если вы пытаетесь переместить ресурсы с помощью портала Azure, выполнять предварительную проверку не нужно. Перед перемещением ресурсов портал Azure выполняет проверку автоматически.

REST API — это программный интерфейс, который можно вызывать путем отправки HTTP-запросов. Программисты часто вызывают REST API в своем пользовательском коде из клиентов, таких как мобильные приложения. Чтобы вызвать конкретный метод REST Azure, например операцию validate move, можно использовать Azure CLI:

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

Чтобы сформулировать правильный вызываемый URI REST и предоставить другие необходимые сведения, нужно получить следующую информацию:

При использовании Azure CLI для вызова операции REST API Azure вам не нужно указывать идентификатор подписки или маркер доступа. Интерфейс командной строки включает эти значения автоматически.

Проверка допустимости перемещения

Давайте в общих чертах рассмотрим процесс проверки перемещения с помощью 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>"
}

Чтобы отправить этот запрос POST с правильным текстом с помощью Azure CLI, выполните следующую команду:

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>

Чтобы отправить запрос GET с помощью Azure CLI, выполните следующую команду:

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

Если перемещение проверяется успешно, вы получите код состояния 204. В противном случае вы получите следующее сообщение об ошибке, указывающее, что ваш шаг не будет успешным:

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

Проверьте свои знания

1.

В каком из следующих случаев проверочный тест выполняется автоматически?

2.

В какой из следующих ситуаций необходимо получить маркер доступа, прежде чем можно будет проверить перемещение?