Sdílet prostřednictvím


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í | Premium

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í buď rutiny Azure PowerShellu Backup-AzApiManagement a Restore-AzApiManagement , nebo službu API Management – Zálohování a službu API Management – Obnovení rozhraní REST API.

Výstraha

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

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ě.

Konfigurujte spravovanou identitu ve službě 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ší.

  1. 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 této 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.
  2. Přiřaďte identitě roli Storage Blob Data Contributor, vymezenou na účet úložiště používaný 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ů s názvem 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 uživatelem přiřazená spravovaná identita s názvem myidentity ve skupině zdrojů 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 byla obnovena ze zálohového blobu 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, kterou uživatel přiřadil, 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 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 na účtu úložiště aktivován firewall, doporučuje se pro přístup k účtu použít systémem přiřazenou spravovanou identitu instance 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

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.

Projděte si následující související prostředky pro proces zálohování a obnovení: