Partilhar via


Restaurar blobs do Azure para point-in-time usando a API REST do Azure Data Protection

Este artigo descreve como restaurar blobs pelo Backup do Azure usando a API REST. Você também pode restaurar Blobs do Azure pelo Backup do Azure usando o portal do Azure, Azure PowerShell, Azure CLI.

Importante

Antes de proceder à restauração dos blobs do Azure usando o Azure Backup, consulte os pontos importantes.

Pré-requisitos

Este artigo considera que você tem um backup configurado para uma ou mais de suas contas de armazenamento. Saiba como configurar um backup para dados de blobs em blocos caso não esteja configurado.

Para ilustrar as etapas de restauração neste artigo, referir-nos-emos a blobs numa conta de armazenamento chamada msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d protegida com um Cofre de Backup existente TestBkpVault, sob o grupo de recursos testBkpVaultRG.

Preparação para a restauração de Blobs do Azure

Agora você pode fazer a operação de restauração para backup operacional e backup em cofre para Blobs do Azure.

Escolha um nível de backup:

Buscar o intervalo de tempo válido para restauração

Como o backup operacional de blobs é contínuo, não existem pontos distintos para restauração. Em vez disso, precisamos buscar o intervalo de tempo válido durante o qual os blobs podem ser restaurados para qualquer ponto no tempo. Neste exemplo, vamos verificar se há intervalos de tempo válidos para restaurar nos últimos 30 dias.

Os intervalos de tempo restauráveis podem ser listados usando a API find restorable time range. É uma API POST , que dispara uma operação para calcular o intervalo de backups contínuos para os blobs na conta de armazenamento.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/findRestorableTimeRanges?api-version=2021-01-01

Para o nosso exemplo, isto traduz-se em

POST https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d/findRestorableTimeRanges?api-version=2021-01-01

Criar o corpo da solicitação para buscar intervalos de tempo válidos para restauração

Para acionar uma operação para calcular intervalos de tempo válidos, a seguir estão os componentes de um corpo de solicitação.

Nome Tipo Descrição
sourceDatastoreType RestoreSourceDataStoreType O armazenamento de dados que contém os dados a serem restaurados
horaDeInício Cordão Hora de início da solicitação Listar Intervalos de Restauração. Formato ISO 8601.
Hora de Término Cordão Hora de término da solicitação Listar Intervalos de Restauração. Formato ISO 8601.

Exemplo de corpo da solicitação para buscar um intervalo de tempo válido

O corpo da solicitação a seguir define as propriedades necessárias para buscar os intervalos de tempo dos dados contínuos que podem ser restaurados. Como os backups de blob residem na conta de armazenamento, o armazenamento de dados é 'Operacional'. Você pode dar a hora de início e de término que ajuda a restringir o processo de pesquisa e retornar o intervalo de tempo disponível.

{
  "sourceDataStoreType": "OperationalStore",
  "startTime": "",
  "endTime": ""
}

Respostas para intervalos de tempo válidos de busca

Depois de enviar a solicitação POST , a resposta é 200(OK) com a hora de início e término do intervalo disponível para restauração dentro da hora de início e término especificada da solicitação.

Nome Tipo Descrição
200 (OK) AzureBackupFindRestorableTimeRangesResponseResource OK
Outros códigos de estado CloudError Resposta de erro descrevendo por que a operação falhou.
Exemplo de resposta para obter intervalos de tempo válidos
HTTP/1.1 200 OK
Content-Length: 379
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-writes: 1199
x-ms-correlation-request-id: a2b7c2d9-01f5-499a-b521-55da4862c79a
x-ms-routing-request-id: CENTRALUSEUAP:20210708T184646Z:4996a2bf-2df8-48a7-9b53-a552466a27f7
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 18:46:45 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET

{
  "id": "msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
  "type": "Microsoft.DataProtection/backupVaults/backupInstances/findRestorableTimeRanges",
  "properties": {
    "restorableTimeRanges": [
      {
        "startTime": "2021-07-06T18:46:45.947728Z",
        "endTime": "2021-07-08T18:46:45.9932408Z",
        "objectType": "RestorableTimeRange"
      }
    ],
    "objectType": "AzureBackupFindRestorableTimeRangesResponse"
  }
}

Depois que o momento específico para restaurar para a mesma conta de armazenamento está definido, há várias opções de restauração.

Opção 1: Restaure todos os blobs para um momento no tempo

Utilizar esta opção restaura todos os blocos blob na conta de armazenamento, revertendo-os para o momento selecionado. Contas de armazenamento contendo grandes quantidades de dados ou testemunhando uma alta rotatividade podem levar mais tempo para restaurar.

Construindo a estrutura da solicitação para restauração pontual de todos os blobs

Os principais pontos a serem lembrados neste cenário são:

  • A restauração está acontecendo com a mesma conta de armazenamento, o que significa que o objeto de destino para a restauração é o mesmo que a fonte de dados de origem. Isso se reflete na seção de informações de destino de restauração abaixo.
  • Estes são backups contínuos e, portanto, o tempo de restauração corresponde a um momento específico e não a um ponto de recuperação distinto.
  • Todos os blobs são restaurados
  • A fonte de armazenamento de dados, ou seja, onde os backups estão, utiliza a mesma conta de armazenamento. Portanto, o armazenamento de dados de origem é o armazenamento de dados 'operacional'.
{
  "restoreRequestObject": {
    "objectType": "AzureBackupRecoveryTimeBasedRestoreRequest",
    "restoreTargetInfo": {
      "objectType": "RestoreTargetInfo",
      "recoveryOption": "FailIfExists",
      "restoreLocation": "westus",
      "datasourceInfo": {
        "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
        "objectType": "Datasource",
        "resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
        "resourceLocation": "westus",
        "resourceName": "msblobbackup",
        "resourceType": "Microsoft.Storage/storageAccounts",
        "resourceUri": ""
      }
    },
    "sourceDataStoreType": "OperationalStore",
    "recoveryPointTime": "2021-07-08T00:00:00.0000000Z"
  }
}

Opção 2: Restaurar alguns contentores para um ponto no tempo

O uso dessa opção permite selecionar até 10 contêineres para restaurar ou restaurar um subconjunto de blobs usando uma correspondência de prefixo. Você pode especificar até 10 intervalos lexicográficos de blobs em um único contêiner ou em vários contêineres para retornar esses blobs ao seu estado anterior em um determinado momento. No caso de usar prefixos, aqui estão algumas coisas a ter em mente:

  • Você pode usar uma barra (/) para distinguir o nome do contentor a partir do prefixo de BLOB
  • O início do intervalo especificado é inclusivo, no entanto, o intervalo especificado é exclusivo.

Saiba mais sobre o uso de prefixos para restaurar intervalos de blobs.

Construa o corpo da solicitação para restauração pontual de contêineres selecionados ou de alguns blobs específicos

Os principais pontos a serem lembrados neste cenário são:

  • A restauração está acontecendo com a mesma conta de armazenamento, o que significa que o objeto de destino para a restauração é o mesmo que a fonte de dados de origem. Isso se reflete na seção de informações de destino de restauração abaixo.
  • Estes são backups contínuos e, portanto, o tempo de restauração corresponde a um momento específico e não a um ponto de recuperação distinto.
  • Poucos itens na conta de armazenamento são restaurados. Eles podem ser contêineres ou blobs com um padrão de prefixo.
  • O datastore de origem, ou seja, onde os backups estão, é a mesma conta de armazenamento. Portanto, o armazenamento de dados de origem é o armazenamento de dados 'operacional'.
{
  "restoreRequestObject": {
    "objectType": "AzureBackupRecoveryTimeBasedRestoreRequest",
    "restoreTargetInfo": {
      "objectType": "ItemLevelRestoreTargetInfo",
      "recoveryOption": "FailIfExists",
      "restoreLocation": "westus",
      "restoreCriteria": [
        {
          "objectType": "RangeBasedItemLevelRestoreCriteria",
          "minMatchingValue": "Container1",
          "maxMatchingValue": "Container10-0"
        }
      ],
      "datasourceInfo": {
        "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
        "objectType": "Datasource",
        "resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
        "resourceLocation": "westus",
        "resourceName": "msblobbackup",
        "resourceType": "Microsoft.Storage/storageAccounts",
        "resourceUri": ""
      }
    },
    "sourceDataStoreType": "OperationalStore",
    "recoveryPointTime": "2021-07-08T00:00:00.0000000Z"
  }
}

Validar solicitações de restauração

Uma vez que o corpo da solicitação é preparado, ele pode ser validado usando a API de validação para restauração. Como a API de validação para backup, esta é 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

Para o nosso exemplo, isto traduz-se em:

POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d/validateRestore?api-version=2021-01-01"

O corpo da solicitação para esta API POST é detalhado aqui. Construímos o mesmo na seção acima para o cenário de restauração de todos os blobs e o cenário de restauração de alguns itens. Usaremos o mesmo para acionar uma operação de validação.

Resposta para validar pedidos de restauração

A solicitação de restauração de validação é uma operação assíncrona. Isso significa que essa operação cria outra operação que precisa ser rastreada separadamente.

Retorna duas respostas: 202 (Aceite) quando outra operação é criada, e 200 (OK) quando essa operação é concluída.

Nome Tipo Descrição
200 OK Estado do pedido de validação
202 Aceito Aceito

Exemplo de resposta para restaurar validate-request

Após a operação POST ser enviada, a resposta inicial será "202 Aceitado" juntamente 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

Acompanhe o cabeçalho Azure-AsyncOperation com uma simples solicitação GET . Quando a solicitação é bem-sucedida, ela retorna 200 OK com uma resposta de status de sucesso.

 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 solicitações de restauração

A operação de restauração acionada é uma API POST. Todos os detalhes sobre a operação de restauração do gatilho estão documentados aqui.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/restore?api-version=2021-01-01

Para o nosso exemplo, isto traduz-se em:

POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d/restore?api-version=2021-01-01"

Crie um corpo de solicitação para operações de restauração

Depois que as solicitações são validadas, o mesmo corpo de solicitação pode ser usado para disparar a solicitação de restauração com pequenas alterações.

Exemplo de corpo de solicitação para a restauração de todos os blobs

A única alteração no corpo validate-restore-request é remover o objeto "restoreRequest" no início.

{
  "objectType": "AzureBackupRecoveryTimeBasedRestoreRequest",
  "restoreTargetInfo": {
    "objectType": "RestoreTargetInfo",
    "recoveryOption": "FailIfExists",
    "restoreLocation": "westus",
    "datasourceInfo": {
      "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
      "objectType": "Datasource",
      "resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
      "resourceLocation": "westus",
      "resourceName": "msblobbackup",
      "resourceType": "Microsoft.Storage/storageAccounts",
      "resourceUri": ""
    }
  },
  "sourceDataStoreType": "OperationalStore",
  "recoveryPointTime": "2021-07-08T00:00:00Z"
}

Exemplo de corpo de solicitação para recuperação de itens ou de alguns blobs

A única alteração no corpo validate-restore-request é remover o objeto "restoreRequest" no início.

{
  "objectType": "AzureBackupRecoveryTimeBasedRestoreRequest",
  "restoreTargetInfo": {
    "objectType": "ItemLevelRestoreTargetInfo",
    "recoveryOption": "FailIfExists",
    "restoreLocation": "westus",
    "restoreCriteria": [
      {
        "objectType": "RangeBasedItemLevelRestoreCriteria",
        "minMatchingValue": "Container1",
        "maxMatchingValue": "Container2"
      }
    ],
    "datasourceInfo": {
      "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
      "objectType": "Datasource",
      "resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
      "resourceLocation": "westus",
      "resourceName": "msblobbackup",
      "resourceType": "Microsoft.Storage/storageAccounts",
      "resourceUri": ""
    }
  },
  "sourceDataStoreType": "OperationalStore",
  "recoveryPointTime": "2021-07-08T00:00:00.0000000Z"
}

Resposta a pedidos de ativação de restauração

A solicitação de restauração de gatilho é uma operação assíncrona. Isso significa que essa operação cria outra operação que precisa ser rastreada separadamente.

Retorna duas respostas: 202 (Aceite) quando outra operação é criada, e 200 (OK) quando essa operação é concluída.

Nome Tipo Descrição
200 OK Status da solicitação de restauração
202 Aceito Aceito

Exemplo de resposta para ativar pedido de restauração

Após a operação POST ser enviada, a resposta inicial será "202 Aceitado" juntamente 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

Acompanhe o cabeçalho Azure-AsyncOperation com uma simples solicitação GET . Quando a solicitação é bem-sucedida, retorna 200 OK com uma ID do trabalho, que deve ser rastreada para acompanhar a conclusão da solicitação de restauração.

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"
  }
}

Acompanhar tarefas

As solicitações de ativação de restauração iniciam o trabalho de restauração, e a ID de trabalho resultante é rastreada usando a API GET Jobs.

Use o comando GET simples para rastrear o JobId fornecido na resposta de restauração do gatilho 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": "4195ca6c-e02d-11eb-b0b1-70bc105e2242",
    "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
    "backupInstanceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
    "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy",
    "dataSourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
    "vaultName": "BV-JPE-GRS",
    "backupInstanceFriendlyName": "msblobbackup",
    "policyName": "BlobBackup-Policy",
    "sourceResourceGroup": "RG-BlobBackup",
    "dataSourceName": "msblobbackup",
    "progressEnabled": false,
    "etag": "W/\"datetime'2021-07-08T20%3A48%3A36.6999667Z'\"",
    "sourceSubscriptionID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
    "dataSourceLocation": "westus",
    "startTime": "2021-07-08T20:44:19.5467125Z",
    "endTime": "2021-07-08T20:48:35.8297312Z",
    "dataSourceType": "Microsoft.Storage/storageAccounts/blobServices",
    "operationCategory": "Restore",
    "operation": "Restore",
    "status": "Completed",
    "isUserTriggered": true,
    "supportedActions": [
      ""
    ],
    "duration": "PT4M16.2830187S",
    "extendedInfo": {
      "sourceRecoverPoint": {
        "recoveryPointTime": "2021-07-08T00:00:00Z"
      },
      "recoveryDestination": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
      "subTasks": [
        {
          "taskId": 1,
          "taskName": "Trigger Restore",
          "taskStatus": "Completed"
        }
      ]
    }
  },
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/c4bd49a1-0645-4eec-b207-feb818962852",
  "name": "c4bd49a1-0645-4eec-b207-feb818962852",
  "type": "Microsoft.DataProtection/BackupVaults/backupJobs"
}

O status do trabalho acima indica que o trabalho de restauração foi concluído e todos os blobs foram recuperados para point-in-time especificado.

Próximos passos

Visão geral do backup de blob do Azure.

Para obter mais informações sobre as APIs REST do Backup do Azure, consulte os seguintes documentos: