Delen via


Herstel na noodgevallen implementeren met behulp van serviceback-up en herstel in Azure API Management

VAN TOEPASSING OP: ontwikkelaar | Basic | Standard | Premium

Door uw API's te publiceren en te beheren via Azure API Management, profiteert u van fouttolerantie en infrastructuurmogelijkheden die u anders handmatig zou ontwerpen, implementeren en beheren. Het Azure-platform beperkt een groot deel van mogelijke fouten tegen een fractie van de kosten.

Als u wilt herstellen van beschikbaarheidsproblemen die van invloed zijn op uw API Management-service, kunt u uw service op elk gewenst moment in een andere regio reconstitueren. Afhankelijk van uw beoogde hersteltijd wilt u mogelijk een stand-byservice in een of meer regio's behouden. U kunt ook proberen hun configuratie en inhoud synchroon te houden met de actieve service volgens uw herstelpuntdoelstelling. De mogelijkheden voor back-up en herstel van API Management bieden de benodigde bouwstenen voor het implementeren van strategie voor herstel na noodgevallen.

Back-up- en herstelbewerkingen kunnen ook worden gebruikt voor het repliceren van de API Management-serviceconfiguratie tussen operationele omgevingen, bijvoorbeeld ontwikkeling en fasering. Let erop dat runtimegegevens, zoals gebruikers en abonnementen, ook worden gekopieerd, wat mogelijk niet altijd wenselijk is.

In dit artikel wordt beschreven hoe u back-up- en herstelbewerkingen van uw API Management-exemplaar automatiseert met behulp van een extern opslagaccount. De stappen die hier worden weergegeven, gebruiken ofwel de Azure PowerShell-cmdlets Backup-AzApiManagement en Restore-AzApiManagement, of de API Management Service - Backup en API Management Service - Restore REST API's.

Waarschuwing

Elke back-up verloopt na 30 dagen. Als u een back-up probeert te herstellen nadat de verloopperiode van 30 dagen is verlopen, mislukt het herstellen met een Cannot restore: backup expired bericht.

Belangrijk

Herstelbewerking wijzigt geen aangepaste hostnaamconfiguratie van de doelservice. We raden u aan hetzelfde aangepaste hostnaam- en TLS-certificaat te gebruiken voor zowel actieve als stand-byservices, zodat, nadat de herstelbewerking is voltooid, het verkeer opnieuw kan worden omgeleid naar het stand-by-exemplaar door een eenvoudige DNS CNAME-wijziging.

Opmerking

We raden u aan om de Azure Az PowerShell-module te gebruiken om met Azure te communiceren. Zie Azure PowerShell installeren om aan de slag te gaan. Om te leren hoe u naar de Az PowerShell-module kunt migreren, zie Migrate Azure PowerShell from AzureRM to Az.

Belangrijk

Wijzigingen in de infrastructuur van uw API Management-service (zoals het configureren van aangepaste domeinen, het toevoegen van CA-certificaten, schalen, configuratie van virtuele netwerken, wijzigingen in de beschikbaarheidszone en regio-toevoegingen) kunnen 15 minuten of langer duren, afhankelijk van de servicelaag en de grootte van de implementatie. Verwacht langere tijden voor een exemplaar met een groter aantal schaaleenheden of configuratie met meerdere regio's. Rolling wijzigingen in API Management worden zorgvuldig uitgevoerd om de capaciteit en beschikbaarheid te behouden.

Terwijl de service wordt bijgewerkt, kunnen andere wijzigingen in de serviceinfrastructuur niet worden aangebracht. U kunt echter API's, producten, beleid en gebruikersinstellingen configureren. De service ondervindt geen downtime van de gateway en API Management blijft zonder onderbreking service-API-aanvragen uitvoeren (behalve in de developer-laag).

Vereiste voorwaarden

Toegang tot opslagaccount configureren

Wanneer u een back-up- of herstelbewerking uitvoert, moet u de toegang tot het opslagaccount configureren. API Management ondersteunt twee toegangsmechanismen voor opslag: een Azure Storage-toegangssleutel of een door API Management beheerde identiteit.

Toegangssleutel voor opslagaccounts configureren

Azure genereert twee 512-bits toegangssleutels voor opslagaccounts voor elk opslagaccount. Deze sleutels kunnen worden gebruikt om toegang tot gegevens in uw opslagaccount te autoriseren via autorisatie van gedeelde sleutels. Zie Toegangssleutels voor opslagaccounts beheren om de sleutels weer te geven, op te halen en te beheren.

Beheerde identiteit van API Management configureren

Opmerking

Het gebruik van een beheerde API Management-identiteit voor opslagbewerkingen tijdens back-up en herstel wordt ondersteund in de REST API-versie 2021-04-01-preview van API Management of hoger.

  1. Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in voor API Management in uw API Management-exemplaar.

    • Als u een door de gebruiker toegewezen beheerde identiteit inschakelt, noteert u de client-id van de identiteit.
    • Als u een back-up maakt en herstelt naar verschillende API Management-exemplaren, schakelt u een beheerde identiteit in zowel de bron- als doelexemplaren in.
  2. Wijs de identiteit toe van de rol Inzender voor opslagblobgegevens , die is afgestemd op het opslagaccount dat wordt gebruikt voor back-up en herstel. Als u de rol wilt toewijzen, gebruikt u Azure Portal of andere Azure-hulpprogramma's.

Een back-up maken van een API Management-service

Meld u aan met Azure PowerShell.

In de volgende voorbeelden:

  • Een exemplaar van API Management met de naam myapim bevindt zich in de resourcegroep apimresourcegroup.
  • Een opslagaccount met de naam backupstorageaccount bevindt zich in de resourcegroep storageresourcegroup. Het opslagaccount heeft een container met de naam back-ups.
  • Er wordt een back-upblob gemaakt met de naam ContosoBackup.apimbackup.

Variabelen instellen in PowerShell:

$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"

Toegang met behulp van opslagtoegangssleutel

$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

Toegang met beheerde identiteit

Zie Een beheerde identiteit configureren eerder in dit artikel als u een beheerde identiteit in uw API Management-exemplaar wilt configureren voor toegang tot het opslagaccount.

Toegang met door het systeem toegewezen beheerde identiteit

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -TargetContainerName $containerName `
    -TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"

Toegang met door de gebruiker toegewezen beheerde identiteit

In dit voorbeeld bevindt een door de gebruiker toegewezen beheerde identiteit met de naam myidentity zich in de resourcegroep 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

Back-up is een langdurige bewerking die enkele minuten kan duren. Gedurende deze tijd blijft de API-gateway aanvragen verwerken, maar de status van de service is aan het bijwerken.

Een API Management-service herstellen

Waarschuwing

Vermijd wijzigingen in de serviceconfiguratie (bijvoorbeeld API's, beleid, weergave van ontwikkelaarsportal) terwijl de herstelbewerking wordt uitgevoerd. Wijzigingen kunnen worden overschreven.

In de volgende voorbeelden:

  • Een API Management-exemplaar met de naam myapim wordt hersteld vanuit de back-upblob met de naam ContosoBackup.apimbackup in opslagaccount backupstorageaccount.
  • De back-upblob bevindt zich in een container met de naam back-ups.

Variabelen instellen in PowerShell:

$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"

Toegang met behulp van opslagtoegangssleutel

$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

Toegang met beheerde identiteit

Zie Een beheerde identiteit configureren eerder in dit artikel als u een beheerde identiteit in uw API Management-exemplaar wilt configureren voor toegang tot het opslagaccount.

Toegang met door het systeem toegewezen beheerde identiteit

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
    -StorageContext $storageContext -SourceContainerName $containerName `
    -SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"

Toegang met door de gebruiker toegewezen beheerde identiteit

In dit voorbeeld bevindt een door de gebruiker toegewezen beheerde identiteit met de naam myidentity zich in de resourcegroep 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

Beperkingen

  • Herstel van een back-up is alleen gegarandeerd voor 30 dagen vanaf het moment van aanmaak.
  • Terwijl er een back-up wordt uitgevoerd, vermijdt u beheerwijzigingen in de service , zoals upgrade of downgrade van de prijscategorie, wijziging in domeinnaam en meer.
  • Wijzigingen die zijn aangebracht in de serviceconfiguratie (bijvoorbeeld API's, beleidsregels en weergave van de ontwikkelaarsportal) terwijl de back-upbewerking wordt uitgevoerd , kan worden uitgesloten van de back-up en gaat verloren.
  • Back-up legt geen vooraf geaggregeerde logboekgegevens vast die worden gebruikt in rapporten die worden weergegeven in het venster Analytics in Azure Portal.
  • Cors (Cross-Origin Resource Sharing) mag niet zijn ingeschakeld voor de Blob-service in het opslagaccount.
  • De prijscategorie van de service die wordt hersteld, moet overeenkomen met de prijscategorie van de back-upservice die wordt hersteld.

Beperkingen voor opslagnetwerken

Als de firewall is ingeschakeld voor het opslagaccount, is het raadzaam om de door het systeem toegewezen beheerde identiteit van het API Management-exemplaar te gebruiken voor toegang tot het account. Zorg ervoor dat het opslagaccount toegang verleent tot vertrouwde Azure-services.

Wat niet wordt geback-upt

De frequentie waarmee u serviceback-ups uitvoert, is van invloed op uw herstelpuntdoelstelling. Om het risico te minimaliseren, raden we aan om regelmatig back-ups te maken en back-ups op aanvraag uit te voeren zodra u wijzigingen aanbrengt in uw API-beheer.

Bekijk de volgende gerelateerde resources voor het back-up-/herstelproces: