Implementace zotavení po havárii pomocí zálohování a obnovení služby ve službě Azure API Management
PLATÍ PRO: Vývojář | Základní | Standardní | Prémie
Publikováním a správou rozhraní API prostřednictvím služby Azure API Management využíváte možnosti odolnosti proti chybám a infrastruktury, které byste jinak navrhli, implementovali a spravovali ručně. Platforma Azure zmírní velký zlomek potenciálních selhání za zlomek nákladů.
Pokud se chcete zotavit z problémů s dostupností, které ovlivňují vaši službu API Management, připravte se kdykoli na rekonstituci služby v jiné oblasti. V závislosti na cíli doby obnovení můžete chtít zachovat pohotovostní službu v jedné nebo více oblastech. Můžete se také pokusit udržovat jejich konfiguraci a obsah synchronizovaný s aktivní službou podle cíle bodu obnovení. Funkce zálohování a obnovení služby API Management poskytují nezbytné stavební bloky pro implementaci strategie zotavení po havárii.
Operace zálohování a obnovení je také možné použít k replikaci konfigurace služby API Management mezi provozními prostředími, například pro vývoj a přípravu. Dávejte pozor, aby se data modulu runtime, jako jsou uživatelé a předplatná, zkopírovala také, což nemusí být vždy žádoucí.
Tento článek ukazuje, jak automatizovat operace zálohování a obnovení instance služby API Management pomocí externího účtu úložiště. Zde uvedené kroky používají rutiny Azure PowerShellu Backup-AzApiManagement a Restore-AzApiManagement nebo službu Api Management – Backup a Api Management – Obnovení rozhraní REST API.
Upozorňující
Platnost každé zálohy vyprší za 30 dnů. Pokud se pokusíte obnovit zálohu po uplynutí 30denní doby vypršení platnosti, obnovení se nezdaří se zprávou Cannot restore: backup expired
.
Důležité
Operace obnovení nemění vlastní konfiguraci názvu hostitele cílové služby. Doporučujeme použít stejný vlastní název hostitele a certifikát TLS pro aktivní i pohotovostní služby, aby po dokončení operace obnovení bylo možné přenosy znovu směrovat do pohotovostní instance jednoduchou změnou DNS CNAME.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Požadavky
Instance služby API Management. Pokud ho nemáte, přečtěte si téma Vytvoření instance služby API Management.
Účet úložiště Azure. Pokud ho nemáte, přečtěte si téma Vytvoření účtu úložiště.
- Vytvořte kontejner v účtu úložiště, ve které se budou uchovávat zálohovaná data.
Nejnovější verze Azure PowerShellu, pokud plánujete používat rutiny Azure PowerShellu. Pokud jste to ještě neudělali, nainstalujte Azure PowerShell.
Konfigurace přístupu k účtu úložiště
Při spuštění operace zálohování nebo obnovení je potřeba nakonfigurovat přístup k účtu úložiště. API Management podporuje dva mechanismy přístupu k úložišti: přístupový klíč služby Azure Storage nebo spravovanou identitu služby API Management.
Konfigurace přístupového klíče účtu úložiště
Azure vygeneruje dva 512bitové přístupové klíče účtu úložiště pro každý účet úložiště. Tyto klíče je možné použít k autorizaci přístupu k datům ve vašem účtu úložiště prostřednictvím autorizace sdíleného klíče. Pokud chcete zobrazit, načíst a spravovat klíče, přečtěte si téma Správa přístupových klíčů účtu úložiště.
Konfigurace spravované identity služby API Management
Poznámka:
Použití spravované identity služby API Management pro operace úložiště během zálohování a obnovení je podporováno ve verzi 2021-04-01-preview
rozhraní REST API služby API Management nebo novější.
Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro službu API Management ve vaší instanci služby API Management.
- Pokud povolíte spravovanou identitu přiřazenou uživatelem, poznamenejte si ID klienta identity.
- Pokud budete zálohovat a obnovovat do různých instancí služby API Management, povolte spravovanou identitu ve zdrojových i cílových instancích.
Přiřaďte identitu roli Přispěvatel dat objektů blob služby Storage s vymezeným oborem účtu úložiště, který se používá k zálohování a obnovení. K přiřazení role použijte Azure Portal nebo jiné nástroje Azure.
Zálohování služby API Management
Přihlaste se pomocí Azure PowerShellu.
V následujících příkladech:
- Instance služby API Management s názvem myapim je ve skupině prostředků apimresourcegroup.
- Účet úložiště s názvem backupstorageaccount je ve skupině prostředků storageresourcegroup. Účet úložiště má kontejner pojmenované zálohy.
- Vytvoří se záložní objekt blob s názvem ContosoBackup.apimbackup.
Nastavení proměnných v PowerShellu:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Přístup pomocí přístupového klíče k úložišti
$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
Přístup pomocí spravované identity
Pokud chcete ve vaší instanci služby API Management nakonfigurovat spravovanou identitu pro přístup k účtu úložiště, přečtěte si část Konfigurace spravované identity výše v tomto článku.
Přístup pomocí spravované identity přiřazené systémem
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName `
-TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Přístup pomocí spravované identity přiřazené uživatelem
V tomto příkladu je spravovaná identita přiřazená uživatelem s názvem myidentity ve skupině prostředků 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
Zálohování je dlouhotrvající operace, která může trvat několik minut. Během této doby brána rozhraní API nadále zpracovává požadavky, ale stav služby se aktualizuje.
Obnovení služby API Management
Upozornění
Během probíhající operace obnovení se vyhněte změnám konfigurace služby (například rozhraní API, zásad, vzhledu portálu pro vývojáře). Změny můžou být přepsány.
V následujících příkladech:
- Instance služby API Management s názvem myapim se obnoví z objektu blob zálohy s názvem ContosoBackup.apimbackup v účtu úložiště backupstorageaccount.
- Objekt blob zálohy je v kontejneru s názvem zálohy.
Nastavení proměnných v PowerShellu:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Přístup pomocí přístupového klíče k úložišti
$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
Přístup pomocí spravované identity
Pokud chcete ve vaší instanci služby API Management nakonfigurovat spravovanou identitu pro přístup k účtu úložiště, přečtěte si část Konfigurace spravované identity výše v tomto článku.
Přístup pomocí spravované identity přiřazené systémem
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName `
-SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Přístup pomocí spravované identity přiřazené uživatelem
V tomto příkladu je spravovaná identita přiřazená uživatelem s názvem myidentity ve skupině prostředků 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
Obnovení je dlouhotrvající operace, která může trvat až 45 minut nebo déle.
Omezení
- Obnovení zálohy je zaručeno pouze po dobu 30 dnů od okamžiku jejího vytvoření.
- Během zálohování se vyhněte změnám správy ve službě, jako je upgrade cenové úrovně nebo downgrade, změna názvu domény a další.
- Změny konfigurace služby (například rozhraní API, zásady a vzhled portálu pro vývojáře) během operace zálohování můžou být vyloučené ze zálohy a budou ztraceny.
- Zálohování nezachytává předem agregovaná data protokolu použitá v sestavách zobrazených v okně Analýza na webu Azure Portal.
- Sdílení prostředků mezi zdroji (CORS) by nemělo být povolené ve službě Blob Service v účtu úložiště.
- Cenová úroveň obnovené služby se musí shodovat s cenovou úrovní obnovené zálohované služby.
Omezení sítě úložiště
Pokud je účet úložiště povolený, doporučuje se pro přístup k účtu použít spravovanou identitu přiřazenou systémem přiřazenou instancí služby API Management. Ujistěte se, že účet úložiště uděluje přístup k důvěryhodným službám Azure.
Co se nezazálohuje
- Data o využití používaná k vytváření analytických sestav nejsou zahrnutá do zálohy. K pravidelnému načítání analytických sestav pro bezpečné uchovávání použijte rozhraní REST API služby Azure API Management.
- Vlastní certifikáty TLS/SSL domény.
- Vlastní certifikáty certifikační autority, které zahrnují zprostředkující nebo kořenové certifikáty nahrané zákazníkem.
- Nastavení integrace virtuální sítě .
- Konfigurace spravované identity
- Konfigurace diagnostiky služby Azure Monitor
- Nastavení protokolů a šifer .
- Obsah portálu pro vývojáře
Frekvence, s jakou provádíte zálohování služeb, má vliv na cíl bodu obnovení. Pokud ho chcete minimalizovat, doporučujeme implementovat pravidelné zálohy a provádět zálohy na vyžádání po provedení změn ve službě API Management.
Další kroky
Projděte si následující související prostředky pro proces zálohování a obnovení:
- Automatizace zálohování a obnovení služby API Management pomocí Logic Apps
- Přesun služby Azure API Management mezi oblastmi
- Úroveň API Management Premium také podporuje redundanci zón, která zajišťuje odolnost a vysokou dostupnost instance služby v konkrétní oblasti Azure (umístění).