Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł opisuje, jak zarządzać kopiami zapasowymi dla dysków Azure za pomocą interfejsu API REST.
Usługa Azure Disk Backup upraszcza zarządzanie cyklem życia migawek dla dysków zarządzanych, automatyzując okresowe migawki i retencję zgodnie z zasadami kopii zapasowych. Eliminuje koszty infrastruktury, niestandardowe skrypty i obciążenie związane z zarządzaniem, zapewniając spójną kopię zapasową w przypadku awarii punktualnie dzięki migawek przyrostowym — umożliwiając wiele kopii zapasowych dziennie. To rozwiązanie bez agenta zapewnia zerowy wpływ na wydajność produkcji oraz umożliwia tworzenie kopii zapasowych i przywracanie dysków systemu operacyjnego i danych (w tym dysków udostępnionych), niezależnie od tego, czy są one dołączone do maszyny wirtualnej platformy Azure.
Aby uzyskać informacje na temat dostępności usługi kopii zapasowej dysków w regionach platformy Azure, obsługiwanych scenariuszy i ograniczeń, zobacz macierz wsparcia.
Wymagania wstępne
Przed utworzeniem kopii zapasowej dysków zapoznaj się z następującymi wymaganiami wstępnymi:
Skonfiguruj kopię zapasową
Po utworzeniu skarbca i zasad istnieją dwa krytyczne punkty, które użytkownik musi wziąć pod uwagę, aby chronić wszystkie bloby Azure na koncie magazynu.
- Kluczowe podmioty
- Uprawnienia
Kluczowe podmioty
Po założeniu skarbca i zasad, istnieją trzy krytyczne punkty, które należy wziąć pod uwagę, aby chronić dysk Azure.
Dysk do zabezpieczenia: Zapisz identyfikator ARM oraz lokalizację dysku do zabezpieczenia. To będzie pełniło funkcję identyfikatora dysku.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup"Grupa zasobów migawek: Migawki dysku są przechowywane w grupie zasobów w ramach twojej subskrypcji. Jako wytyczne zalecamy utworzenie dedykowanej grupy zasobów jako magazynu danych migawek, który będzie używany przez usługę Azure Backup. Posiadanie dedykowanej grupy zasobów umożliwia ograniczenie uprawnień dostępu do grupy zasobów, co zapewnia bezpieczeństwo i łatwość zarządzania danymi kopii zapasowych. Zanotuj identyfikator ARM dla grupy zasobów, w której chcesz umieścić migawki dysku.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"Sejf kopii zapasowych: Sejf kopii zapasowych wymaga uprawnień na dysku, aby umożliwić tworzenie kopii zapasowych. Systemowo przypisana zarządzana tożsamość skarbca jest wykorzystywana do przypisywania takich uprawnień.
Przyznaj uprawnienia
Musisz przypisać kilka uprawnień za pomocą mechanizmu RBAC do skarbca (reprezentowanego przez MSI skarbca), a także do odpowiedniego dysku i/lub grupy zasobów dysku. Można je wykonać za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia. Aby przypisać powiązane uprawnienia, zobacz wymagania wstępne dotyczące konfigurowania kopii zapasowych zarządzanych dysków.
Przygotuj żądanie do skonfigurowania kopii zapasowej
Po ustawieniu odpowiednich uprawnień dla magazynu i dysku oraz skonfigurowaniu magazynu i polityki, przygotuj wniosek o skonfigurowanie kopii zapasowej. Poniżej znajduje się treść żądania konfigurowania kopii zapasowej dla dysku platformy Azure. Identyfikator Azure Resource Manager (ARM ID) dysku Azure oraz jego szczegóły są wymienione w sekcji datasourceinfo, a informacje o polityce znajdują się w sekcji policyinfo, gdzie grupa zasobów migawek jest podana jako jeden z parametrów polityki.
{
"backupInstance": {
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup",
"resourceLocation": "westUS",
"resourceName": "msdiskbackup",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/DiskBackup-Policy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"
}
]
}
},
"objectType": "BackupInstance"
}
}
Weryfikowanie żądania konfigurowania kopii zapasowej
Aby sprawdzić, czy żądanie skonfigurowania kopii zapasowej będzie udane, użyj API walidacji dla kopii zapasowej. Możesz użyć odpowiedzi, aby spełnić wymagane wymagania wstępne, a następnie przesłać konfigurację żądania kopii zapasowej.
Sprawdź, czy żądanie kopii zapasowej jest operacją POST i czy identyfikator URI zawiera parametry {subscriptionId}, {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, to API przekłada się 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, którą przygotowaliśmy wcześniej, będzie używana do udostępnienia szczegółów dotyczących chronionego dysku Azure.
Przykładowa treść żądania
{
"backupInstance": {
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup",
"resourceLocation": "westUS",
"resourceName": "msdiskbackup",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/DiskBackup-Policy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"
}
]
}
},
"objectType": "BackupInstance"
}
}
Odpowiedzi na potrzeby weryfikacji żądania kopii zapasowej
Walidacja żądania kopii zapasowej jest operacją asynchroniczną. Dlatego ta operacja tworzy kolejną operację, która musi być śledzona oddzielnie.
Zwraca dwie odpowiedzi: 202 (Zaakceptowano), gdy tworzone jest kolejne działanie, oraz 200 (OK), gdy to działanie zostanie zakończone.
| Nazwa | Typ | Opis |
|---|---|---|
| 202 Zaakceptowano | Operacja zostanie zakończona asynchronicznie | |
| 200 OK | OperationJobExtendedInfo | Zaakceptowano |
| Inne kody statusu | CloudError | Odpowiedź z błędem opisująca, dlaczego operacja się nie powiodła |
Przykładowe odpowiedzi na żądanie weryfikacji kopii zapasowej
Błąd odpowiedzi
Jeśli podany dysk jest już chroniony, zwraca odpowiedź HTTP 400 (Błędne żądanie) i stwierdza, że dany dysk jest chroniony w skarbcu kopii zapasowych, wraz ze szczegółami.
HTTP/1.1 400 BadRequest
Content-Length: 1012
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: 0c99ff0f-6c26-4ec7-899f-205435e89894
x-ms-routing-request-id: CENTRALUSEUAP:20210830T142949Z:0be72802-02ad-485d-b91f-4aadd92c059c
Cache-Control: no-cache
Date: Mon, 30 Aug 2021 14:29:49 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 SharedDataDisk 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": "0c99ff0f-6c26-4ec7-899f-205435e89894"
}
}
}
],
"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,
"details": 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ę za pomocą nagłówka Azure-AsyncOperation przy użyciu 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 kod 200 (OK) po zakończeniu, a ciało odpowiedzi zawiera dalsze wymagania do spełnienia, 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-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup/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 przyznasz wszystkie uprawnienia, prześlij ponownie żądanie weryfikacji, prześledzisz wynikową operację i zwróci odpowiedź powodzenia jako 200 (OK), jeśli zostaną spełnione wszystkie warunki.
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"
}
Konfiguruj żądanie tworzenia kopii zapasowej
Po zweryfikowaniu wniosku możesz go następnie przesłać do create backup instance API. Instancja kopii zapasowej reprezentuje element chroniony za pomocą usługi Azure Backup w skarbcu kopii zapasowej. Tutaj dysk Azure jest instancją zapasową i można użyć tego samego ciała żądania, które zostało zweryfikowane wcześniej, z drobnymi dodatkami.
Użyj unikalnej nazwy dla instancji kopii zapasowej. Dlatego zalecamy użycie kombinacji nazwy zasobów i unikalnego identyfikatora. Na przykład, w poniższej operacji użyjemy msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed i oznaczymy go jako nazwę instancji kopii zapasowej.
Użyj następującej operacji PUT, aby utworzyć lub zaktualizować wystąpienie kopii zapasowej.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/{BkpvaultName}/backupInstances/{UniqueBackupInstanceName}?api-version=2021-01-01
Na przykład, to API przekłada się na:
PUT https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed?api-version=2021-01-01
Utwórz żądanie konfiguracji kopii zapasowej
Aby utworzyć kopię zapasową instancji, oto elementy treści żądania:
| Nazwa | Typ | Opis |
|---|---|---|
| właściwości | Klasa BackupInstance | Właściwości klasy BackupInstanceResource |
Przykładowe żądanie konfiguracji kopii zapasowej
Użyjemy tego samego ciała żądania, którego użyliśmy do walidacji żądania tworzenia kopii zapasowej z unikalną nazwą, jak wspomniano powyżej.
{
"name": "msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed",
"type": "Microsoft.DataProtection/backupvaults/backupInstances",
"properties": {
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup",
"resourceLocation": "westUS",
"resourceName": "msdiskbackup",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/DiskBackup-Policy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"
}
]
}
},
"objectType": "BackupInstance"
}
}
Odpowiedzi na konfigurację żądania kopii zapasowej
Żądanie utworzenia instancji kopii zapasowej jest operacją asynchroniczną. Dlatego ta operacja tworzy kolejną operację, która musi być śledzona oddzielnie.
Zwraca dwie odpowiedzi: 201 (Utworzono) w momencie, gdy wystąpienie kopii zapasowej jest tworzone i ochrona jest konfigurowana, a następnie 200 (OK) po zakończeniu tej konfiguracji.
| Nazwa | Typ | Opis |
|---|---|---|
| 201 Utworzono | Instancja kopii zapasowej | Wystąpienie kopii zapasowej jest tworzone i ochrona jest konfigurowana |
| 200 OK | Instancja kopii zapasowej | Ochrona jest skonfigurowana |
| Inne kody statusu | CloudError | Odpowiedź z błędem opisująca, dlaczego operacja się nie powiodła |
Przykładowe odpowiedzi na żądanie konfiguracji kopii zapasowej
Po przesłaniu żądania PUT w celu utworzenia instancji kopii zapasowej, początkowa odpowiedź to 201 (Utworzono) z nagłówkiem Azure-asyncOperation. Zwróć uwagę, że treść żądania zawiera wszystkie właściwości instancji 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/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed",
"name": "msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed",
"type": "Microsoft.DataProtection/backupVaults/backupInstances",
"properties": {
"friendlyName": "msdiskbackup",
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup",
"resourceLocation": "westUS",
"resourceName": "msdiskbackup",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": ""
},
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupPolicies/DiskBackup-Policy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"
}
]
},
"protectionStatus": {
"status": "ConfiguringProtection"
},
"currentProtectionState": "ConfiguringProtection",
"provisioningState": "Provisioning",
"objectType": "BackupInstance"
}
}
Następnie śledź wynikającą operację za pomocą nagłówka Azure-AsyncOperation przy użyciu 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 zwracany jest kod 200 (OK) z wiadomością o sukcesie 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"
}
Zatrzymaj ochronę i usuń dane
Aby usunąć ochronę dysku Azure i również usunąć dane kopii zapasowej, wykonaj operację delete.
Zatrzymanie ochrony i usunięcie danych to operacja DELETE.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}?api-version=2021-01-01
Na przykład, to API przekłada się na:
DELETE "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed?api-version=2021-01-01"
Odpowiedzi dotyczące ochrony przed usunięciem
Ochrona DELETE jest asynchroniczną operacją. Dlatego ta operacja tworzy kolejną 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 usunięcia | |
| 202 Zaakceptowano | Zaakceptowano |
Przykładowe odpowiedzi na ochronę przed usunięciem
Po przesłaniu żądania DELETE, początkową odpowiedzią będzie 202 (Zaakceptowane) 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 dysku zarządzanego przy użyciu witryny Azure Portal, programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST.
Aby uzyskać więcej informacji na temat interfejsów API REST usługi Azure Backup, zobacz następujące artykuły: