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. Pokud chcete začít, přečtěte si 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ě.

  • 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ší.

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

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