Weryfikowanie zasobów na platformie Azure

Ukończone

Oceniono wszystkie zasoby programistyczne, które znajdują się w nieprawidłowej grupie zasobów produkcyjnych. Myślisz, że mogą poruszać się bez problemów, ale chcesz go przetestować najpierw.

W tej lekcji dowiesz się, jak sprawdzić, czy przeniesienie zakończy się pomyślnie. Dowiesz się również, jak używać operacji interfejsu API validate move REST platformy Azure do testowania i weryfikowania ruchów.

Przygotowanie do testowania przenoszenia

Przed podjęciem próby przeniesienia zasobu można przetestować, czy powiedzie się ona, wywołując operację validate move z interfejsu API REST platformy Azure. Ten test jest szczególnie przydatny, jeśli próbujesz przenieść zasoby przy użyciu (na przykład) programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Za pomocą tych narzędzi można wykonywać skrypty z minimalną interakcją człowieka. Testowanie przenoszenia nie ma wpływu na zasoby. Operacja sprawdza tylko, czy operacja przenoszenia powiedzie się na podstawie dostępnych opcji.

Jeśli próbujesz przenieść zasoby za pomocą witryny Azure Portal, nie musisz weryfikować przenoszenia przed podjęciem próby. Witryna Azure Portal wykonuje automatyczną walidację, zanim umożliwi Ci przeniesienie zasobów.

Interfejs API REST to interfejs programistyczny, który można wywoływać, wysyłając żądania HTTP. Programiści często wywołują interfejsy API REST w kodzie niestandardowym z klientów takich jak aplikacje mobilne. Aby wywołać określoną metodę REST platformy Azure, taką jak operacja validate move, możesz użyć interfejsu wiersza polecenia platformy Azure:

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

Aby utworzyć prawidłowy identyfikator URI REST do wywołania i podać inne wymagane szczegóły, należy uzyskać następujące informacje:

  • Identyfikator subskrypcji platformy Azure.
  • Nazwę grupy zasobów, w której aktualnie znajdują się zasoby.
  • Identyfikator zasobu dla każdego zasobu w oryginalnej grupie zasobów.
  • Identyfikator zasobu dla docelowej grupy zasobów, do której chcesz przenieść zasoby.
  • Token dostępu Twojego konta.

Jeśli używasz interfejsu wiersza polecenia platformy Azure do wywołania operacji interfejsu API REST platformy Azure, nie musisz podawać identyfikatora subskrypcji ani tokenu dostępu. Interfejs wiersza polecenia uwzględnia te wartości automatycznie.

Testowanie poprawności przenoszenia

Przyjrzyjmy się ogólnie procesowi weryfikacji przenoszenia przy użyciu interfejsu API REST.

Możesz wysłać żądanie POST z następującymi szczegółami:

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

Treść żądania POST musi zawierać następujące informacje:

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

Aby przesłać to żądanie POST z prawidłową treścią przy użyciu interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie:

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

Jeśli żądanie zostanie zaakceptowane, interfejs API zwróci kod stanu 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

Na tym etapie odpowiedź pokazuje, że interfejs API akceptuje twoje żądanie, ale nie zweryfikował, czy przeniesienie zakończy się pomyślnie. Ta odpowiedź zawiera adres URL lokalizacji. Użyj tego adresu URL lokalizacji, aby przetestować przenoszenie. Przed podjęciem próby przetestowania weryfikacji poczekaj czas wyświetlany w retry-after wartości w weryfikacji żądania. W tym przykładzie wartość wynosi 15 sekund.

Po oczekiwaniu na określony czas wyślij żądanie GET do adresu URL lokalizacji:

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

Aby przesłać to żądanie GET przy użyciu interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie:

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

Jeśli przeniesienie zakończy się powodzeniem, otrzymasz kod stanu 204. W przeciwnym razie zostanie wyświetlony następujący komunikat o błędzie wskazujący, że przeniesienie nie powiedzie się:

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

Sprawdź swoją wiedzę

1.

W których z następujących sytuacji test poprawności zostanie wykonany automatycznie?

2.

W których z następujących sytuacji jest potrzebne uzyskanie tokenu dostępu, aby można było zweryfikować przeniesienie?