Поделиться через


Резервное копирование виртуальных машин Azure с помощью службы Azure Backup и REST API

В этой статье описано, как управлять резервными копиями виртуальных машин Azure с помощью службы Azure Backup и REST API. Вы можете настроить защиту ранее незащищенных виртуальных машин Azure, активировать резервное копирование по запросу для защищенной виртуальной машины Azure и изменить свойства резервной копии виртуальной машины с помощью REST API, как описано в этой статье. Сведения о защите виртуальной машины Azure с помощью портал Azure см. в этой статье.

Узнайте, как создать хранилище и создать руководства по REST API политики для создания новых хранилищ и политик.

Предположим, что вы хотите защитить виртуальную машину testVM в группе ресурсов в хранилище testVaultслужб восстановления, присутствующих в группе testRG testVaultRGресурсов, с политикой по умолчанию (с именемDefaultPolicy).

Настройка резервного копирования для незащищенных виртуальных машин Azure с помощью REST API

Обнаружение незащищенных виртуальных машин Azure

Во-первых, для хранилища нужно обеспечить возможность идентификации виртуальной машины Azure. Это можно сделать с помощью операции обновления. Это асинхронная операция POST, которая предоставляет хранилищу последний список всех незащищенных виртуальных машин в текущей подписке и "кэширует" их. После кэширования виртуальной машины Службы восстановления получат доступ к виртуальной машине для включения защиты.

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupname}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers?api-version=2016-12-01

Для URI POST используются параметры {subscriptionId}, {vaultName}, {vaultresourceGroupName}, {fabricName}. Значение параметра {fabricName} — Azure. В нашем примере значения параметров {vaultName} и {vaultresourceGroupName} — testVault и testVaultRG. Так как все необходимые параметры указаны в универсальном коде ресурса (URI), нет необходимости в отдельном тексте запроса.

POST https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/refreshContainers?api-version=2016-12-01

Ответы на операцию обновления

Операция обновления — это асинхронная операция. Это означает, что такая операция создает другую операцию, которая должна отслеживаться отдельно.

Она возвращает два ответа: 202 (принято), когда создается другая операция, и 200 (ОК), когда эта операция завершается.

Имя. Тип Описание
204 Нет контента ОК (без возврата содержимого)
202 — принято Акцептировано

Примеры ответов на операцию обновления:

После отправления запроса POST возвращается ответ 202 (принято).

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
X-Content-Type-Options: nosniff
x-ms-request-id: 43cf550d-e463-421c-8922-37e4766db27d
x-ms-client-request-id: 4910609f-bb9b-4c23-8527-eb6fa2d3253f; 4910609f-bb9b-4c23-8527-eb6fa2d3253f
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 43cf550d-e463-421c-8922-37e4766db27d
x-ms-routing-request-id: SOUTHINDIA:20180521T105701Z:43cf550d-e463-421c-8922-37e4766db27d
Cache-Control: no-cache
Date: Mon, 21 May 2018 10:57:00 GMT
Location: https://management.azure.com/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/operationResults/aad204aa-a5cf-4be2-a7db-a224819e5890?api-version=2019-05-13
X-Powered-By: ASP.NET

Отследите итоговую операцию, используя заголовок location с помощью простой команды GET.

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/operationResults/aad204aa-a5cf-4be2-a7db-a224819e5890?api-version=2019-05-13

После обнаружения всех виртуальных машин Azure команда GET возвращает номер ответа 204 (содержимое отсутствует). Хранилище теперь сможет обнаруживать все виртуальные машины в пределах подписки.

HTTP/1.1 204 NoContent
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: cf6cd73b-9189-4942-a61d-878fcf76b1c1
x-ms-client-request-id: 25bb6345-f9fc-4406-be1a-dc6db0eefafe; 25bb6345-f9fc-4406-be1a-dc6db0eefafe
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14997
x-ms-correlation-request-id: cf6cd73b-9189-4942-a61d-878fcf76b1c1
x-ms-routing-request-id: SOUTHINDIA:20180521T105825Z:cf6cd73b-9189-4942-a61d-878fcf76b1c1
Cache-Control: no-cache
Date: Mon, 21 May 2018 10:58:25 GMT
X-Powered-By: ASP.NET

Выбор нужной виртуальной машины Azure

