Så här implementerar du haveriberedskap med hjälp av säkerhetskopiering och återställning i Azure API Management
GÄLLER FÖR: Utvecklare | Grundläggande | Standard | Premie
Genom att publicera och hantera dina API:er via Azure API Management drar du nytta av feltolerans och infrastrukturfunktioner som du annars skulle utforma, implementera och hantera manuellt. Azure-plattformen minimerar en stor del av potentiella fel till en bråkdel av kostnaden.
Om du vill återställa från tillgänglighetsproblem som påverkar API Management-tjänsten är du redo att när som helst återskapa tjänsten i en annan region. Beroende på ditt mål för återställningstid kanske du vill behålla en standby-tjänst i en eller flera regioner. Du kan också försöka att behålla deras konfiguration och innehåll synkroniserat med den aktiva tjänsten enligt ditt mål för återställningspunkten. Funktionerna för säkerhetskopiering och återställning av API-hantering tillhandahåller nödvändiga byggstenar för att implementera en strategi för haveriberedskap.
Säkerhetskopierings- och återställningsåtgärder kan också användas för replikering av API Management-tjänstkonfiguration mellan driftmiljöer, till exempel utveckling och mellanlagring. Se upp för att runtime-data som användare och prenumerationer också kopieras, vilket kanske inte alltid är önskvärt.
Den här artikeln visar hur du automatiserar säkerhetskopierings- och återställningsåtgärder för din API Management-instans med hjälp av ett externt lagringskonto. Stegen som visas här använder antingen Azure PowerShell-cmdletarna Backup-AzApiManagement och Restore-AzApiManagement , eller API Management Service – Backup and Api Management Service – Restore REST API:er.
Varning
Varje säkerhetskopia upphör att gälla efter 30 dagar. Om du försöker återställa en säkerhetskopia efter att förfalloperioden på 30 dagar har upphört att gälla misslyckas återställningen med ett Cannot restore: backup expired
meddelande.
Viktigt!
Återställningsåtgärden ändrar inte konfigurationen av det anpassade värdnamnet för måltjänsten. Vi rekommenderar att du använder samma anpassade värdnamn och TLS-certifikat för både aktiva tjänster och standby-tjänster, så att trafiken kan dirigeras om till väntelägesinstansen genom en enkel DNS CNAME-ändring när återställningen är klar.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Förutsättningar
En API Management-tjänstinstans. Om du inte har någon läser du Skapa en API Management-tjänstinstans.
Ett Azure-lagringskonto. Om du inte har något läser du Skapa ett lagringskonto.
- Skapa en container i lagringskontot för att lagra säkerhetskopierade data.
Den senaste versionen av Azure PowerShell, om du planerar att använda Azure PowerShell-cmdletar. Om du inte redan har gjort det installerar du Azure PowerShell.
Konfigurera åtkomst till lagringskonto
När du kör en säkerhetskopierings- eller återställningsåtgärd måste du konfigurera åtkomsten till lagringskontot. API Management har stöd för två mekanismer för lagringsåtkomst: en Azure Storage-åtkomstnyckel eller en hanterad API Management-identitet.
Konfigurera åtkomstnyckel för lagringskonto
Azure genererar två 512-bitars lagringskontoåtkomstnycklar för varje lagringskonto. Dessa nycklar kan användas för att auktorisera åtkomst till data i ditt lagringskonto via auktorisering av delad nyckel. Information om hur du visar, hämtar och hanterar nycklarna finns i Hantera åtkomstnycklar för lagringskonto.
Konfigurera hanterad API Management-identitet
Kommentar
Användning av en hanterad API Management-identitet för lagringsåtgärder under säkerhetskopiering och återställning stöds i API Management REST API-version 2021-04-01-preview
eller senare.
Aktivera en systemtilldelad eller användartilldelad hanterad identitet för API Management i din API Management-instans.
- Om du aktiverar en användartilldelad hanterad identitet noterar du identitetens klient-ID.
- Om du ska säkerhetskopiera och återställa till olika API Management-instanser aktiverar du en hanterad identitet i både käll- och målinstanserna.
Tilldela identiteten rollen Storage Blob Data Contributor , som är begränsad till lagringskontot som används för säkerhetskopiering och återställning. Om du vill tilldela rollen använder du Azure Portal eller andra Azure-verktyg.
Säkerhetskopiera en API Management-tjänst
Logga in med Azure PowerShell.
I följande exempel:
- En API Management-instans med namnet myapim finns i resursgruppen apimresourcegroup.
- Ett lagringskonto med namnet backupstorageaccount finns i resursgruppen storageresourcegroup. Lagringskontot har en container med namnet backups.
- En säkerhetskopieringsblob skapas med namnet ContosoBackup.apimbackup.
Ange variabler i PowerShell:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Åtkomst med hjälp av lagringsåtkomstnyckel
$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
Åtkomst med hanterad identitet
Information om hur du konfigurerar en hanterad identitet i DIN API Management-instans för åtkomst till lagringskontot finns i Konfigurera en hanterad identitet tidigare i den här artikeln.
Åtkomst med hjälp av systemtilldelad hanterad identitet
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName `
-TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Åtkomst med användartilldelad hanterad identitet
I det här exemplet finns en användartilldelad hanterad identitet med namnet myidentity i resursgruppen 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
Säkerhetskopiering är en tidskrävande åtgärd som kan ta flera minuter att slutföra. Under den här tiden fortsätter API-gatewayen att hantera begäranden, men tjänstens tillstånd uppdateras.
Återställa en API Management-tjänst
Varning
Undvik ändringar i tjänstkonfigurationen (till exempel API:er, principer, utseende på utvecklarportalen) medan återställning pågår. Ändringar kan skrivas över.
I följande exempel
- En API Management-instans med namnet myapim återställs från säkerhetskopieringsbloben med namnet ContosoBackup.apimbackup i lagringskontot backupstorageaccount.
- Säkerhetskopieringsbloben finns i en container med namnet backups.
Ange variabler i PowerShell:
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Åtkomst med hjälp av lagringsåtkomstnyckel
$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
Åtkomst med hanterad identitet
Information om hur du konfigurerar en hanterad identitet i DIN API Management-instans för åtkomst till lagringskontot finns i Konfigurera en hanterad identitet tidigare i den här artikeln.
Åtkomst med hjälp av systemtilldelad hanterad identitet
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName `
-SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Åtkomst med användartilldelad hanterad identitet
I det här exemplet finns en användartilldelad hanterad identitet med namnet myidentity i resursgruppen 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
Återställning är en tidskrävande åtgärd som kan ta upp till 45 minuter eller mer att slutföra.
Krav
- Återställningen av en säkerhetskopia garanteras bara i 30 dagar sedan den skapades.
- När säkerhetskopiering pågår kan du undvika hanteringsändringar i tjänsten , till exempel uppgradering eller nedgradering på prisnivå, ändring i domännamn med mera.
- Ändringar som gjorts i tjänstkonfigurationen (till exempel API:er, principer och utseende på utvecklarportalen) medan säkerhetskopieringen pågår kan undantas från säkerhetskopieringen och kommer att gå förlorad.
- Säkerhetskopiering samlar inte in föraggregerade loggdata som används i rapporter som visas i fönstret Analytics i Azure Portal.
- Resursdelning för korsande ursprung (CORS) bör inte aktiveras på blobtjänsten i lagringskontot.
- Prisnivån för den tjänst som återställs till måste matcha prisnivån för den säkerhetskopierade tjänst som återställs.
Begränsningar för lagringsnätverk
Om lagringskontot är brandväggsaktiverat rekommenderar vi att du använder API Management-instansens systemtilldelade hanterade identitet för åtkomst till kontot. Se till att lagringskontot ger åtkomst till betrodda Azure-tjänster.
Vad som inte säkerhetskopieras
- Användningsdata som används för att skapa analysrapporter ingår inte i säkerhetskopieringen. Använd REST API för Azure API Management för att regelbundet hämta analysrapporter för förvaring.
- TLS/SSL-certifikat för anpassad domän.
- Anpassade CA-certifikat, som innehåller mellanliggande certifikat eller rotcertifikat som laddats upp av kunden.
- Integreringsinställningar för virtuellt nätverk .
- Konfiguration av hanterad identitet .
- Diagnostikkonfiguration för Azure Monitor.
- Inställningar för protokoll och chiffer .
- Innehåll i utvecklarportalen .
Hur ofta du utför tjänstsäkerhetskopior påverkar återställningspunktens mål. För att minimera det rekommenderar vi att du implementerar regelbundna säkerhetskopieringar och utför säkerhetskopieringar på begäran när du har ändrat API Management-tjänsten.
Nästa steg
Kolla in följande relaterade resurser för säkerhetskopierings-/återställningsprocessen:
- Automatisera API Management-säkerhetskopiering och -återställning med Logic Apps
- Så här flyttar du Azure API Management mellan regioner
- API Management Premium-nivån stöder även zonredundans, vilket ger återhämtning och hög tillgänglighet till en tjänstinstans i en specifik Azure-region (plats).