Mencadangkan Azure Disks menggunakan Azure Data Protection melalui REST API
Artikel ini menjelaskan cara mengelola cadangan untuk Azure Disks melalui REST API.
Azure Disk Backup menawarkan solusi turnkey yang menyediakan manajemen siklus hidup rekam jepret untuk disk terkelola dengan mengotomatiskan pembuatan rekam jepret secara berkala dan mempertahankannya untuk durasi yang dikonfigurasi menggunakan kebijakan pencadangan. Anda dapat mengelola rekam jepret disk dengan biaya infrastruktur nol dan tanpa memerlukan pembuatan skrip kustom atau overhead manajemen apa pun. Ini adalah solusi pencadangan yang konsisten dengan crash yang mengambil cadangan titik waktu tertentu dari disk terkelola menggunakantahapan rekam jepret dengan dukungan untuk beberapa cadangan per hari. Ini juga merupakan solusi tanpa agen dan tidak berdampak pada performa aplikasi produksi. Ini mendukung pencadangan dan pemulihan OS dan disk data (termasuk disk bersama), apakah mereka saat ini terpasang ke komputer virtual Azure yang sedang berjalan.
Untuk informasi tentang ketersediaan wilayah cadangan Azure Disk, skenario dan batasan yang didukung, lihat matriks dukungan.
Prasyarat
Konfigurasikan cadangan
Entitas utama yang terlibat
Setelah brankas dan kebijakan dibuat, ada tiga poin penting yang perlu Anda pertimbangkan untuk melindungi Azure Disk.
Disk yang akan dilindungi
Catat ID ARM dan lokasi disk yang akan dilindungi. Ini akan berfungsi sebagai pengidentifikasi disk.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/RG-DiskBackup/providers/Microsoft.Compute/disks/msdiskbackup"
Grup sumber daya rekam jepret
Rekam jepret disk disimpan dalam grup sumber daya dalam langganan Anda. Sebagai pedoman, sebaiknya buat grup sumber daya khusus sebagai penyimpanan data rekam jepret untuk digunakan oleh layanan Azure Backup. Memiliki grup sumber daya khusus memungkinkan pembatasan izin akses pada grup sumber daya, menyediakan keamanan dan kemudahan pengelolaan data cadangan. Catat ID ARM untuk grup sumber daya tempat Anda ingin menempatkan rekam jepret disk.
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/snapshot-rg"
Brankas cadangan
Brankas Cadangan memerlukan izin pada disk untuk mengaktifkan pencadangan. Identitas terkelola yang ditetapkan sistem dari brankas digunakan untuk menetapkan izin tersebut.
Tetapkan izin
Anda perlu menetapkan beberapa izin melalui RBAC ke brankas (diwakili oleh MSI brankas) dan disk yang relevan dan/atau disk RG. Ini dapat dilakukan melalui portal Azure atau CLI. Untuk menetapkan izin terkait, lihat prasyarat untuk mengonfigurasi cadangan disk terkelola.
Siapkan permintaan untuk mengonfigurasi pencadangan
Setelah izin yang relevan diatur ke brankas dan disk, lalu brankas dan kebijakan dikonfigurasi, kita dapat menyiapkan permintaan untuk mengonfigurasi cadangan. Berikut adalah isi permintaan untuk mengonfigurasi cadangan bagi Azure Disk. ID Azure Resource Manager (ARM ID) dari Azure Disk dan detailnya disebutkan di datasourceinfo
bagian dan informasi kebijakan ada di bagian tempat policyinfo
grup sumber daya rekam jepret disediakan sebagai salah satu parameter kebijakan.
{
"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"
}
}
Validasi permintaan untuk mengonfigurasi pencadangan
Untuk memvalidasi apakah permintaan konfigurasi cadangan akan berhasil atau tidak, gunakan API validasi untuk cadangan. Anda dapat menggunakan respons untuk melakukan prasyarat yang diperlukan, lalu mengirimkan konfigurasi untuk permintaan cadangan.
Validasi untuk permintaan cadangan adalah operasi POST dan URI memiliki parameter {subscriptionId}
, {vaultName}
, {vaultresourceGroupName}
.
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.DataProtection/backupVaults/{backupVaultName}/validateForBackup?api-version=2021-01-01
Misalnya, API ini diubah menjadi:
POST https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/validateForBackup?api-version=2021-01-01
Isi permintaan yang kita siapkan sebelumnya akan digunakan untuk memberikan rincian Azure Disk yang akan dilindungi.
Contoh isi permintaan
{
"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"
}
}
Respons untuk memvalidasi permintaan cadangan
Validasi permintaan cadangan adalah operasi asinkron. Jadi, operasi ini akan menciptakan operasi lain yang perlu dilacak secara terpisah.
Fungsi ini menghasilkan dua respons: 202 (Diterima) ketika fungsi lain dibuat dan 200 (OK) ketika fungsi tersebut selesai.
Nama | Jenis | Deskripsi |
---|---|---|
202 Diterima | Operasi akan selesai secara asinkron | |
200 OK | OperationJobExtendedInfo | Diterima |
Kode Status lainnya | CloudError | Respons kesalahan yang menjelaskan mengapa operasi gagal |
Contoh respons untuk memvalidasi permintaan cadangan
Respons kesalahan
Jika disk yang diberikan sudah dilindungi, respons yang dikembalikan adalah HTTP 400 (Permintaan buruk) dan menyatakan bahwa disk yang diberikan dilindungi ke brankas cadangan bersama dengan rincian.
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
}
}
Melacak respons
Jika datasource tidak terlindungi, maka API dilanjutkan untuk validasi lebih lanjut dan membuat operasi pelacakan.
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
Melacak operasi yang dihasilkan menggunakan header Azure-AsyncOperation dengan perintah GET sederhana.
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"
}
Perintah ini mengembalikan 200 (OK) setelah selesai dan isi respons mencantumkan persyaratan lebih lanjut yang harus dipenuhi, seperti izin.
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 'a8b24f84-f43c-45b3-aa54-e3f6d54d31a6' with object id 'a8b24f84-f43c-45b3-aa54-e3f6d54d31a6' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/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"
}
Jika semua izin diberikan, kirimkan kembali permintaan validasi, lacak operasi yang dihasilkan, dan respons berhasil 200 (OK) akan dikembalikan jika semua syarat terpenuhi.
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"
}
Mengonfigurasi permintaan pencadangan
Setelah permintaan divalidasi, maka Anda dapat mengirimkan hal yang sama ke API buat instans cadangan. Instans Cadangan mewakili item yang dilindungi dengan layanan perlindungan data Azure Backup dalam brankas cadangan. Dalam hal ini, Azure Disk adalah instans cadangan dan Anda dapat menggunakan isi permintaan yang sama, yang tervalidasi di atas, dengan penambahan kecil.
Gunakan nama unik untuk instans cadangan. Sebaiknya Anda menggunakan kombinasi nama sumber daya dan pengidentifikasi unik. Misalnya, dalam operasi berikut, kita akan menggunakan msdiskbackup-2dc6eb5b-d008-4d68-9e49-7132d99da0ed dan menandainya sebagai nama instans cadangan.
Untuk membuat atau memperbarui instans cadangan, gunakan operasi PUT berikut.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/{BkpvaultName}/backupInstances/{UniqueBackupInstanceName}?api-version=2021-01-01
Misalnya, API ini diubah menjadi:
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
Buat permintaan untuk mengonfigurasi pencadangan
Untuk membuat instans cadangan, berikut adalah komponen isi permintaannya:
Nama | Jenis | Deskripsi |
---|---|---|
properti | BackupInstance | Properti BackupInstanceResource |
Contoh permintaan untuk mengonfigurasi pencadangan
Kita akan menggunakan isi permintaan yang sama yang digunakan untuk memvalidasi permintaan cadangan dengan nama unik seperti yang disebutkan di atas.
{
"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"
}
}
Respons untuk mengonfigurasi permintaan cadangan
Permintaan buat instans cadangan adalah operasi asinkron. Jadi, operasi ini akan menciptakan operasi lain yang perlu dilacak secara terpisah.
Operasi ini mengembalikan dua respons: 201 (Dibuat) ketika instans cadangan dibuat dan perlindungan sedang dikonfigurasi, dan kemudian 200 (OK) ketika konfigurasi selesai.
Nama | Jenis | Deskripsi |
---|---|---|
201 Dibuat | Instans cadangan | Instans cadangan dibuat dan perlindungan sedang dikonfigurasi |
200 OK | Instans cadangan | Perlindungan dikonfigurasi |
Kode Status lainnya | CloudError | Respons kesalahan yang menjelaskan mengapa operasi gagal |
Contoh respons untuk mengonfigurasi permintaan cadangan
Setelah Anda mengirimkan permintaan PUT untuk membuat instans cadangan, respons awal adalah 201 (Dibuat) dengan header Azure-asyncOperation. Harap diingat bahwa isi permintaan berisi semua properti instans cadangan.
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"
}
}
Lalu, lacak operasi yang dihasilkan menggunakan header Azure-AsyncOperation dengan perintah GET sederhana.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzI1NWUwNmFlLTI5MjUtNDBkNy1iMjMxLTM0ZWZlMDA3NjdkYQ==?api-version=2021-01-01
Setelah operasi selesai, operasi menghasilkan 200 (OK) dengan pesan berhasil dalam isi respons.
{
"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"
}
Menghentikan perlindungan dengan menghapus data
Untuk menghapus perlindungan pada Azure Disk dan menghapus data cadangannya, lakukan operasi penghapusan.
Menghentikan perlindungan dan menghapus data adalah operasi DELETE.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}?api-version=2021-01-01
Misalnya, API ini diubah menjadi:
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"
Respons untuk perlindungan penghapusan
Perlindungan DELETE adalah operasi asinkron. Jadi, operasi ini akan menciptakan operasi lain yang perlu dilacak secara terpisah.
Fungsi ini menghasilkan dua respons: 202 (Diterima) ketika fungsi lain dibuat, dan 200 (OK) ketika fungsi selesai.
Nama | Jenis | Deskripsi |
---|---|---|
200 OK | Status permintaan hapus | |
202 Diterima | Diterima |
Contoh respons untuk perlindungan penghapusan
Setelah permintaan DELETE terkirim, respons awalnya adalah 202 (Diterima) dengan header 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
Lacak header Azure-AsyncOperation dengan permintaan GET sederhana. Ketika permintaan berhasil, permintaan akan mengembalikan 200 OK dengan respons status sukses.
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"
}
Langkah berikutnya
Memulihkan data dari cadangan Azure Disk
Untuk informasi selengkapnya tentang REST API Azure Backup, lihat artikel berikut ini: