Compartilhar via


Restaurar blobs do Azure para um momento específico usando a API REST de Proteção de Dados do Azure

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, o Azure PowerShell, a CLI do Azure.

Importante

Antes de prosseguir com a restauração de blobs do Azure usando o Backup do Azure, confira os pontos importantes.

Pré-requisitos

Esse artigo considera que você tenha um backup configurado para uma ou mais de suas contas de armazenamento. Saiba como configurar um backup para dados de blob de blocos, se não estiver configurado.

Para ilustrar as etapas de restauração nesse artigo, vamos nos referir a blobs em uma conta de armazenamento chamada msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d protegida com um cofre de Backup TestBkpVault existente, no grupo de recursos testBkpVaultRG.

Preparar para a restauração de Blobs do Azure

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

Escolher 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 há momentos distintos a serem usados para a restauração. Nesse caso, precisamos buscar o intervalo de tempo válido no qual os blobs podem ser restaurados para qualquer momento específico. Neste exemplo, vamos verificar se há intervalos de tempo válidos a serem restaurados nos últimos 30 dias.

Os intervalos de tempo restauráveis podem ser listados usando a API localizar intervalo de tempo restaurável. Essa é uma API POST que dispara uma operação para calcular o intervalo de backups contínuos dos 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 nosso exemplo, isso é traduzido como

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

Veja a seguir os componentes de um corpo de solicitação usado para disparar uma operação para calcular intervalos de tempo válidos.

Nome Tipo Descrição
sourceDatastoreType RestoreSourceDataStoreType O armazenamento de dados que contém os dados a serem restaurados
hora de início fio Hora de início para a solicitação Listar intervalos de restauração. Formato ISO 8601.
Hora do fim fio Hora de término para a solicitação Listar intervalos de restauração. Formato ISO 8601.

Exemplo de corpo de 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 definir a hora de início e de término de maneira a restringir o processo de pesquisa e retornar o intervalo de tempo disponível.

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

Respostas para buscar intervalos de tempo válidos

Depois de enviar a solicitação POST, a resposta será 200(OK), e a hora de início e de término do intervalo disponíveis para restauração estarão dentro da hora de início e de término especificadas na solicitação.

Nome Tipo Descrição
200(OK) AzureBackupFindRestorableTimeRangesResponseResource OKEY
Outros códigos de status CloudError Resposta de erro que descreve por que a operação falhou.
Resposta de exemplo para buscar 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 a ser restaurado na mesma conta de armazenamento for definido, haverá várias opções a serem restauradas.

Opção 1: restaurar todos os blobs para um ponto no tempo

O uso dessa opção restaura todos os blobs de blocos na conta de armazenamento retrocedendo-os até o momento específico selecionado. Contas de armazenamento que contêm grandes quantidades de dados ou uma alta rotatividade podem precisar de mais tempo para serem restauradas.

Construir o corpo da solicitação para a restauração pontual de todos os blobs

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

  • A restauração está ocorrendo na mesma conta de armazenamento, o que significa que o objeto de destino da restauração é o mesmo do armazenamento de dados da origem. Isso se reflete na seção Restaurar informações de destino abaixo.
  • Por se tratar de backups contínuos, o momento de restauração é um momento específico e não pontos de recuperação distintos.
  • Todos os blobs são restaurados
  • O armazenamento de dados de origem, que é onde residem os backups, é 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 contêineres para um ponto no tempo

Usar essa opção permite que você selecione até 10 contêineres para restauração, ou que restaure 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 para seu estado anterior em um determinado ponto no tempo. No caso do uso de prefixos, aqui estão alguns pontos a serem considerados:

  • Você pode usar uma barra (/) para delinear o nome do contêiner do prefixo de BLOB
  • O início do intervalo especificado é inclusivo, mas o intervalo especificado é exclusivo.

Saiba mais sobre como usar prefixos para restaurar intervalos de blobs.

Construir o corpo da solicitação para a restauração pontual de contêineres selecionados ou de alguns blobs

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

  • A restauração está ocorrendo na mesma conta de armazenamento, o que significa que o objeto de destino da restauração é o mesmo do armazenamento de dados da origem. Isso se reflete na seção Restaurar informações de destino abaixo.
  • Por se tratar de backups contínuos, o momento de restauração é um momento específico e não pontos de recuperação distintos.
  • Poucos itens na conta de armazenamento são restaurados. Eles podem ser contêineres ou blobs com um padrão de prefixo.
  • O armazenamento de dados de origem, que é onde residem os backups, é 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

Depois que o corpo da solicitação estiver pronto, ele poderá ser validado usando a API de validação para restauração. Assim como no caso da API de validação para backup, essa é 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 nosso exemplo, isso é traduzido como:

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 dessa API POST é detalhado aqui. O mesmo procedimento foi construído na seção acima para os cenários de restauração de todos os blobs e de restauração de alguns itens. Usaremos esse mesmo procedimento para disparar uma operação de validação.

Resposta a solicitações de validação de uma restauração

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

Ela retorna duas respostas: 202 (Aceito) quando outra operação é criada e 200 (OK) quando a operação é concluída.

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

Exemplo de resposta para a solicitação para validar uma restauração

Depois que a operação POST for enviada, a resposta inicial será 202 Aceito, seguida do 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 for bem-sucedida, ela retornará 200 OK com uma resposta de status 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"
}

Disparar solicitações de restauração

O disparo de uma operação de restauração é uma API POST. Todos os detalhes sobre o disparo de uma operação de restauração 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 nosso exemplo, isso é traduzido como:

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"

Criar um corpo da 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 uma restauração de todos os blobs

A única alteração do corpo da solicitação para validar uma restauração é a remoção do 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 restauração de itens ou de alguns blobs

A única alteração do corpo da solicitação para validar uma restauração é a remoção do 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 para disparar solicitações de restauração

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

Ela retorna duas respostas: 202 (Aceito) quando outra operação é criada e 200 (OK) quando a operação é concluída.

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

Resposta de exemplo para disparar solicitações de restauração

Depois que a operação POST for enviada, a resposta inicial será 202 Aceito, seguida do 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, ela retorna 200 OK com uma ID de trabalho que deve ser acompanhada para 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 trabalhos

As solicitações de disparo de restauração iniciam o trabalho de restauração, e a ID do trabalho resultante é rastreada usando a o rastreamento usando a Obter trabalhos de API.

Use o simples comando GET para acompanhar o JobId fornecido no gatilho de resposta de restauração 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 que todos os blobs foram recuperados para o momento específico definido.

Próximas etapas

Visão geral do backup de blobs do Azure.

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