Säkerhetskopiera blobar i ett lagringskonto med hjälp av Azure Data Protection via REST API

I den här artikeln beskrivs hur du konfigurerar säkerhetskopior för blobar i ett lagringskonto via REST API. Säkerhetskopiering av blobar konfigureras på lagringskontonivå.

Med Azure Backup kan du enkelt konfigurera säkerhetskopiering för att skydda blockblobar i dina lagringskonton. Du kan göra drifts- och valvsäkerhetskopior för att skydda blockblobar i dina lagringskonton med hjälp av Azure Backup.

Lär dig mer om tillgänglighet för Azure Blob-regionen, scenarier som stöds och begränsningar.

Förutsättningar

Innan du säkerhetskopierar blobar i ett lagringskonto med hjälp av REST API kontrollerar du att du:

Konfigurera säkerhetskopiering

När du har skapat valvet och principen måste du överväga två viktiga punkter för att skydda alla Azure Blobs i ett lagringskonto.

  • Nyckelentiteter
  • Behörigheter

Nyckelentiteter

Granska följande viktiga entiteter för säkerhetskopieringskonfigurationen:

  • Lagringskonto som innehåller de blobar som ska skyddas: Hämta Azure Resource Manager-ID:t för lagringskontot som innehåller de blobar som ska skyddas. Detta fungerar som identifierare för lagringskontot.

    Vi använder till exempel ett lagringskonto med namnet msblobbackup, under resursgruppen RG-BlobBackup, i en annan prenumeration och i USA, västra.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/RG-BlobBackup/providers/Microsoft.Storage/storageAccounts/msblobbackup"
    
  • Säkerhetskopieringsvalv: Säkerhetskopieringsvalvet kräver behörigheter för lagringskontot för att aktivera säkerhetskopior på blobar som finns i lagringskontot. Den systemtilldelade hanterade identiteten för valvet används för att tilldela behörigheterna.

    Vi använder till exempel ett säkerhetskopieringsvalv med namnet testBkpVault i regionen USA, västra under Resursgruppen TestBkpVaultRG.

Tilldela behörigheter

Tilldela några behörigheter via rollbaserad åtkomstkontroll i Azure (Azure RBAC) till det skapade valvet (representerat av valvhanterad tjänstidentitet) och det relevanta lagringskontot. Du kan tilldela behörigheterna via Azure Portal, PowerShell eller REST API. Läs mer om alla relaterade behörigheter.

Förbereda begäran om att konfigurera blobsäkerhetskopiering

När relevanta behörigheter till valvet och lagringskontot har angetts och valvet och principkonfigurationen har slutförts förbereder du begäran om att konfigurera säkerhetskopiering.

Följande är begärandetexten för att konfigurera säkerhetskopiering för alla blobar i ett lagringskonto. Azure Resource Manager-ID (ARM-ID) för lagringskontot och dess information nämns i datasourceinfo avsnittet och principinformationen policyinfo finns i avsnittet.

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

Information om hur du konfigurerar säkerhetskopiering med valvsäkerhetskopiering aktiverad finns i begärandetexten nedan.

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

Verifiera begäran om att konfigurera säkerhetskopiering

Om du vill kontrollera om begäran om att konfigurera säkerhetskopieringen lyckas använder du verifieringen för API:et för säkerhetskopiering. Du kan använda svaret för att utföra alla nödvändiga krav och sedan skicka konfigurationen för säkerhetskopieringsbegäran.

Verifiera för säkerhetskopieringsbegäran är en *POST-åtgärd och URI:n har {subscriptionId}parametrarna , {vaultName}, {vaultresourceGroupName} .

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

Detta översätts till exempel till:

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

Begärandetexten som du förberedde tidigare används för att ge information om lagringskontot som ska skyddas.

Exempel på begärandetext

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

Exempel på begärandetext för valvsäkerhetskopiering

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

Svar för att verifiera säkerhetskopieringsbegäran

Verifiera för säkerhetskopieringsbegäran är en asynkron åtgärd. Den här åtgärden skapar en annan åtgärd som måste spåras separat.

Den returnerar två svar: 202 (accepterad) när en annan åtgärd skapas. 200 (OK) när åtgärden är klar.

Namn Typ Beskrivning
202 Accepterad Åtgärden slutförs asynkront
200 Okej OperationJobExtendedInfo Har godkänts
Andra statuskoder CloudError Felsvar som beskriver varför åtgärden misslyckades
Exempel på svar för att verifiera säkerhetskopieringsbegäran
Felsvar

Om det angivna lagringskontot redan är skyddat är svaret HTTP 400 (felaktig begäran) och anger tydligt att det angivna lagringskontot är skyddat i ett säkerhetskopieringsvalv tillsammans med information.

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
  }
}
Spåra svar

Om datakällan är oskyddad fortsätter API:et för ytterligare valideringar och skapar en spårningsåtgärd.

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

Spåra den resulterande åtgärden med azure-AsyncOperation-huvudet med ett enkelt GET-kommando.

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

Den returnerar 200 (OK) när valideringen har slutförts och svarstexten visar ytterligare krav som ska uppfyllas, till exempel behörigheter.

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

Om alla behörigheter beviljas skickar du verifieringsbegäran på nytt och spårar den resulterande åtgärden. Den returnerar 200 (OK) som lyckades, om alla villkor är uppfyllda.

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

Konfigurera säkerhetskopieringsbegäran

När verifieringen av begäran har slutförts kan du skicka samma sak till API:et för att skapa säkerhetskopieringsinstansen. En säkerhetskopieringsinstans representerar ett objekt som skyddas med dataskyddstjänsten för Azure Backup i säkerhetskopieringsvalvet. I det här fallet är lagringskontot säkerhetskopieringsinstansen och du kan använda samma begärandetext, som verifierades ovan, med mindre tillägg.

Använd ett unikt namn för säkerhetskopieringsinstansen. Därför rekommenderar vi att du använder en kombination av resursnamnet och en unik identifierare. I det här exemplet använder du msblobbackup-f2df34eb-5628-4570-87b2-0331d797c67d här och markerar det som namnet på säkerhetskopieringsinstansen.

Om du vill skapa eller uppdatera säkerhetskopieringsinstansen använder du följande PUT-åtgärd .

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

Detta översätts till exempel till

 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

Skapa begäran om att konfigurera säkerhetskopiering

Om du vill skapa en säkerhetskopieringsinstans följer du komponenterna i begärandetexten

Namn Typ Beskrivning
egenskaper BackupInstance Egenskaper för BackupInstanceResource
Exempelbegäran för att konfigurera säkerhetskopiering

Använd samma begärandetext som du använde för att verifiera säkerhetskopieringsbegäran med ett unikt namn som vi nämnde ovan.

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

Svar för att konfigurera säkerhetskopieringsbegäran

Begäran om att skapa en säkerhetskopieringsinstans är en asynkron åtgärd. Den här åtgärden skapar en annan åtgärd som måste spåras separat.

Den returnerar två svar: 201 (Skapas) när säkerhetskopieringsinstansen skapas och skyddet konfigureras. 200 (OK) när konfigurationen är klar.

Namn Typ Beskrivning
201 Skapad Säkerhetskopieringsinstans Säkerhetskopieringsinstansen skapas och skyddet konfigureras
200 Okej Säkerhetskopieringsinstans Skydd har konfigurerats
Andra statuskoder CloudError Felsvar som beskriver varför åtgärden misslyckades
Exempel på svar för att konfigurera säkerhetskopieringsbegäran

När du skickar PUT-begäran för att skapa en säkerhetskopieringsinstans är det första svaret 201 (skapat) med ett Azure-asyncOperation-huvud.

Kommentar

Begärandetexten innehåller alla egenskaper för säkerhetskopieringsinstansen.

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

Spåra sedan den resulterande åtgärden med huvudet Azure-AsyncOperation med ett enkelt GET-kommando .

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

När åtgärden är klar returneras 200 (OK) med meddelandet om att åtgärden lyckades i svarstexten.

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

Viktigt!

När ett lagringskonto har konfigurerats för säkerhetskopiering av blobar påverkas några funktioner, till exempel ändringsflöde och borttagningslås. Läs mer.

Stoppa skydd och ta bort data

Om du vill ta bort skyddet på ett lagringskonto och även ta bort säkerhetskopierade data följer du borttagningsprocessen.

Att stoppa skyddet och ta bort data är en DELETE-åtgärd .

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

I vårt exempel översätts detta till:

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"

Svar för borttagningsskydd

DELETE-skydd är en asynkron åtgärd. Den här åtgärden skapar en annan åtgärd som måste spåras separat.

Den returnerar två svar: 202 (accepterad) när en annan åtgärd skapas. 200 (OK) när åtgärden är klar.

Namn Typ Beskrivning
200 Okej Status för borttagningsbegäran
202 Accepterad Har godkänts
Exempelsvar för borttagningsskydd

När du har skickat DELETE-begäran godkänns det första svaret 202 tillsammans med en Azure-asyncOperation-rubrik.

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

Spåra Azure-AsyncOperation-huvudet med en enkel GET-begäran . När begäran lyckas returnerar den 200 OK med ett statussvar.

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

Nästa steg

Återställa data från en Azure Blob-säkerhetskopiering.

Mer information om REST-API:er för Azure Backup finns i följande dokument:

Återställ Azure Blobs med Azure Backup i Azure-portalen, Azure PowerShell och Azure CLI.