Вы можете убедиться, что кэширование выполнено, отобразив список всех защищаемых элементов в пределах подписки. Затем в ответе найдите нужную виртуальную машину. Ответ этой операции также информирует о том, как Службы восстановления определяют виртуальную машину. После ознакомления с шаблоном можно пропустить этот шаг и напрямую перейти к включению защиты.

Это можно сделать с помощью операции GET.

GET https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems?api-version=2016-12-01&$filter=backupManagementType eq 'AzureIaasVM'

URI GET имеет все необходимые параметры. Для этой операции текст запроса также не требуется.

Ответы на операцию Get

Имя. Тип Описание
200 OK WorkloadProtectableItemResourceList ОК

Примеры ответов для получения операции:

После отправки запроса GET возвращается ответ 200 (ОК).

HTTP/1.1 200 OK
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: 7c2cf56a-e6be-4345-96df-c27ed849fe36
x-ms-client-request-id: 40c8601a-c217-4c68-87da-01db8dac93dd; 40c8601a-c217-4c68-87da-01db8dac93dd
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14979
x-ms-correlation-request-id: 7c2cf56a-e6be-4345-96df-c27ed849fe36
x-ms-routing-request-id: SOUTHINDIA:20180521T071408Z:7c2cf56a-e6be-4345-96df-c27ed849fe36
Cache-Control: no-cache
Date: Mon, 21 May 2018 07:14:08 GMT
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET

{
  "value": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testVM/protectableItems/vm;iaasvmcontainerv2;testRG;testVM",
      "name": "iaasvmcontainerv2;testRG;testVM",
      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems",
      "properties": {
        "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
        "virtualMachineVersion": "Compute",
        "resourceGroup": "testRG",
        "backupManagementType": "AzureIaasVM",
        "protectableItemType": "Microsoft.Compute/virtualMachines",
        "friendlyName": "testVM",
        "protectionState": "NotProtected"
      }
    },……………..

Совет

Число значений в ответе GET ограничено 200 на страницу. Используйте поле nextLink, чтобы получить URL-адрес для следующего набора ответов.

Ответ содержит список всех незащищенных виртуальных машин Azure, где каждое значение {value} содержит все сведения, необходимые для настройки резервного копирования Службами восстановления Azure. При настройке резервного копирования запишите значения полей {name} и {virtualMachineId} в разделе {properties}. Создайте из этих значений полей две переменные, как показано ниже.

  • containerName = "iaasvmcontainer;"+{name}
  • protectedItemName = "vm;"+ {name}
  • {virtualMachineId} будет использоваться позже в тексте запроса.

В нашем примере указанные выше значения будут такими:

  • containerName = "iaasvmcontainer;iaasvmcontainerv2;testRG;testVM"
  • protectedItemName = "vm;iaasvmcontainerv2;testRG;testVM"

Включение защиты для виртуальной машины Azure

После кэширования и идентификации соответствующей виртуальной машины выберите политику защиты. Дополнительные сведения о существующих политиках в хранилище см. в списке API политик. Ссылаясь на имя политики, выберите соответствующую политику. См. дополнительные сведения о создании политик. В приведенном ниже примере выбрана политика DefaultPolicy.

Включение защиты — это асинхронная операция PUT, которая создает защищенный элемент.

https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{vaultresourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2019-05-13

Значения параметров {containerName} и {protectedItemName} соответствуют указанным выше. Значение параметра {fabricName} — Azure. В нашем примере мы получим следующее:

PUT https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;iaasvmcontainerv2;testRG;testVM?api-version=2019-05-13

Создание текста запроса

Чтобы создать защищенный элемент, используйте компоненты текста запроса.

Имя. Тип Описание
свойства AzureIaaSVMProtectedItem Свойства ресурса ProtectedItem

Полный список определений в тексте запроса и другие сведения см. в документации по созданию защищенного элемента для REST API.

Пример текста запроса:

Следующий текст запроса определяет свойства, необходимые для создания защищенного элемента.

{
  "properties": {
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/DefaultPolicy"
  }
}

{sourceResourceId} и {virtualMachineId} — это использованные ранее параметры ответа со списком защищаемых элементов. Ответы на создание операции защищенного элемента @01011011

Ответы на операцию создания защитного элемента

Создание защищенного элемента — это асинхронная операция. Это означает, что такая операция создает другую операцию, которая должна отслеживаться отдельно.

Она возвращает два ответа: 202 (принято), когда создается другая операция, и 200 (ОК), когда эта операция завершается.

Имя. Тип Описание
200 OK ProtectedItemResource ОК
202 — принято Акцептировано

Примеры ответов на создание операции защищенного элемента:

После отправки запроса PUT для создания или обновления защищенного элемента будет получен первоначальный ответ 202 (принято) с заголовками location или Azure-AsyncOperation.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
Azure-AsyncOperation: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;testRG;testVM/operationsStatus/a0866047-6fc7-4ac3-ba38-fb0ae8aa550f?api-version=2019-05-13
X-Content-Type-Options: nosniff
x-ms-request-id: db785be0-bb20-4598-bc9f-70c9428b170b
x-ms-client-request-id: e1f94eef-9b2d-45c4-85b8-151e12b07d03; e1f94eef-9b2d-45c4-85b8-151e12b07d03
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: db785be0-bb20-4598-bc9f-70c9428b170b
x-ms-routing-request-id: SOUTHINDIA:20180521T073907Z:db785be0-bb20-4598-bc9f-70c9428b170b
Cache-Control: no-cache
Date: Mon, 21 May 2018 07:39:06 GMT
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;testRG;testVM/operationResults/a0866047-6fc7-4ac3-ba38-fb0ae8aa550f?api-version=2019-05-13
X-Powered-By: ASP.NET

Затем отследите итоговую операцию, используя заголовок location или Azure-AsyncOperation с помощью простой команды GET.

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;testRG;testVM/operationsStatus/a0866047-6fc7-4ac3-ba38-fb0ae8aa550f?api-version=2019-05-13

Завершенная операция возвращает код 200 (ОК) с содержимым защищенного элемента в тексте ответа.

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;testRG;testVM",
  "name": "VM;testRG;testVM",
  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
  "properties": {
    "friendlyName": "testVM",
    "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "protectionStatus": "Healthy",
    "protectionState": "IRPending",
    "healthStatus": "Passed",
    "lastBackupStatus": "",
    "lastBackupTime": "2001-01-01T00:00:00Z",
    "protectedItemDataId": "17592691116891",
    "extendedInfo": {
      "recoveryPointCount": 0,
      "policyInconsistent": false
    },
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "backupManagementType": "AzureIaasVM",
    "workloadType": "VM",
    "containerName": "iaasvmcontainerv2;testRG;testVM",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/DefaultPolicy",
    "policyName": "DefaultPolicy"
  }
}

Это подтверждает, что защита виртуальной машины включена и первая операция резервного копирования будет активирована в соответствии с расписанием политики.

Исключение дисков в резервной копии виртуальной машины Azure

Azure Backup также предоставляет возможность выборочного резервного копирования подмножества дисков на виртуальной машине Azure. Дополнительные сведения см. здесь. Если вы хотите выборочно создать резервную копию нескольких дисков во время включения защиты, следующий фрагмент кода должен быть текстом запроса во время включения защиты.

{
"properties": {
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/DefaultPolicy",
    "extendedProperties":  {
      "diskExclusionProperties":{
          "diskLunList":[0,1],
          "isInclusionList":true
        }
    }
}
}

В тексте запроса выше список дисков для резервного копирования предоставлен в разделе расширенных свойств.

Свойство Значение
diskLunList Список LUN диска — это список номеров LUN дисков данных. Резервное копирование диска ОС выполняется всегда и об этом не следует упоминать.
IsInclusionList Это свойство должно иметь значение True, чтобы номера LUN были включены во время выполнения резервного копирования. Если это значение false, то указанные выше упоминание luN будут исключены.

Таким образом, если требование заключается в резервном копировании только диска ОС, все диски данных должны быть исключены. Проще говоря, диски данных включать не нужно. Таким образом список LUN диска будет пустым, а свойство IsInclusionList будет иметь значение True. Поэтому подумайте, какой способ выбора подмножества дисков является более простым: постоянно включать несколько дисков или постоянно исключать их. Выберите список LUN и значение логической переменной соответствующим образом.

Активация резервного копирования по запросу для защищенной виртуальной машины Azure

После настройки виртуальной машины Azure для резервного копирования эта операция будет активирована в соответствии с расписанием политики. Вы можете дождаться первого запланированного резервного копирования или активировать эту операцию по требованию в любое время. Срок хранения для резервных копий по запросу отличается от срока хранения политики резервного копирования. Кроме того, вы можете указать определенные дату и время. Если срок хранения не будет указан, будет использоваться значение по умолчанию — 30 дней со дня активации резервного копирования по запросу.

Активация резервного копирования по запросу — это операция POST.

POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup?api-version=2016-12-01

Значения параметров {containerName} и {protectedItemName} соответствуют указанным выше. Значение параметра {fabricName} — Azure. В нашем примере мы получим следующее:

POST https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;iaasvmcontainerv2;testRG;testVM/backup?api-version=2016-12-01

Создание текста запроса для резервного копирования по запросу

Чтобы активировать резервное копирование по запросу, используйте компоненты текста запроса.

Имя. Тип Описание
свойства IaaSVMBackupRequest Свойства BackupRequestResource

Полный список определений в тексте запроса и другие сведения см. в документации по активации резервного копирования для защищенных элементов для REST API.

Пример текста запроса для резервного копирования по запросу

Следующий текст запроса определяет свойства, необходимые для активации резервного копирования для защищенного элемента. Если срок хранения не указан, он будет составлять 30 дней с момента активации задания резервного копирования.

{
   "properties": {
    "objectType": "IaasVMBackupRequest",
    "recoveryPointExpiryTimeInUTC": "2018-12-01T02:16:20.3156909Z"
  }
}

Ответы на операции резервного копирования по запросу

Активация резервного копирования по запросу — это асинхронная операция. Это означает, что такая операция создает другую операцию, которая должна отслеживаться отдельно.

Она возвращает два ответа: 202 (принято), когда создается другая операция, и 200 (ОК), когда эта операция завершается.

Имя. Тип Описание
202 — принято Акцептировано

Примеры ответов на операции резервного копирования по запросу

После отправки запроса POST для выполнения резервного копирования по запросу будет получен первоначальный ответ 202 (принято) с заголовками location или Azure-AsyncOperation.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
Azure-AsyncOperation: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testVaultRG;testVM/protectedItems/vm;testRG;testVM/operationsStatus/b8daecaa-f8f5-44ed-9f18-491a9e9ba01f?api-version=2019-05-13
X-Content-Type-Options: nosniff
x-ms-request-id: 7885ca75-c7c6-43fb-a38c-c0cc437d8810
x-ms-client-request-id: 7df8e874-1d66-4f81-8e91-da2fe054811d; 7df8e874-1d66-4f81-8e91-da2fe054811d
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 7885ca75-c7c6-43fb-a38c-c0cc437d8810
x-ms-routing-request-id: SOUTHINDIA:20180521T083541Z:7885ca75-c7c6-43fb-a38c-c0cc437d8810
Cache-Control: no-cache
Date: Mon, 21 May 2018 08:35:41 GMT
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testVaultRG;testVM/protectedItems/vm;testRG;testVM/operationResults/b8daecaa-f8f5-44ed-9f18-491a9e9ba01f?api-version=2019-05-13
X-Powered-By: ASP.NET

Затем отследите итоговую операцию, используя заголовок location или Azure-AsyncOperation с помощью простой команды GET.

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;testRG;testVM/operationsStatus/a0866047-6fc7-4ac3-ba38-fb0ae8aa550f?api-version=2019-05-13

Завершенная операция возвращает код 200 (ОК) с идентификатором результата задания резервного копирования в тексте ответа.

HTTP/1.1 200 OK
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: a8b13524-2c95-445f-b107-920806f385c1
x-ms-client-request-id: 5a63209d-3708-4e69-a75f-9499f4c8977c; 5a63209d-3708-4e69-a75f-9499f4c8977c
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14995
x-ms-correlation-request-id: a8b13524-2c95-445f-b107-920806f385c1
x-ms-routing-request-id: SOUTHINDIA:20180521T083723Z:a8b13524-2c95-445f-b107-920806f385c1
Cache-Control: no-cache
Date: Mon, 21 May 2018 08:37:22 GMT
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "status": "Succeeded",
  "startTime": "2018-05-21T08:35:40.9488967Z",
  "endTime": "2018-05-21T08:35:40.9488967Z",
  "properties": {
    "objectType": "OperationStatusJobExtendedInfo",
    "jobId": "7ddead57-bcb9-4269-ac31-6a1b57588700"
  }
}

Так как задание резервного копирования — это длительная операция, оно должно отслеживаться, как описано в документации по мониторингу заданий для REST API.

Изменение параметров резервного копирования для защищенной виртуальной машины Azure

