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.

다음 중 이동 유효성을 검사하기 전에 액세스 토큰을 받아야 하는 경우는 무엇인가요?