Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Стандартный | Премия
Публикуя API-интерфейсы и управляя ими с помощью Azure API Management, вы используете преимущества отказоустойчивости и возможностей инфраструктуры, которые вы в противном случае разрабатываете, реализуете и управляете вручную. Платформа Azure устраняет значительную часть потенциальных сбоев за небольшую часть затрат.
Чтобы обеспечить восстановление в случае проблем с доступностью службы Управления API, будьте готовы в любой момент воссоздать ее в другом регионе. В зависимости от того, насколько быстро нужно восстанавливать систему, вам может потребоваться держать службу в ожидании в одном или нескольких регионах. Также можно попробовать синхронизировать их конфигурацию и содержимое с действующей службой в соответствии с целевой точкой восстановления. Возможности управления API резервного копирования и восстановления предоставляют необходимые компоненты для реализации стратегии аварийного восстановления.
Резервное копирование и восстановление также можно использовать для репликации конфигурации Управления API между операционными средами, например между средой разработки и промежуточной средой. Обратите внимание, что данные среды выполнения, например пользователи и подписки, тоже копируются, что не всегда желательно.
В этой статье показано, как автоматизировать операции резервного копирования и восстановления экземпляра службы API Management с использованием внешней учетной записи хранения. Описанные здесь действия используют командлеты Backup-AzApiManagement и Restore-AzApiManagement Azure PowerShell, или REST API — API Management Service - Backup и API Management Service - Restore.
Предупреждение
Срок действия каждой резервной копии истекает через 30 дней. Если вы попытаетесь восстановить резервную копию по истечении 30 дней, восстановление завершится сбоем и будет отображено сообщение Cannot restore: backup expired.
Внимание
Операция восстановления не изменяет конфигурацию пользовательского имени хоста в целевой службе. Рекомендуется использовать один и тот же пользовательский сертификат узла и TLS для активных и резервных служб, чтобы после завершения операции восстановления трафик можно перенаправить в резервный экземпляр простым изменением DNS CNAME.
Примечание.
Мы рекомендуем использовать модуль Az PowerShell Azure для взаимодействия с Azure. Сведения о начале работы см. в разделе Install Azure PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Migrate Azure PowerShell из AzureRM в Az.
Внимание
Изменения инфраструктуры службы управления API (например, настройка пользовательских доменов, добавление сертификатов ЦС, масштабирование, конфигурация виртуальной сети, изменения зоны доступности и дополнения регионов) могут занять 15 минут или больше времени, в зависимости от уровня служб и размера развертывания. Ожидается больше времени для экземпляра с большим количеством единиц масштабирования или конфигурацией с несколькими регионами (шлюзами в нескольких расположениях). Изменения в управлении API внедряются постепенно и тщательно для сохранения производительности и доступности.
В то время как служба обновляется, другие изменения инфраструктуры служб не могут быть сделаны. Однако вы можете настроить API, продукты, политики и параметры пользователя. Служба не столкнется с простоем шлюза, а управление API будет продолжать обрабатывать запросы API без прерываний (за исключением уровня разработчика).
Предварительные требования
Экземпляр службы управления API в поддерживаемом уровне обслуживания. Если у вас его ещё нет, см. статью Создание экземпляра службы менеджмента API.
Примечание.
В настоящее время резервное копирование и восстановление не поддерживаются в экземплярах управления API с связанными шлюзами рабочих областей.
Учетная запись хранения Azure. Если у вас ее нет, см. статью Создание учетной записи хранения.
- Создайте контейнер в учетной записи для хранения данных резервных копий.
Последняя версия Azure PowerShell, если вы планируете использовать командлеты Azure PowerShell. Если у вас еще нет, установите Azure PowerShell.
Настройка доступа к учетной записи хранения
При выполнении операции резервного копирования или восстановления необходимо настроить доступ к учетной записи хранения. Управление API поддерживает два механизма доступа к хранилищу: ключ доступа служба хранилища Azure или управляемое удостоверение управления API.
Настройка ключа доступа учетной записи хранения
Azure создает два 512-разрядных ключа доступа к учетной записи хранения для каждой учетной записи хранения. Эти ключи можно использовать для авторизации доступа к данным в вашей учетной записи хранения с помощью авторизации по общему ключу. Сведения о просмотре и получении ключей, а также об управлении ими см. в статье Управление ключами доступа учетной записи хранения.
Настройка управляемого удостоверения Управления API
Примечание.
Использование управляемого удостоверения Управления API для операций с хранилищем во время резервного копирования и восстановления поддерживается в REST API службы Управления API версии 2021-04-01-preview или более поздней.
Включите назначаемое системой или назначаемое пользователем управляемое удостоверение для Управления API в экземпляре Управления API.
- Если вы включаете управляемое удостоверение, назначаемое пользователем, обязательно запишите идентификатор клиента этого удостоверения.
- Если резервное копирование и восстановление делается в разных экземплярах API Management, включите управляемое удостоверение как в исходном, так и в целевом экземплярах.
Назначьте удостоверению роль Участник службы хранилища BLOB-объектов, ограниченную учетной записью хранения, используемой для резервного копирования и восстановления. Чтобы назначить роль, используйте портал Azure или другие средства Azure.
Резервное копирование службы управления API
Войти с помощью Azure PowerShell.
В примерах ниже сделайте следующее:
- Экземпляр Управления API под названием myapim находится в группе ресурсов apimresourcegroup.
- Учетная запись хранения под названием backupstorageaccount находится в группе ресурсов storageresourcegroup. В учетной записи хранения содержится контейнер под названием backups.
- Будет создана резервная копия с именем ContosoBackup.apimbackup.
Определите переменные в PowerShell:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Доступ с помощью ключа доступа к хранилищу
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroup -StorageAccountName $storageAccountName)[0].Value
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName -TargetBlobName $blobName
Доступ с помощью управляемого удостоверения
Чтобы настроить управляемое удостоверение в экземпляре Управления API для доступа к учетной записи хранения, см. раздел Настройка управляемого удостоверения, ранее в этой статье.
Доступ с помощью управляемого удостоверения, назначаемого системой
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName `
-TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Доступ с помощью управляемого удостоверения, назначаемого пользователем
В этом примере управляемое удостоверение, назначаемое пользователем, под названием myidentity находится в группе ресурсов identityresourcegroup.
$identityName = "myidentity";
$identityResourceGroup = "identityresourcegroup";
$identityId = (Get-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $identityResourceGroup).ClientId
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName `
-TargetBlobName $blobName -AccessType "UserAssignedManagedIdentity" ` -identityClientId $identityid
Резервное копирование — это длительная операция, которая может занять несколько минут. В течение этого времени шлюз API продолжает обрабатывать запросы, но состояние службы обновляется.
Восстановление службы управления API
Внимание
Не следует вносить изменения в конфигурацию службы (например, в API, политики, внешний вид портала разработчика) во время выполнения восстановления. Такие изменения могут быть перезаписаны.
В следующих примерах:
- Экземпляр управления API с именем myapim восстановлен из резервной копии BLOB ContosoBackup.apimbackup в учетной записи хранения backupstorageaccount.
- BLOB-объект резервной копии находится в контейнере с именем backups.
Определите переменные в PowerShell:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Доступ с помощью ключа доступа к хранилищу
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroup -StorageAccountName $storageAccountName)[0].Value
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName -SourceBlobName $blobName
Доступ с помощью управляемого удостоверения
Чтобы настроить управляемое удостоверение в экземпляре Управления API для доступа к учетной записи хранения, см. раздел Настройка управляемого удостоверения, ранее в этой статье.
Доступ с помощью управляемого удостоверения, назначаемого системой
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName `
-SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Доступ с помощью управляемого удостоверения, назначаемого пользователем
В этом примере управляемое удостоверение, назначаемое пользователем, под названием myidentity находится в группе ресурсов identityresourcegroup.
$identityName = "myidentity";
$identityResourceGroup = "identityresourcegroup";
$identityId = (Get-AzUserAssignedIdentity -Name $identityName -ResourceGroupName $identityResourceGroup).ClientId
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName `
-SourceBlobName $blobName -AccessType "UserAssignedManagedIdentity" ` -identityClientId $identityid
Ограничения
- Восстановление резервной копии гарантируется только в течение 30 дней с момента ее создания.
- Во время выполнения резервного копирования не меняйте условия работы службы. Например, не следует повышать или понижать ценовую категорию, менять имя домена и т. д.
- Изменения конфигурации службы (например, интерфейсы API, политики, внешний вид портала разработчика), сделанные во время резервного копирования, могут быть исключены из резервного копирования и будут утрачены.
- Резервное копирование не записывает предварительно агрегированные данные журнала, используемые в отчетах, отображаемых на Analytics окне на портале Azure.
- Кросс-доменный обмен ресурсами (CORS)не должен быть включен в службе Blob-объектов в учетной записи хранения.
- Ценовая категория восстанавливаемой службы должна совпадать с ценовой категорией службы из резервной копии.
Ограничения сетевого хранилища
Если для учетной записи хранения включен межсетевой экран, рекомендуется использовать системно назначаемую управляемую идентичность экземпляра API Management для доступа к учетной записи. Убедитесь, что учетная запись хранения предоставляет доступ к доверенным службам Azure.
Что не копируется в резерв
- Данные об использовании, применяемые при создании аналитических отчетов, не включаются в резервную копию. Используйте REST API Azure API Management REST API для периодического получения отчетов аналитики для безопасного хранения.
- Сертификаты TLS/SSL личных доменов.
- Настраиваемые сертификаты ЦС, в том числе промежуточные или корневые сертификаты, отправленные клиентом.
- Параметры интеграции виртуальных сетей.
- Конфигурация управляемого удостоверения.
- Конфигурация диагностических данных Azure Monitor.
- Параметры протоколов и шифрования.
- Содержимое портала разработчика.
Частота резервного копирования службы влияет на целевую точку восстановления. Чтобы максимально снизить этот показатель, мы советуем настроить регулярное резервное копирование, а также выполнять резервное копирование по требованию после внесения изменений в службу управления API.
Связанный контент
Чтобы узнать больше о процессах резервного копирования и восстановления, ознакомьтесь со следующими ресурсами:
- Автоматизация резервного копирования и восстановления управления API с помощью Logic Apps
- Как переместить Azure API Management в пределах регионов
- Уровень управления API Premium также поддерживает зону избыточности, что обеспечивает устойчивость и высокую доступность экземпляра службы в определенном регионе Azure.