Изменение политики защиты

Чтобы изменить политику, с помощью которой защищена виртуальная машина, можно использовать тот же формат, что и включение защиты). Просто укажите идентификатор политики в тексте запроса и отправьте запрос. Например, чтобы изменить для testVM политику DefaultPolicy на ProdPolicy, укажите идентификатор ProdPolicy в тексте запроса.

{
  "properties": {
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/microsoft.recoveryservices/vaults/testVault/backupPolicies/ProdPolicy"
  }
}

Как уже упоминалось, ответ будет в таком же формате, как и при включении защиты.

Исключение дисков во время защиты виртуальной машины Azure

Если резервное копирование виртуальной машины Azure уже выполнено, можно указать список дисков для резервного копирования или исключения, изменив политику защиты. Просто подготовьте запрос в том же формате, который использовался при исключении дисков во время включения защиты

Внимание

Текст запроса выше всегда отображает окончательную копию дисков данных, которые необходимо исключить или включить. Это не будет расширять предыдущую конфигурацию. Например, если вы сначала обновили защиту, исключив диск данных 1, а затем исключили диск данных 2, при последующем резервном копировании будет исключен только диск данных 2, а диск данных 1 будет включен. Это окончательный список дисков, которые будут включены или исключены при последующем резервном копировании.

Чтобы получить текущий список исключенных и включенных дисков, ознакомьтесь с информацией о защищенном элементе, как описано здесь. Ответ предоставит список LUN диска данных и указывает, включены ли они или исключены.

Снятие защиты с сохранением существующих данных

Чтобы снять защиту с защищенной виртуальной машины и сохранить резервную копию данных, удалите политику из текста запроса и отправьте запрос. После удаления связи с политикой операции резервного копирования больше не будут активироваться и новые точки восстановления не будут создаваться.

{
  "properties": {
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "policyId": ""
  }
}

Ответ будет в том же формате, что и при активации резервного копирования по запросу. Итоговое задание должно отслеживаться, как описано в документации по мониторингу заданий для REST API.

Снятие защиты и удаление данных

Чтобы снять защиту с защищенной виртуальной машины и удалить резервную копию данных, выполните операцию удаления.

Остановка защиты и удаление данных осуществляется с помощью операции DELETE.

DELETE https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2019-05-13

Значения параметров {containerName} и {protectedItemName} соответствуют указанным выше. Значение параметра {fabricName} — Azure. В нашем примере мы получим следующее:

DELETE https://management.azure.com//Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;testRG;testVM/protectedItems/vm;iaasvmcontainerv2;testRG;testVM?api-version=2019-05-13

Ответы для операции удаления

DELETE — это асинхронная операция. Это означает, что такая операция создает другую операцию, которая должна отслеживаться отдельно.

Он возвращает два ответа: 202 (принято) при создании другой операции и 204 (NoContent) после завершения этой операции.

Имя. Тип Описание
204 NoContent (содержимое отсутствует) NoContent
202 — принято Акцептировано

Внимание

Чтобы обеспечить защиту от случайного удаления, для хранилища Служб восстановления доступна функция обратимого удаления. Если для состояния обратимого удаления хранилища задано значение "Включено", то при выполнении операции удаления данные не будут удалены сразу. Они будут храниться в течение 14 дней, а затем будут удалены окончательно. Плата за хранение на протяжении этих 14 дней не взимается. Сведения об отмене операции удаления см. в этом разделе.

Отмена удаления

Отмена случайного удаления аналогична созданию элемента резервного копирования. После отмены удаления элемент сохраняется, но будущие резервные копии не активируются.

Отмена удаления — это операция PUT, которая очень похожа на операцию изменения политики и включения защиты. Просто укажите намерение отменить удаление с помощью переменной isRehydrate в тексте запроса и отправьте запрос. Например, чтобы отменить удаление testVM, следует использовать следующий текст запроса.

{
  "properties": {
    "protectedItemType": "Microsoft.Compute/virtualMachines",
    "protectionState": "ProtectionStopped",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
    "isRehydrate": true
  }
}

Ответ будет в том же формате, что и при активации резервного копирования по запросу. Итоговое задание должно отслеживаться, как описано в документации по мониторингу заданий для REST API.

Следующие шаги

Восстановление данных из резервной копии виртуальной машины Azure

Дополнительные сведения о REST API Azure Backup с использованием API REST см. в следующих документах: