Så här implementerar du haveriberedskap med hjälp av säkerhetskopiering och återställning i Azure API Management
Genom att publicera och hantera dina API:er via Azure API Management utnyttjar du feltolerans- och infrastrukturfunktioner som du annars skulle utforma, implementera och hantera manuellt. Azure-plattformen minskar en stor del av de potentiella felen till en bråkdel av kostnaden.
Om du vill återställa efter tillgänglighetsproblem som påverkar den region som är värd för din API Management-tjänst kan du när som helst vara redo att rekonfigurera tjänsten i en annan region. Beroende på ditt mål för återställningstid kanske du vill behålla en väntelägestjänst i en eller flera regioner. Du kan också försöka upprätthålla konfigurationen och innehållet synkroniserat med den aktiva tjänsten enligt ditt mål för återställningspunkt. Funktionerna för säkerhetskopiering och återställning av tjänster tillhandahåller de byggstenar som krävs för att implementera en strategi för haveriberedskap.
Säkerhetskopierings- och återställningsåtgärder kan också användas för API Management mellan driftmiljöer, till exempel utveckling och mellanlagring. Se till att körningsdata som användare och prenumerationer kopieras också, vilket kanske inte alltid är önskvärt.
Den här guiden visar hur du automatiserar säkerhetskopierings- och återställningsåtgärder och hur du säkerställer lyckad autentisering av säkerhetskopierings- och återställningsbegäranden Azure Resource Manager.
Viktigt
Återställningsåtgärden ändrar inte måltjänstens anpassade värdnamnskonfiguration. Vi rekommenderar att du använder samma anpassade värdnamn och TLS-certifikat för både aktiva och väntelägestjänster, så att trafiken kan dirigeras om till väntelägesinstansen genom en enkel DNS CNAME-ändring när återställningen är klar.
Säkerhetskopieringsåtgärden samlar inte in föraggregering av loggdata som används i rapporter som visas på Analytics-bladet i Azure Portal.
Varning
Varje säkerhetskopiering upphör att gälla efter 30 dagar. Om du försöker återställa en säkerhetskopia när förfalloperioden på 30 dagar har gått ut misslyckas återställningen med ett Cannot restore: backup expired meddelande.
Anteckning
I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Tillgänglighet
Viktigt
Den här funktionen är tillgänglig på nivån Premium, standard, Basic och Developer för API Management.
Autentisera Azure Resource Manager begäranden
Viktigt
Den REST API för säkerhetskopiering och återställning använder Azure Resource Manager och har en annan autentiseringsmekanism än REST-API:erna för att hantera dina API Management entiteter. Stegen i det här avsnittet beskriver hur du autentiserar Azure Resource Manager begäranden. Mer information finns i Autentisera Azure Resource Manager begäranden.
Alla uppgifter som du utför på resurser med hjälp av Azure Resource Manager måste autentiseras med Azure Active Directory med hjälp av följande steg:
- Lägg till ett program i Azure Active Directory klientorganisationen.
- Ange behörigheter för det program som du har lagt till.
- Hämta token för autentisering av begäranden till Azure Resource Manager.
Skapa ett Azure Active Directory program
Logga in på Azure-portalen.
Använd prenumerationen som innehåller din API Management-tjänstinstans och gå till Azure Portal – Appregistreringar registrera en app i Active Directory.
Anteckning
Om standardkatalogen Azure Active Directory inte visas för ditt konto kontaktar du administratören för Azure-prenumerationen för att bevilja de behörigheter som krävs för ditt konto.
Välj + Ny registrering.
På sidan Registrera ett program anger du värdena på följande sätt:
- Ange Namn till ett beskrivande namn.
- Ange Kontotyper som stöds till Endast konton i den här organisationskatalogen.
- I Omdirigerings-URI anger du en platshållar-URL, till exempel
https://resources. Det är ett obligatoriskt fält, men värdet används inte senare. - Välj Register (Registrera).
Lägga till behörigheter
När programmet har skapats väljer du API-behörigheter > + Lägg till en behörighet.
Välj Microsoft-API:er.
Välj Azure Service Management.
Klicka på Delegerade behörigheter bredvid det nyligen tillagda programmet och markera kryssrutan för Access Azure Service Management as organization users (preview) (Åtkomst till Azure Service Management som organisationsanvändare (förhandsversion).
Välj Lägg till behörigheter.
Konfigurera din app
Innan du anropar API:erna som genererar säkerhetskopieringen och återställningen måste du hämta en token. I följande exempel används NuGet-paketet Microsoft.IdentityModel.Clients.ActiveDirectory för att hämta token.
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
namespace GetTokenResourceManagerRequests
{
class Program
{
static void Main(string[] args)
{
var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/{tenant id}");
var result = authenticationContext.AcquireTokenAsync("https://management.azure.com/", "{application id}", new Uri("{redirect uri}"), new PlatformParameters(PromptBehavior.Auto)).Result;
if (result == null) {
throw new InvalidOperationException("Failed to obtain the JWT token");
}
Console.WriteLine(result.AccessToken);
Console.ReadLine();
}
}
}
Ersätt {tenant id} , och med hjälp av följande {application id} {redirect uri} anvisningar:
Ersätt
{tenant id}med klientorganisations-ID:t för Azure Active Directory som du skapade. Du kan komma åt ID:t genom att klicka Appregistreringar -> slutpunkter.
Ersätt
{application id}med det värde som du får genom att gå Inställningar sidan.Ersätt med
{redirect uri}värdet från fliken Omdirigerings-URI:er i Azure Active Directory program.När värdena har angetts ska kodexe exemplet returnera en token som liknar följande exempel:

Anteckning
Token kan upphöra att gälla efter en viss period. Kör kodexeletten igen för att generera en ny token.
Åtkomst till Azure Storage
API Management använder ett Azure Storage som du anger för säkerhetskopierings- och återställningsåtgärder. När du kör en säkerhetskopierings- eller återställningsåtgärd måste du konfigurera åtkomsten till lagringskontot. API Management två mekanismer för lagringsåtkomst: en Azure Storage åtkomstnyckel (standard) eller en API Management hanterad identitet.
Konfigurera åtkomstnyckel för lagringskonto
Anvisningar finns i Hantera åtkomstnycklar för lagringskonto.
Konfigurera API Management hanterad identitet
Anteckning
Att använda API Management hanterad identitet för lagringsåtgärder under säkerhetskopiering och återställning kräver API Management REST API 2021-04-01-preview version eller senare.
Aktivera en system-tilldelad eller användar tilldelad hanterad identitet för API Management i din API Management instans.
- Om du aktiverar en användar tilldelad hanterad identitet noterar du identitetens klient-ID.
- Om du ska backa upp och återställa till API Management instanser aktiverar du en hanterad identitet i både käll- och målinstanserna.
Tilldela identiteten som Storage blobdatadeltagare, begränsad till det lagringskonto som används för säkerhetskopiering och återställning. Om du vill tilldela rollen använder du Azure Portal andra Azure-verktyg.
Anropa säkerhetskopierings- och återställningsåtgärder
REST-API:erna är Api Management-tjänsten – Backup och Api Management-tjänsten – Återställ.
Anteckning
Säkerhetskopierings- och återställningsåtgärder kan också utföras med kommandona PowerShell Backup-AzApiManagement och Restore-AzApiManagement.
Innan du anropar åtgärderna "säkerhetskopiering och återställning" som beskrivs i följande avsnitt anger du rubriken för auktoriseringsbegäran för REST-anropet.
request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + token);
Back up an API Management service ( Back up an API Management service
Om du vill API Management en tjänst utfärdar du följande HTTP-begäran:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup?api-version={api-version}
där:
subscriptionId– ID för prenumerationen som innehåller API Management-tjänsten som du försöker backa uppresourceGroupName– namnet på resursgruppen för din Azure API Management tjänstserviceName– namnet på den API Management-tjänst som du gör en säkerhetskopia av som angavs när den skapadesapi-version- en giltig REST API version som2020-12-01eller2021-04-01-preview.
I brödtexten i begäran anger du namnet på mållagringskontot, namnet på blobcontainern, säkerhetskopieringsnamnet och lagringsåtkomsttypen. Om lagringscontainern inte finns skapas den av säkerhetskopieringen.
Åtkomst med lagringsåtkomstnyckel
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessKey": "{access key for the account}"
}
Åtkomst med hanterad identitet
Anteckning
Att använda API Management hanterad identitet för lagringsåtgärder under säkerhetskopiering och återställning kräver API Management REST API 2021-04-01-preview version eller senare.
Åtkomst med hjälp av system tilldelad hanterad identitet
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "SystemAssignedManagedIdentity"
}
Åtkomst med användar tilldelad hanterad identitet
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "UserAssignedManagedIdentity",
"clientId": "{client ID of user-assigned identity}"
}
Ange värdet för Content-Type begärandehuvudet till application/json .
Säkerhetskopiering är en långvarig åtgärd som kan ta mer än en minut att slutföra. Om begäran lyckades och säkerhetskopieringen påbörjades får du en 202 Accepted svarsstatuskod med ett Location -huvud. Skicka GET begäranden till URL:en i Location rubriken för att ta reda på åtgärdens status. När säkerhetskopieringen pågår fortsätter du att få en 202 Accepted statuskod. Svarskoden anger 200 OK att säkerhetskopieringen har slutförts.
Återställa en API Management tjänst
Om du vill API Management en tjänst från en tidigare skapad säkerhetskopia gör du följande HTTP-begäran:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/restore?api-version={api-version}
där:
subscriptionId– ID för prenumerationen som innehåller API Management-tjänsten som du återställer en säkerhetskopia tillresourceGroupName– namnet på den resursgrupp som innehåller Azure API Management-tjänsten som du återställer en säkerhetskopia tillserviceName– namnet på den API Management som återställs till angivet när den skapadesapi-version– en giltig REST API version, till exempel2020-12-01eller2021-04-01-preview
I brödtexten i begäran anger du namnet på det befintliga lagringskontot, namnet på blobcontainern, säkerhetskopieringsnamnet och lagringsåtkomsttypen.
Åtkomst med hjälp av lagringsåtkomstnyckel
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessKey": "{access key for the account}"
}
Åtkomst med hanterad identitet
Anteckning
Att använda API Management hanterad identitet för lagringsåtgärder under säkerhetskopiering och återställning kräver API Management REST API 2021-04-01-preview version eller senare.
Åtkomst med system tilldelad hanterad identitet
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "SystemAssignedManagedIdentity"
}
Åtkomst med användar tilldelad hanterad identitet
{
"storageAccount": "{storage account name for the backup}",
"containerName": "{backup container name}",
"backupName": "{backup blob name}",
"accessType": "UserAssignedManagedIdentity",
"clientId": "{client ID of user-assigned identity}"
}
Ange värdet för Content-Type begärandehuvudet till application/json .
Återställning är en långvarig åtgärd som kan ta upp till 30 minuter eller mer att slutföra. Om begäran lyckades och återställningsprocessen påbörjades får du en 202 Accepted svarsstatuskod med ett Location -huvud. Gör GET-begäranden till URL:en i Location rubriken för att ta reda på åtgärdens status. När återställningen pågår fortsätter du att få en 202 Accepted statuskod. Svarskoden 200 OK anger att återställningsåtgärden har slutförts.
Viktigt
SKU:n för tjänsten som återställs till måste matcha SKU:n för den säkerhetskopierade tjänst som återställs.
Ändringar som görs i tjänstkonfigurationen (till exempel API:er, principer, utseendet på utvecklarportalen) medan återställningsåtgärden pågår kan skrivas över.
Begränsningar när du gör en säkerhetskopierings- eller återställningsbegäran
När säkerhetskopieringen pågår bör du undvika hanteringsändringar i tjänsten, till exempel uppgradering eller nedgradering av SKU, ändring av domännamn med mera.
Återställning av en säkerhetskopia garanteras endast i 30 dagar sedan den skapades.
Ändringar som görs i tjänstkonfigurationen (till exempel API:er, principer och utvecklarportalens utseende) medan säkerhetskopieringen pågår kan uteslutas från säkerhetskopieringen och går förlorade.
Resursdelning för korsande ursprung (CORS) ska inte aktiveras på Blob Service i Azure Storage konto.
SKU:n för tjänsten som återställs till måste matcha SKU:n för den säkerhetskopierade tjänst som återställs.
Storage nätverksbegränsningar
Åtkomst med hjälp av lagringsåtkomstnyckel
Om lagringskontot är brandvägg aktiverat och en lagringsnyckel används för åtkomst måste kunden Tillåta att uppsättningen med AZURE API Management-kontrollplanets IP-adresser på lagringskontot för att säkerhetskopiering eller återställning ska fungera. Lagringskontot kan finnas i valfri Azure-region förutom den där API Management-tjänsten finns. Om API Management-tjänsten till exempel finns i USA, västra kan Azure Storage-kontot vara i USA, västra 2 och kunden måste öppna kontrollplanets IP-adress 13.64.39.16 (API Management kontrollplanets IP-adress för USA, västra) i brandväggen. Det beror på att begäranden till Azure Storage inte SNATed till en offentlig IP-adress från beräkning (Azure API Management-kontrollplanet) i samma Azure-region. Lagringsbegäranden mellan regioner kommer att SNATed till den offentliga IP-adressen.
Åtkomst med hanterad identitet
Om en API Management system-tilldelad hanterad identitet används för åtkomst till ett brandväggsaktiverad lagringskonto, 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 Azure API Management REST API att regelbundet hämta analysrapporter för säker lagring.
- Anpassade TLS/SSL-domäncertifikat.
- Anpassade CA-certifikat, som innehåller mellanliggande certifikat eller rotcertifikat som laddats upp av kunden.
- Inställningar för integrering av virtuella nätverk.
- Konfiguration av hanterad identitet.
- Azure Monitor diagnostikkonfiguration.
- Inställningar för protokoll och chiffer.
- Innehåll på utvecklarportalen.
Hur ofta du utför tjänstsäkerhetskopior påverkar ditt mål för återställningspunkten. För att minimera det rekommenderar vi att du implementerar regelbundna säkerhetskopieringar och säkerhetskopieringar på begäran när du har gjort ändringar i 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
- Flytta Azure-API Management mellan regioner
API Management Premium har även stöd för zonredundans ,vilket ger återhämtning och hög tillgänglighet till en tjänstinstans i en specifik Azure-region (plats).