Udostępnij za pomocą


Tworzenie kopii zapasowych obiektów blob na koncie magazynu przy użyciu usługi Azure Data Protection za pośrednictwem interfejsu API REST

W tym artykule opisano sposób konfigurowania kopii zapasowych dla obiektów blob na koncie magazynu za pośrednictwem interfejsu API REST. Tworzenie kopii zapasowych obiektów blob jest konfigurowane na poziomie konta magazynu.

Usługa Azure Backup umożliwia łatwe konfigurowanie kopii zapasowych w celu ochrony blokowych obiektów blob na kontach magazynu. Kopie zapasowe operacyjne i magazynowane można wykonywać w celu ochrony blokowych obiektów blob na kontach magazynu przy użyciu usługi Azure Backup.

Dowiedz się więcej o dostępności regionu obiektów blob platformy Azure, obsługiwanych scenariuszach i ograniczeniach.

Wymagania wstępne

Przed utworzeniem kopii zapasowej obiektów blob na koncie magazynu przy użyciu interfejsu API REST upewnij się, że:

Konfigurowanie kopii zapasowych

Po utworzeniu magazynu i zasad należy rozważyć dwa krytyczne punkty, aby chronić wszystkie obiekty blob platformy Azure na koncie magazynu.

  • Kluczowe encje
  • Uprawnienia

Kluczowe encje

W przypadku konfiguracji kopii zapasowej zapoznaj się z następującymi kluczowymi jednostkami:

  • Konto magazynu zawierające obiekty blob do ochrony: pobierz identyfikator usługi Azure Resource Manager konta magazynu zawierającego obiekty blob do ochrony. Służy on jako identyfikator konta magazynu.

    Na przykład użyjemy konta magazynu o nazwie msblobbackup w grupie zasobów RG-BlobBackup w innej subskrypcji i w regionie Zachodnie stany USA.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup"
    
  • Magazyn kopii zapasowych: Magazyn kopii zapasowych wymaga uprawnień na koncie magazynu, aby umożliwić tworzenie kopii zapasowych obiektów blob znajdujących się na koncie magazynu. Tożsamość zarządzana przypisana przez system magazynu służy do przypisywania uprawnień.

    Na przykład użyjemy magazynu kopii zapasowej o nazwie testBkpVault w regionie Zachodnie stany USA w obszarze TestBkpVaultRG grupy zasobów.

Przypisywanie uprawnień użytkowników

Przypisz kilka uprawnień za pośrednictwem kontroli dostępu opartej na rolach (RBAC) platformy Azure do utworzonego magazynu (reprezentowanego przez tożsamość usługi zarządzanej magazynu) i odpowiedniego konta magazynu. Uprawnienia można przypisać za pośrednictwem witryny Azure Portal, programu PowerShell lub interfejsu API REST. Dowiedz się więcej o wszystkich powiązanych uprawnieniach.

Przygotowywanie żądania do skonfigurowania kopii zapasowej obiektów blob

Po ustawieniu odpowiednich uprawnień do magazynu i konta magazynu, a konfiguracja magazynu i zasad zostanie wykonana, przygotuj żądanie skonfigurowania kopii zapasowej.

Poniżej znajduje się treść żądania, aby skonfigurować kopię zapasową dla wszystkich obiektów blob na koncie magazynu. Identyfikator usługi Azure Resource Manager (IDENTYFIKATOR ARM) konta magazynu i jego szczegóły są wymienione w datasourceinfo sekcji, a informacje o zasadach znajdują się w policyinfo sekcji .

{
  "backupInstance": {
    "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": ""
    },
    "policyInfo": {
      "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
    },
    "objectType": "BackupInstance"
  }
}

Aby skonfigurować kopię zapasową z włączoną obsługą kopii zapasowej magazynu, zapoznaj się z poniższą treścią żądania.

{backupInstanceDataSourceType is Microsoft.Storage/storageAccounts/blobServices
backupInstanceResourceType is Microsoft.Storage/storageAccounts
{
    "id": null,
    "name": "{{backupInstanceName}}",
    "type": "Microsoft.DataProtection/backupvaults/backupInstances",
    "properties": {
        "objectType": "BackupInstance",
        "dataSourceInfo": {
            "objectType": "Datasource",
            "resourceID": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceresourcegroup}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
            "resourceName": "{{backupInstanceName}}",
            "resourceType": "{{backupInstanceResourceType}}",
            "resourceUri": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
            "resourceLocation": "{{location}}",
            "datasourceType": "{{backupInstanceDataSourceType}}"
        },
        "policyInfo": {
            "policyId": "/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/{{backupVaultRP}}/{{vaultName}}/backupPolicies/{{policyName}}",
            "name": "{{policyName}}",
            "policyVersion": "3.2",
            "policyParameters": {
                "dataStoreParametersList": [
                ],
                "backupDatasourceParametersList" : [
                    {
                        "objectType": "BlobBackupDatasourceParameters",
                        "containersList": ["container1", "container2", "container3", "container4", "container5"]
                    }
                ]
            }
        }
    }
}

Weryfikowanie żądania konfigurowania kopii zapasowej

Aby sprawdzić, czy żądanie skonfigurowania kopii zapasowej powiedzie się, użyj weryfikacji dla interfejsu API kopii zapasowej. Możesz użyć odpowiedzi, aby wykonać wszystkie wymagane wymagania wstępne, a następnie przesłać konfigurację żądania kopii zapasowej.

Sprawdź, czy żądanie kopii zapasowej jest operacją *POST, a identyfikator URI ma {subscriptionId}parametry , . {vaultName}{vaultresourceGroupName}

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.DataProtection/backupVaults/{backupVaultName}/validateForBackup?api-version=2021-01-01

Na przykład przekłada się to na:

POST https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/validateForBackup?api-version=2021-01-01

Treść żądania przygotowana wcześniej jest używana do podania szczegółów konta magazynu, które ma być chronione.

Przykładowa treść żądania

{
  "backupInstance": {
    "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": ""
    },
    "policyInfo": {
      "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
    },
    "objectType": "BackupInstance"
  }
}

Przykładowa treść żądania dla kopii zapasowej magazynu

{
    "objectType": "ValidateForBackupRequest",
    "backupInstance": {
        "objectType": "BackupInstance",
        "dataSourceInfo": {
            "objectType": "Datasource",
            "resourceID": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
            "resourceName": "{{backupInstanceName}}",
            "resourceType": "{{backupInstanceResourceType}}",
            "resourceUri": "/subscriptions/{{backupInstanceSubscriptionId}}/resourceGroups/{{backupInstanceRG}}/providers/{{backupInstanceResourceType}}/{{backupInstanceName}}",
            "resourceLocation": "{{location}}",
            "datasourceType": "{{backupInstanceDataSourceType}}"
        },
        "policyInfo": {
            "policyId": "/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/{{backupVaultRP}}/{{vaultName}}/backupPolicies/{{policyName}}",
            "name": "{{policyName}}",
            "policyVersion": "3.2",
            "policyParameters": {
                "dataStoreParametersList": [
                ] ,
                "backupDatasourceParametersList" : [
                    {
                        "objectType": "BlobBackupDatasourceParameters",
                        "containersList": ["container1", "container2", "container3", "container4", "container5"]
                    }
                ]
            }
        }
    }
}

Odpowiedzi na żądanie weryfikacji kopii zapasowej

Sprawdź, czy żądanie kopii zapasowej jest operacją asynchroniczną. Ta operacja tworzy kolejną operację, która musi być śledzona oddzielnie.

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

Nazwisko Pisz Opis
Zaakceptowano 202 Operacja zostanie ukończona asynchronicznie
200 OK OperationJobExtendedInfo Zaakceptowano
Inne kody stanu CloudError Odpowiedź na błąd opisująca, dlaczego operacja nie powiodła się
Przykładowe odpowiedzi na żądanie weryfikacji kopii zapasowej
Odpowiedź błędna

Jeśli dane konto magazynu jest już chronione, odpowiedź to HTTP 400 (nieprawidłowe żądanie) i wyraźnie stwierdza, że dane konto magazynu jest chronione w magazynie kopii zapasowych wraz ze szczegółami.

HTTP/1.1 400 BadRequest
Content-Length: 999
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: f36eb67a-8932-42a8-8aba-c5ee2443aa2e
x-ms-routing-request-id: WESTUS:20210707T124745Z:bcd23af5-fa17-4cd0-9929-a55f141e33ce
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 12:47:45 GMT
X-Powered-By: ASP.NET

{
  "error": {
    "additionalInfo": [
      {
        "type": "UserFacingError",
        "info": {
          "message": "Datasource is already protected under the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
          "recommendedAction": [
            "Delete the backup instance msblobbackuptemp from the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault to re-protect the datasource in any other vault."
          ],
          "details": null,
          "code": "UserErrorDppDatasourceAlreadyProtected",
          "target": "",
          "innerError": null,
          "isRetryable": false,
          "isUserError": false,
          "properties": {
            "ActivityId": "f36eb67a-8932-42a8-8aba-c5ee2443aa2e"
          }
        }
      }
    ],
    "code": "UserErrorDppDatasourceAlreadyProtected",
    "message": "Datasource is already protected under the Backup vault /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault.",
    "target": null
  }
}
Śledzenie odpowiedzi

Jeśli źródło danych nie jest chronione, interfejs API kontynuuje dalsze walidacje i tworzy operację śledzenia.

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/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?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: 3e7cacb3-65cd-4b3c-8145-71fe90d57327
x-ms-routing-request-id: CENTRALUSEUAP:20210707T124850Z:105f2105-6db1-44bf-8a34-45972a8ba861
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 12:48:50 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01
X-Powered-By: ASP.NET

Śledź wynikową operację przy użyciu nagłówka Azure-AsyncOperation za pomocą prostego polecenia GET .

GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
  "name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
  "status": "Inprogress",
  "startTime": "2021-07-07T12:48:50.3432229Z",
  "endTime": "0001-01-01T00:00:00"
}

Zwraca wartość 200 (OK) po zakończeniu walidacji, a treść odpowiedzi zawiera dodatkowe wymagania, które należy spełnić, takie jak uprawnienia.

GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==?api-version=2021-01-01

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
  "name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzM2NDdhZDNjLTFiNGEtNDU4YS05MGJkLTQ4NThiYjRhMWFkYg==",
  "status": "Failed",
  "error": {
    "additionalInfo": [
      {
        "type": "UserFacingError",
        "info": {
          "message": "Appropriate permissions to perform the operation is missing.",
          "recommendedAction": [
            "Grant appropriate permissions to perform this operation as mentioned at https://aka.ms/UserErrorMissingRequiredPermissions and retry the operation."
          ],
          "code": "UserErrorMissingRequiredPermissions",
          "target": "",
          "innerError": {
            "code": "UserErrorMissingRequiredPermissions",
            "additionalInfo": {
              "DetailedNonLocalisedMessage": "Validate for Protection failed. Exception Message: The client '00001111-aaaa-2222-bbbb-3333cccc4444' with object id 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup/providers/Microsoft.Authorization' or the scope is invalid. If access was recently granted, please refresh your credentials."
            }
          },
          "isRetryable": false,
          "isUserError": false,
          "properties": {
            "ActivityId": "3e7cacb3-65cd-4b3c-8145-71fe90d57327"
          }
        }
      }
    ],
    "code": "UserErrorMissingRequiredPermissions",
    "message": "Appropriate permissions to perform the operation is missing."
  },
  "startTime": "2021-07-07T12:48:50.3432229Z",
  "endTime": "2021-07-07T12:49:22Z"
}

Jeśli udzielono wszystkich uprawnień, prześlij ponownie zadanie żądania weryfikacji i prześledzić wynikową operację. Zwraca wartość 200 (OK), jeśli wszystkie warunki zostaną spełnione.

GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==?api-version=2021-01-01

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
  "name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzlhMjk2YWM2LWRjNDMtNGRjZS1iZTU2LTRkZDNiMDhjZDlkOA==",
  "status": "Succeeded",
  "startTime": "2021-07-07T13:03:54.8627251Z",
  "endTime": "2021-07-07T13:04:06Z"
}

Konfigurowanie żądania kopii zapasowej

Po zakończeniu weryfikacji żądania możesz przesłać je do interfejsu API tworzenia wystąpienia kopii zapasowej. Wystąpienie kopii zapasowej reprezentuje element chroniony za pomocą usługi ochrony danych usługi Azure Backup w magazynie kopii zapasowych. W takim przypadku konto magazynu jest wystąpieniem kopii zapasowej i można użyć tej samej treści żądania, która została zweryfikowana powyżej, z drobnymi dodatkami.

Użyj unikatowej nazwy wystąpienia kopii zapasowej. Dlatego zalecamy użycie kombinacji nazwy zasobu i unikatowego identyfikatora. W tym przykładzie użyj polecenia msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d tutaj i oznacz go jako nazwę wystąpienia kopii zapasowej.

Aby utworzyć lub zaktualizować wystąpienie kopii zapasowej, użyj następującej operacji PUT .

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/{BkpvaultName}/backupInstances/{UniqueBackupInstanceName}?api-version=2021-01-01

Na przykład przekłada się to na

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

Tworzenie żądania konfigurowania kopii zapasowej

Aby utworzyć wystąpienie kopii zapasowej, poniżej przedstawiono składniki treści żądania

Nazwisko Pisz Opis
właściwości Klasa BackupInstance Właściwości klasy BackupInstanceResource
Przykładowe żądanie konfigurowania kopii zapasowej

Użyj tej samej treści żądania, która została użyta do zweryfikowania żądania kopii zapasowej o unikatowej nazwie, jak wspomniano powyżej.

{
  "name": "msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
  "type": "Microsoft.DataProtection/backupvaults/backupInstances",
  "properties": {
    "objectType": "BackupInstance",
    "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": ""
    },
    "policyInfo": {
      "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
    }
  }
}

Odpowiedzi na żądanie kopii zapasowej

Żądanie tworzenia wystąpienia kopii zapasowej jest operacją asynchroniczną. Ta operacja tworzy kolejną operację, która musi być śledzona oddzielnie.

Zwraca dwie odpowiedzi: 201 (utworzono) podczas tworzenia wystąpienia kopii zapasowej, a ochrona jest konfigurowana; 200 (OK) po zakończeniu tej konfiguracji.

Nazwisko Pisz Opis
Utworzono 201 Wystąpienie kopii zapasowej Wystąpienie kopii zapasowej jest tworzone i konfigurowana ochrona
200 OK Wystąpienie kopii zapasowej Skonfigurowano ochronę
Inne kody stanu CloudError Odpowiedź na błąd opisująca, dlaczego operacja nie powiodła się
Przykładowe odpowiedzi na żądanie kopii zapasowej

Po przesłaniu żądania PUT w celu utworzenia wystąpienia kopii zapasowej początkowa odpowiedź to 201 (Utworzono) z nagłówkiem Azure-asyncOperation.

Uwaga

Treść żądania zawiera wszystkie właściwości wystąpienia kopii zapasowej.

HTTP/1.1 201 Created
Content-Length: 1149
Content-Type: application/json
Expires: -1
Pragma: no-cache
Retry-After: 15
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?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: 5d9ccf1b-7ac1-456d-8ae3-36c93c0d2427
x-ms-routing-request-id: CENTRALUSEUAP:20210707T170219Z:9e897266-5d86-4d13-b298-6561c60cf043
Cache-Control: no-cache
Date: Wed, 07 Jul 2021 17:02:18 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
  "name": "msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d",
  "type": "Microsoft.DataProtection/backupVaults/backupInstances",
  "properties": {
    "friendlyName": "msblobbackup",
    "dataSourceInfo": {
      "resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup",
      "resourceUri": "",
      "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
      "resourceName": "msblobbackup",
      "resourceType": "Microsoft.Storage/storageAccounts",
      "resourceLocation": "westus",
      "objectType": "Datasource"
    },
    "policyInfo": {
      "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/BlobBackup-Policy"
    },
    "protectionStatus": {
      "status": "ConfiguringProtection"
    },
    "currentProtectionState": "ConfiguringProtection",
    "provisioningState": "Provisioning",
    "objectType": "BackupInstance"
  }
}

Następnie śledź wynikową operację przy użyciu nagłówka Azure-AsyncOperation za pomocą prostego polecenia GET .

GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01

Po zakończeniu operacji zwraca ona wartość 200 (OK) z komunikatem o powodzeniu w treści odpowiedzi.

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
  "name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==",
  "status": "Succeeded",
  "startTime": "2021-07-07T17:02:19.0611871Z",
  "endTime": "2021-07-07T17:02:20Z"
}

Ważne

Po skonfigurowaniu konta magazynu na potrzeby tworzenia kopii zapasowych obiektów blob ma to wpływ na kilka funkcji, takich jak zestawienie zmian i blokada usuwania. Dowiedz się więcej.

Zatrzymywanie ochrony i usuwanie danych

Aby usunąć ochronę na koncie magazynu i usunąć również dane kopii zapasowej, postępuj zgodnie z procesem operacji usuwania.

Zatrzymywanie ochrony i usuwanie danych jest operacją DELETE .

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

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

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

Odpowiedzi na ochronę przed usunięciem

Ochrona DELETE jest operacją asynchroniczną. Ta operacja tworzy kolejną operację, która musi być śledzona oddzielnie.

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

Nazwisko Pisz Opis
200 OK Stan żądania usunięcia
Zaakceptowano 202 Zaakceptowano
Przykładowe odpowiedzi na potrzeby ochrony przed usunięciem

Po przesłaniu żądania DELETE 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/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?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-deletes: 14999
x-ms-correlation-request-id: fee7a361-b1b3-496d-b398-60fed030d5a7
x-ms-routing-request-id: CENTRALUSEUAP:20210708T071330Z:5c3a9f3e-53aa-4d5d-bf9a-20de5601b090
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 07:13:29 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?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 odpowiedzią na stan powodzenia.

GET "https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==?api-version=2021-01-01"

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
  "name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzE1ZjM4YjQ5LWZhMGQtNDMxOC1iYjQ5LTExMDJjNjUzNjM5Zg==",
  "status": "Succeeded",
  "startTime": "2021-07-08T07:13:30.23815Z",
  "endTime": "2021-07-08T07:13:46Z"
}

Następne kroki

Przywracanie danych z kopii zapasowej obiektów blob platformy Azure.

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

Przywracanie obiektów blob platformy Azure za pomocą usługi Azure Backup przy użyciu witryny Azure Portal, programu Azure PowerShell i interfejsu wiersza polecenia platformy Azure.