Udostępnij za pomocą


Przywracanie obiektów blob w Azure do określonego momentu przy użyciu interfejsu API REST usługi Azure Data Protection

W tym artykule opisano sposób przywracania obiektów blob za pomocą narzędzia Azure Backup przy użyciu interfejsu API REST. Obiekty blob platformy Azure można również przywrócić za pomocą usługi Azure Backup przy użyciu witryny Azure Portal, programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure.

Ważne

Przed kontynuowaniem przywracania obiektów blob platformy Azure przy użyciu usługi Azure Backup zobacz ważne kwestie.

Wymagania wstępne

W tym artykule założono, że masz skonfigurowaną kopię zapasową dla co najmniej jednego konta magazynowego. Dowiedz się, jak skonfigurować kopię zapasową dla danych blob typu block, jeśli nie została skonfigurowana.

Aby zilustrować kroki przywracania w tym artykule, odwołamy się do obiektów blob na koncie magazynu o nazwie msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d, chronionych za pomocą istniejącej skarbnicy usługi Backup TestBkpVault, w grupie zasobów testBkpVaultRG.

Przygotowywanie do przywracania obiektów blob platformy Azure

Teraz możesz wykonać operację przywracania dla operacyjnej kopii zapasowej i kopii zapasowej w skarbcu dla Blobów Azure.

Wybierz warstwę kopii zapasowej:

Uzyskaj prawidłowy zakres czasu dla przywracania

Ponieważ operacyjna kopia zapasowa dla blobów jest ciągła, nie ma żadnych wyraźnych punktów przywracania. Zamiast tego musimy pobrać prawidłowy zakres czasu, w którym można przywrócić obiekty blob do dowolnego punktu w czasie. W tym przykładzie sprawdźmy, czy istnieją prawidłowe zakresy czasu do przywracania w ciągu ostatnich 30 dni.

Zakresy czasu możliwe do przywrócenia można wyświetlać przy użyciu interfejsu API znajdowania możliwego do przywrócenia zakresu czasu . Jest to API POST, które wyzwala operację obliczenia zakresu ciągłych kopii zapasowych dla obiektów blob na koncie magazynowym.

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

W naszym przykładzie przekłada się to na

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

Utwórz treść żądania, aby pobrać prawidłowe przedziały czasowe do przywracania.

Aby wyzwolić operację w celu obliczenia prawidłowych zakresów czasu, poniżej przedstawiono składniki treści żądania.

Nazwa Typ Opis
sourceDatastoreType RestoreSourceDataStoreType Magazyn danych zawierający dane do przywrócenia
czas rozpoczęcia Sznurek Godzina rozpoczęcia żądania zakresów przywracania listy. Format ISO 8601.
czas zakończenia Sznurek Godzina zakończenia żądania zakresów przywracania listy. Format ISO 8601.

Przykładowa treść żądania do pobrania prawidłowego zakresu czasu

Poniższa treść żądania definiuje właściwości wymagane do pobrania zakresów czasu ciągłych danych, które można przywrócić. Ponieważ kopie zapasowe obiektów blob znajdują się na koncie magazynowym, magazyn danych jest operacyjny. Możesz podać czas rozpoczęcia i zakończenia, który pomaga zawęzić proces wyszukiwania i zwrócić dostępny zakres czasu.

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

Odpowiedzi dotyczące uzyskiwania prawidłowych zakresów czasu

Po przesłaniu żądania POST odpowiedź to 200(OK) z czasem rozpoczęcia i zakończenia zakresu dostępnego do przywrócenia w określonym czasie rozpoczęcia i zakończenia żądania.

Nazwa Typ Opis
200(OK) AzureBackupFindRestorableTimeRangesResponseResource OK
Inne kody statusu CloudError Odpowiedź na błąd opisująca, dlaczego operacja nie powiodła się.
Przykładowa odpowiedź na potrzeby pobierania prawidłowych zakresów czasu
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"
  }
}

Po ustaleniu punktu w czasie do przywrócenia na to samo konto magazynu, istnieje wiele opcji przywracania.

Opcja 1: Przywróć wszystkie obiekty blob do punktu czasowego

Użycie tej opcji powoduje przywrócenie wszystkich blokowych blob na koncie magazynu przez cofnięcie ich do wybranego momentu w czasie. Przywracanie kont magazynu zawierających duże ilości danych lub mających wysoki współczynnik zmian może zająć więcej czasu.

Konstruowanie treści żądania dla punktualnego przywracania wszystkich blobów

Najważniejsze kwestie, które należy zapamiętać w tym scenariuszu, to:

  • Przywracanie odbywa się na tym samym koncie magazynu, co oznacza, że obiekt docelowy przywracania jest taki sam jak dane źródłowe. Jest to odzwierciedlone w poniższej sekcji informacji docelowych przywracania.
  • Są to ciągłe kopie zapasowe, dlatego czas przywracania jest punktem w czasie, a nie odrębnym punktem odzyskiwania.
  • Wszystkie bloby są przywracane
  • Źródłowy magazyn danych, w którym znajdują się kopie zapasowe, jest tym samym kontem magazynowym. W związku z tym źródłowy magazyn danych to "Operacyjny" magazyn danych.
{
  "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"
  }
}

Opcja 2. Przywracanie kilku kontenerów do punktu w czasie

Użycie tej opcji umożliwia wybranie maksymalnie 10 kontenerów w celu przywrócenia lub częściowego przywrócenia obiektów blob przy użyciu dopasowania do prefiksu. Możesz określić do 10 zakresów leksykograficznych blobów w jednym kontenerze lub w kilku kontenerach, aby przywrócić te bloby do ich poprzedniego stanu w określonym momencie. W przypadku używania prefiksów należy pamiętać o kilku kwestiach:

  • Możesz użyć ukośnika (/) do oddzielenia nazwy kontenera od prefiksu blobu.
  • Początek określonego zakresu jest włączający, jednakże sam zakres jest wyłączający.

Dowiedz się więcej o używaniu prefiksów do przywracania zakresów blobów.

Skonstruuj treść żądania dla odtworzenia stanu wybranych kontenerów lub kilku obiektów blob na określony moment w czasie.

Najważniejsze kwestie, które należy zapamiętać w tym scenariuszu, to:

  • Przywracanie odbywa się na tym samym koncie magazynu, co oznacza, że obiekt docelowy przywracania jest taki sam jak dane źródłowe. Jest to odzwierciedlone w poniższej sekcji informacji docelowych przywracania.
  • Są to ciągłe kopie zapasowe, dlatego czas przywracania jest punktem w czasie, a nie odrębnym punktem odzyskiwania.
  • Przywrócono kilka elementów w koncie magazynu. Mogą to być kontenery lub bloby ze wzorcem prefiksu.
  • Źródłowe repozytorium danych, czyli miejsce, gdzie znajdują się kopie zapasowe, to to samo konto magazynu. W związku z tym źródłowy magazyn danych to "Operacyjny" magazyn danych.
{
  "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"
  }
}

Zatwierdź żądania przywrócenia

Po przygotowaniu treści żądania można ją zweryfikować przy użyciu weryfikacji interfejsu API przywracania. Podobnie jak w przypadku interfejsu API Validate-for-backup, jest to operacja POST .

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

W naszym przykładzie przekłada się to na:

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"

Treść żądania dla tego POST API jest szczegółowo opisana tutaj. Utworzyliśmy to samo w powyższej sekcji dla scenariuszy przywracania wszystkich obiektów blob i przywracania kilku elementów. Użyjemy tego samego polecenia, aby wyzwolić operację weryfikacji.

Odpowiedź na weryfikowanie żądań przywracania

Żądanie weryfikacji przywracania jest operacją asynchroniczną. Oznacza to, że ta operacja tworzy inną operację, która musi być śledzona oddzielnie.

Zwraca dwie odpowiedzi: 202 (Zaakceptowano) podczas tworzenia innej operacji i 200 (OK) po zakończeniu tej operacji.

Nazwa Typ Opis
200 OK Status żądania walidacji
202 Zaakceptowano Zaakceptowano

Przykładowa odpowiedź na żądanie weryfikacji poprawności

Po przesłaniu operacji POST początkowa odpowiedź będzie 202 Zaakceptowana wraz z nagłówkiem 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

Śledź nagłówek Azure-AsyncOperation za pomocą prostego żądania GET . Gdy żądanie zakończy się pomyślnie, zwraca kod 200 OK z odpowiedzią potwierdzającą sukces.

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

Wyzwól żądania przywracania

Operacja przywracania wywoływana przez interfejs API POST. Wszystkie szczegółowe informacje o operacji przywracania wyzwalacza zostały opisane tutaj.

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

W naszym przykładzie przekłada się to na:

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"

Utwórz treść żądania dla operacji przywracania

Po zweryfikowaniu żądań można użyć tej samej treści żądania do uruchomienia żądania przywracania z drobnymi zmianami.

Przykładowa treść żądania dla odzyskiwania wszystkich obiektów blob

Jedyną zmianą z treści żądania validate-restore-request jest usunięcie obiektu "restoreRequest" na początku.

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

Przykładowa treść żądania dla elementów lub kilku obiektów blob przywracania

Jedyną zmianą z treści żądania validate-restore-request jest usunięcie obiektu "restoreRequest" na początku.

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

Odpowiedź na żądania przywracania spustu

Żądanie przywracania wyzwalacza jest operacją asynchroniczną. Oznacza to, że ta operacja tworzy inną operację, która musi być śledzona oddzielnie.

Zwraca dwie odpowiedzi: 202 (Zaakceptowano) podczas tworzenia innej operacji i 200 (OK) po zakończeniu tej operacji.

Nazwa Typ Opis
200 OK Status żądania przywrócenia
202 Zaakceptowano Zaakceptowano

Przykładowa odpowiedź na żądanie przywrócenia

Po przesłaniu operacji POST początkowa odpowiedź będzie 202 Zaakceptowana wraz z nagłówkiem 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

Śledź nagłówek Azure-AsyncOperation za pomocą prostego żądania GET . Gdy żądanie zakończy się powodzeniem, zwraca wartość 200 OK z identyfikatorem zadania, co powinno być dalej śledzone w celu ukończenia żądania przywracania.

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

Śledź zadania

Żądania przywracania wyzwalane rozpoczynają zadanie przywracania, a wynikowy identyfikator zadania jest śledzony przy użyciu API GET Jobs.

Użyj prostego polecenia GET, aby śledzić identyfikator JobId podany w odpowiedzi przywracania wyzwalacza powyżej.

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

Powyższy status zadania wskazuje, że zadanie przywracania zostało ukończone i wszystkie bloby zostały odzyskane do określonej chwili w czasie.

Dalsze kroki

Omówienie kopii zapasowej blobów Azure.

Aby uzyskać więcej informacji na temat interfejsów API REST usługi Azure Backup, zobacz następujące dokumenty: