Validera resurser i Azure

Slutförd

Du har utvärderat alla utvecklingsresurser som finns i den felaktiga produktionsresursgruppen. Du tror att de kan röra sig utan problem, men du vill testa det först.

I den här lektionen får du lära dig hur du verifierar att en flytt lyckas. Du får också lära dig hur du använder Azure REST API-åtgärden validate move för att testa och verifiera dina flyttningar.

Förbered för att testa flytten

Innan du försöker flytta en resurs kan du testa om flytten kommer lyckas genom att anropa åtgärden validate move via REST-API:et för Azure. Det här testet är särskilt användbart om du försöker flytta resurser med hjälp av (till exempel) Azure PowerShell eller Azure CLI. Du kan använda dessa verktyg för att skriptflyttar med minimal mänsklig interaktion. När du testar en flytt påverkas inte dina resurser. Åtgärden testar endast om flyttåtgärden skulle lyckas baserat på de alternativ som du anger.

Om du försöker flytta resurser via Azure-portalen behöver du inte validera flytten innan du utför den. Azure-portalen utför automatiskt en validering innan du får flytta resurserna.

Ett REST-API är ett programmeringsgränssnitt som du kan anropa via HTTP-förfrågningar. Programmerare anropar ofta REST-API:er i anpassad kod från klienter som mobilappar. Om du vill anropa en viss REST-metod i Azure, som åtgärden validate move, kan du använda Azure CLI:

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

För att formulera rätt REST-URI för anropet och tillhandahålla övriga nödvändiga detaljer måste du inhämta följande information:

  • ditt prenumerations-ID för Azure
  • namnet på resursgruppen som för närvarande innehåller dina resurser
  • resurs-ID:t för var och en av resurserna i den ursprungliga resursgruppen
  • resurs-ID:t för målresursgruppen dit du vill flytta dina resurser
  • åtkomsttoken för ditt konto.

När du använder Azure CLI till att anropa en REST API-åtgärd i Azure behöver du inte ange prenumerations-ID eller åtkomsttoken. CLI tar med de här värdena automatiskt.

Testa om flytten är giltig

Nu ska vi översiktligt gå igenom processen att validera en flytt med hjälp av REST-API:et.

Du kan skicka en POST-förfrågan med följande information:

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

Brödtexten i din POST-förfrågan måste innehålla följande information:

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

Kör det här kommandot för att skicka denna POST-förfrågan med rätt brödtext via 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

Om din förfrågan godkänns returnerar API:et statuskoden 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

I det här skedet visar svaret att API:et accepterar din begäran, men det har inte verifierat om flytten kommer att lyckas. Det här svaret ger dig en platsadress. Använd den här plats-URL:en för att testa flytten. Vänta under den tid som visas i värdet i retry-after valideringen av begäran innan du försöker testa valideringen. I det här exemplet är värdet 15 sekunder.

När du har väntat på den angivna tiden skickar du en GET-begäran till plats-URL:en:

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

Kör det här kommandot för att skicka denna GET-förfrågan via Azure CLI:

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

Om flytten verifieras som lyckad får du statuskoden 204. Annars får du följande felmeddelande som anger att flytten inte lyckas:

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

Kontrollera dina kunskaper

1.

I vilken av följande situationer skulle ett valideringstest göras automatiskt?

2.

I vilken av följande situationer måste du skaffa en åtkomsttoken innan du kan validera en flytt?