Restaurar Discos do Azure com a API REST do Azure Data Protection
Este artigo descreve como restaurar discos com Azure Backup.
O Azure Disk Backup oferece uma solução chave na mão que fornece gestão do ciclo de vida de instantâneos para discos geridos ao automatizar a criação periódica de instantâneos e mantê-lo durante a duração configurada com a política de cópia de segurança. Pode gerir os instantâneos do disco com um custo de infraestrutura zero e sem a necessidade de scripting personalizado ou qualquer sobrecarga de gestão. Esta é uma solução de cópia de segurança consistente com falhas que faz a cópia de segurança para um ponto anterior no tempo de um disco gerido através de instantâneos incrementais com suporte para várias cópias de segurança por dia. Também é uma solução sem agente e não afeta o desempenho da aplicação de produção. Suporta a cópia de segurança e o restauro do SO e dos discos de dados (incluindo discos partilhados), quer estejam ou não anexados a uma máquina virtual do Azure em execução.
Nota
- Atualmente, a opção Original-Location Recovery (OLR) para restaurar ao substituir o disco de origem existente (a partir do local onde foram feitas as cópias de segurança) não é suportada.
- Pode restaurar a partir de um ponto de recuperação para criar um novo disco no mesmo grupo de recursos do disco de origem ou em qualquer outro grupo de recursos. É conhecido como Alternate-Location Recovery (ALR).
Pré-requisitos
No exemplo, vamos referir-nos a um cofre de cópia de segurança existente TestBkpVault, no grupo de recursos testBkpVaultRG, em que um Disco do Azure tem o nome msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed.
Restaurar para criar um novo Disco do Azure
Configurar permissões
O cofre de cópias de segurança utiliza a identidade gerida para aceder a outros recursos do Azure. Para restaurar a partir da cópia de segurança, a identidade gerida do Cofre de cópia de segurança requer um conjunto de permissões no grupo de recursos onde o disco precisa de ser restaurado.
O cofre de cópia de segurança utiliza uma identidade gerida atribuída pelo sistema, que está restrita a uma por recurso e está associada ao ciclo de vida deste recurso. Para conceder permissões à identidade gerida, utilize o controlo de acesso baseado em funções do Azure (RBAC do Azure). A identidade gerida é um principal de serviço específico que só pode utilizar com recursos do Azure. Saiba mais sobre as Identidades Geridas.
Atribua as permissões relevantes para a identidade gerida atribuída pelo sistema do cofre no grupo de recursos de destino onde os discos serão restaurados/criados. Saiba mais.
Obter a lista de pontos de recuperação
Para listar todos os pontos de recuperação disponíveis para uma instância de cópia de segurança, utilize a API de pontos de recuperação de lista .
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/recoveryPoints?api-version=2021-01-01
Por exemplo, esta API traduz-se em:
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed/recoveryPoints?api-version=2021-01-01
Respostas para a lista de pontos de recuperação
Depois de submeter o pedido GET , esta ação devolve a resposta como 200 (OK) e a lista de todos os pontos de recuperação discretos com todos os detalhes relevantes.
Nome | Tipo | Description |
---|---|---|
200 OK | AzureBackupRecoveryPointResourceList | OK |
Outros Códigos de estado | CloudError | A resposta ao erro descreve o motivo da falha da operação. |
Resposta de exemplo para a lista de pontos de recuperação
HTTP/1.1 200 OK
Content-Length: 7550
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 11999
x-ms-correlation-request-id: f01e2448-bdc5-4971-aee4-2edd1945c719
x-ms-routing-request-id: CENTRALUSEUAP:20210830T173435Z:0063423e-8b5e-493e-bb2e-74b7c7947c6c
Cache-Control: no-cache
Date: Mon, 30 Aug 2021 17:34:34 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"value": [
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed/recoveryPoints/a3d02fc3ab8a4c3a8cc26688c26d3356",
"name": "a3d02fc3ab8a4c3a8cc26688c26d3356",
"type": "Microsoft.DataProtection/backupVaults/backupInstances/recoveryPoints",
"properties": {
"objectType": "AzureBackupDiscreteRecoveryPoint",
"recoveryPointId": "a3d02fc3ab8a4c3a8cc26688c26d3356",
"recoveryPointTime": "2021-08-30T10:02:11.6354913Z",
"recoveryPointType": "Incremental",
"friendlyName": "119ac243-a789-4a41-be24-0461bceb3888",
"recoveryPointDataStoresDetails": [
{
"id": "13e7c1fe-005d-4b80-8532-c58d937132bb",
"type": "OperationalStore",
"creationTime": "2021-08-30T10:02:11.6354913Z",
"expiryTime": "2021-09-06T10:02:11.6354913Z",
"metaData": null,
"visible": true,
"state": "COMMITTED",
"rehydrationExpiryTime": null,
"rehydrationStatus": null
}
],
"retentionTagName": "Default",
"retentionTagVersion": "637607428336647408",
"policyName": "DiskBackupPolicy-03",
"policyVersion": null
}
},
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed/recoveryPoints/8f76ebc4c54847c09455d5785a150ce2",
"name": "8f76ebc4c54847c09455d5785a150ce2",
"type": "Microsoft.DataProtection/backupVaults/backupInstances/recoveryPoints",
"properties": {
"objectType": "AzureBackupDiscreteRecoveryPoint",
"recoveryPointId": "8f76ebc4c54847c09455d5785a150ce2",
"recoveryPointTime": "2021-08-29T10:01:50.7749008Z",
"recoveryPointType": "Incremental",
"friendlyName": "1ac5aa6b-3583-464f-9604-7490c04c2b22",
"recoveryPointDataStoresDetails": [
{
"id": "13e7c1fe-005d-4b80-8532-c58d937132bb",
"type": "OperationalStore",
"creationTime": "2021-08-29T10:01:50.7749008Z",
"expiryTime": "2021-09-05T10:01:50.7749008Z",
"metaData": null,
"visible": true,
"state": "COMMITTED",
"rehydrationExpiryTime": null,
"rehydrationStatus": null
}
],
"retentionTagName": "Default",
"retentionTagVersion": "637607428336647408",
"policyName": "DiskBackupPolicy-03",
"policyVersion": null
}
},
.
.
.
.
}
Selecione os pontos de recuperação relevantes na lista acima e prepare o pedido de restauro. Vamos escolher um ponto de recuperação com o nome a3d02fc3ab8a4c3a8cc26688c26d3356
da lista acima para restaurar.
Preparar o pedido de restauro
Construa o ID de Resource Manager do Azure (ARM) do novo disco a ser criado com o grupo de recursos de destino (ao qual as permissões foram atribuídas conforme detalhado acima) e o nome do disco necessário.
Por exemplo, vamos utilizar um disco com o nome APITestDisk2
, num grupo targetrg
de recursos , presente na mesma região que o disco de cópia de segurança, mas numa subscrição diferente.
Construir o corpo do pedido para o pedido de restauro
O corpo do pedido seguinte contém o ID do ponto de recuperação e os detalhes do destino de restauro.
{
"recoveryPointId": "a3d02fc3ab8a4c3a8cc26688c26d3356",
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "OperationalStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"resourceName": "APITestDisk2",
"resourceType": "Microsoft.Compute/disks",
"resourceLocation": "westUS",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"datasourceType": "Microsoft.Compute/disks"
},
"restoreLocation": "westUS"
}
}
}
Validar pedidos de restauro
Assim que o corpo do pedido estiver preparado, valide-o com a validação da API de restauro. Tal como validar para a API de cópia de segurança, trata-se de uma operação POST .
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore?api-version=2021-01-01
Por exemplo, esta API traduz-se em:
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed/validateRestore?api-version=2021-01-01"
Saiba mais sobre o corpo do pedido para esta API POST.
Corpo do pedido para validar o pedido de restauro
Construímos uma secção do mesmo na secção acima. Agora, vamos adicionar o tipo de objeto e utilizá-lo para acionar uma operação de validação.
{
"objectType": "ValidateRestoreRequestObject",
"recoveryPointId": "a3d02fc3ab8a4c3a8cc26688c26d3356",
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "OperationalStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"resourceName": "APITestDisk2",
"resourceType": "Microsoft.Compute/disks",
"resourceLocation": "westUS",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"datasourceType": "Microsoft.Compute/disks"
},
"restoreLocation": "westUS"
}
}
}
Resposta para validar pedidos de restauro
O pedido de restauro de validação é uma operação assíncrona. Por isso, esta operação cria outra operação que tem de ser controlada separadamente.
Devolve duas respostas: 202 (Aceite) quando é criada outra operação e 200 (OK) quando a operação for concluída.
Nome | Tipo | Description |
---|---|---|
200 OK | Estado do pedido de validação | |
202 Aceite | Aceite |
Resposta de exemplo para restaurar o pedido de validação
Assim que a operação POST for submetida, devolverá a resposta inicial como 202 (Aceite) com um cabeçalho Azure-asyncOperation .
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 10
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: bae60c92-669d-45a4-aed9-8392cca7cc8d
x-ms-routing-request-id: CENTRALUSEUAP:20210708T205935Z:f51db7a4-9826-4084-aa3b-ae640dc78af6
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 20:59:35 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==?api-version=2021-01-01
X-Powered-By: ASP.NET
Controle o cabeçalho Azure-AsyncOperation com um pedido GET . Quando o pedido é bem-sucedido, devolve 200 (OK) com uma resposta de estado de êxito.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==?api-version=2021-01-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==",
"status": "Succeeded",
"startTime": "2021-07-08T20:59:35.0060264Z",
"endTime": "2021-07-08T20:59:57Z"
}
Acionar pedidos de restauro
A operação de restauro do acionador é uma API POST . Saiba mais sobre a operação de restauro do acionador.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/restore?api-version=2021-01-01
Por exemplo, a API traduz-se em:
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed/restore?api-version=2021-01-01"
Criar um corpo de pedido para operações de restauro
Assim que os pedidos forem validados, utilize o mesmo corpo do pedido para acionar o pedido de restauro com pequenas alterações.
Corpo do pedido de exemplo para restauro
A única alteração do corpo do pedido de restauro validado é remover o objeto restoreRequest no início e alterar o tipo de objeto.
{
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"recoveryPointId": "a3d02fc3ab8a4c3a8cc26688c26d3356",
"sourceDataStoreType": "OperationalStore",
"restoreTargetInfo": {
"datasourceInfo": {
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"datasourceType": "Microsoft.Compute/disks",
"resourceName": "APITestDisk2",
"resourceType": "Microsoft.Compute/disks",
"resourceLocation": "westUS",
"objectType": "Datasource"
},
"restoreLocation": "westUS",
"recoveryOption": "FailIfExists",
"objectType": "RestoreTargetInfo"
}
}
Resposta para acionar pedidos de restauro
O pedido de restauro do acionador é uma operação assíncrona. Por isso, esta operação cria outra operação que tem de ser controlada separadamente.
Devolve duas respostas: 202 (Aceite) quando é criada outra operação e 200 (OK) quando a operação for concluída.
Nome | Tipo | Description |
---|---|---|
200 OK | Estado do pedido de restauro | |
202 Aceite | Aceite |
Resposta de exemplo para acionar o pedido de restauro
Assim que a operação POST for submetida, devolverá a resposta inicial como 202 (Aceite) com um cabeçalho Azure-asyncOperation .
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 30
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-01-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1197
x-ms-correlation-request-id: 8661209c-5b6a-44fe-b676-4e2b9c296593
x-ms-routing-request-id: CENTRALUSEUAP:20210708T204652Z:69e3fa4b-c5d9-4601-9410-598006ada187
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 20:46:52 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-01-01
X-Powered-By: ASP.NET
Controle o cabeçalho Azure-AsyncOperation com um pedido GET . Quando o pedido for bem-sucedido, devolverá 200 (OK) com um ID de tarefa que deve ser monitorizado para concluir o pedido de restauro.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-01-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==",
"status": "Succeeded",
"startTime": "2021-07-08T20:46:52.4110868Z",
"endTime": "2021-07-08T20:46:56Z",
"properties": {
"jobId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/c4bd49a1-0645-4eec-b207-feb818962852",
"objectType": "OperationJobExtendedInfo"
}
}
Controlar tarefas
Os pedidos de restauro do acionador acionaram a tarefa de restauro. Para controlar o ID da Tarefa resultante, utilize a API GET Jobs.
Utilize o comando GET para controlar o JobId presente na resposta de restauro do acionador acima.
GET /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/c4bd49a1-0645-4eec-b207-feb818962852?api-version=2021-01-01
{
"properties": {
"activityID": "2881cc22-f527-4af4-9b34-46c6c7b72076-Ibz",
"subscriptionId": "62b829ee-7936-40c9-a1c9-47a93f9f3965",
"backupInstanceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed",
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/DiskBackup-Policy",
"dataSourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup",
"vaultName": "testBkpVault",
"backupInstanceFriendlyName": "msdiskbackup",
"policyName": "DiskBackup-Policy",
"sourceResourceGroup": "RG-DiskBackup",
"dataSourceSetName": null,
"dataSourceName": "msdiskbackup",
"sourceDataStoreName": null,
"destinationDataStoreName": null,
"progressEnabled": false,
"etag": "W/\"datetime'2021-08-26T07%3A18%3A16.157629Z'\"",
"sourceSubscriptionID": "62b829ee-7936-40c9-a1c9-47a93f9f3965",
"dataSourceLocation": "westUS",
"startTime": "2021-08-26T07:12:09.940517Z",
"endTime": "2021-08-26T07:18:15.6815066Z",
"dataSourceType": "Microsoft.Compute/disks",
"operationCategory": "Restore",
"operation": "Restore",
"status": "Completed",
"restoreType": null,
"isUserTriggered": true,
"rehydrationPriority": null,
"supportedActions": [
""
],
"duration": "PT6M5.7409896S",
"progressUrl": null,
"errorDetails": null,
"extendedInfo": {
"backupInstanceState": null,
"dataTransferedInBytes": null,
"targetRecoverPoint": null,
"sourceRecoverPoint": {
"recoveryPointID": "3a512290ec6b43d6b9a644869f4a3b38",
"recoveryPointTime": "2021-08-25T09:03:11.6889015Z"
},
"recoveryDestination": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/APITestDisk2",
"subTasks": [
{
"taskId": 1,
"taskName": "Trigger Restore",
"taskStatus": "Completed",
"taskProgress": null,
"additionalDetails": null
}
],
"additionalDetails": null
}
},
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/3bc62c80-913f-47fa-b829-b7df476682be",
"name": "3bc62c80-913f-47fa-b829-b7df476682be",
"type": "Microsoft.DataProtection/BackupVaults/backupJobs"
}
O estado da tarefa acima indica que a tarefa de restauro está concluída e os discos foram recuperados para a subscrição especificada e para o grupo de recursos de destino.
Passos seguintes
Descrição geral da cópia de segurança do Azure Disk
Para obter mais informações sobre as APIs REST Azure Backup, veja os seguintes artigos: