Noodherstel implementeren met back-up en herstellen van services in Azure API Management

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

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

Back-up- en herstelbewerkingen kunnen ook worden gebruikt voor het repliceren 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.

Deze handleiding laat zien hoe u back-up- en herstelbewerkingen automatiseert en hoe u ervoor kunt zorgen dat back-up- en herstelaanvragen met succes worden Azure Resource Manager.

Belangrijk

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

Back-upbewerking legt geen vooraf geaggregeerde logboekgegevens vast die worden gebruikt in rapporten die worden weergegeven op de blade Analyse in de Azure Portal.

Waarschuwing

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

Notitie

In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Beschikbaarheid

Belangrijk

Deze functie is beschikbaar in de Premium-, Standard-, Basic- en Developer-lagen van API Management.

Aanvragen voor Azure Resource Manager authenticeren

Belangrijk

De REST API voor back-up en herstel maakt gebruik van Azure Resource Manager en heeft een ander verificatiemechanisme dan de REST API's voor het beheren API Management entiteiten. In de stappen in deze sectie wordt beschreven hoe u Azure Resource Manager verifiëren. Zie Authenticating Azure Resource Manager requests (Aanvragen Azure Resource Manager authenticeren) voor meer informatie.

Alle taken die u op resources uitvoert met behulp van de Azure Resource Manager moeten worden geverifieerd met Azure Active Directory met behulp van de volgende stappen:

  • Voeg een toepassing toe aan de Azure Active Directory tenant.
  • Stel machtigingen in voor de toepassing die u hebt toegevoegd.
  • Haal het token op voor het authenticeren van aanvragen Azure Resource Manager.

Een Azure Active Directory-toepassing maken

  1. Meld u aan bij de Azure-portal.

  2. Gebruik het abonnement dat uw API Management service-exemplaar bevat en navigeer naar de Azure Portal - App-registraties een app te registreren in Active Directory.

    Notitie

    Als de Azure Active Directory niet zichtbaar is voor uw account, neem dan contact op met de beheerder van het Azure-abonnement om de vereiste machtigingen voor uw account te verlenen.

  3. Selecteer + Nieuwe registratie.

  4. Stel op de pagina Een toepassing registreren de waarden als volgt in:

    • Stel Naam in op een betekenisvolle naam.
    • Stel Ondersteunde accounttypen in op Alleen accounts in deze organisatiemap.
    • Voer in Omleidings-URI een tijdelijke aanduiding in, zoals https://resources . Het is een vereist veld, maar de waarde wordt later niet gebruikt.
    • Selecteer Registreren.

Machtigingen toevoegen

  1. Zodra de toepassing is gemaakt, selecteert u API-machtigingen > + Een machtiging toevoegen.

  2. Selecteer Microsoft API's.

  3. Selecteer Azure Service Management.

    Schermopname die laat zien hoe u app-machtigingen toevoegt.

  4. Klik op Gedelegeerde machtigingen naast de zojuist toegevoegde toepassing en vink het selectievakje Toegang tot Azure Service Management als organisatiegebruikers (preview) aan.

    Schermopname van het toevoegen van gedelegeerde app-machtigingen.

  5. Selecteer Machtigingen toevoegen.

Uw app configureren

Voordat u de API's aanroept die de back-up en herstel genereren, moet u een token krijgen. In het volgende voorbeeld wordt het NuGet-pakket Microsoft.IdentityModel.Clients.ActiveDirectory gebruikt om het token op te halen.

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();
        }
    }
}

Vervang {tenant id} , en met behulp van de volgende {application id} {redirect uri} instructies:

  1. Vervang {tenant id} door de tenant-id van de Azure Active Directory die u hebt gemaakt. U kunt toegang krijgen tot de id door op App-registraties -> eindpunten te klikken.

    Eindpunten

  2. Vervang {application id} door de waarde die u krijgt door naar de pagina Instellingen navigeren.

  3. Vervang door {redirect uri} de waarde van het tabblad Omleidings-URI's van uw Azure Active Directory toepassing.

    Zodra de waarden zijn opgegeven, moet het codevoorbeeld een token retourneren dat lijkt op het volgende voorbeeld:

    Token

    Notitie

    Het token kan na een bepaalde periode verlopen. Voer het codevoorbeeld opnieuw uit om een nieuw token te genereren.

Toegang tot Azure Storage

API Management maakt gebruik van een Azure Storage-account dat u opgeeft voor back-up- en herstelbewerkingen. Wanneer u een back-up- of herstelbewerking wilt uitvoeren, moet u de toegang tot het opslagaccount configureren. API Management ondersteunt twee toegangsmechanismen voor opslag: een Azure Storage-toegangssleutel (de standaardinstelling) of een API Management beheerde identiteit.

Toegangssleutel voor opslagaccount configureren

Zie Toegangssleutels voor opslagaccounts beheren voor stappen.

Een API Management identiteit configureren

Notitie

Voor het gebruik API Management beheerde identiteit voor opslagbewerkingen tijdens back-up en herstel is een API Management REST API of 2021-04-01-preview hoger vereist.

  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 inschakelen, moet u de client-id van de identiteit noteren.
    • Als u een back-up maakt van en herstelt naar verschillende API Management exemplaren, moet u een beheerde identiteit inschakelen in zowel de bron- als doel-exemplaren.
  2. Wijs de identiteit toe aan Storage rol Blob Data Contributor, die is toegewezen aan het opslagaccount dat wordt gebruikt voor back-up en herstel. Als u de rol wilt toewijzen, gebruikt u de Azure Portal of andere Azure-hulpprogramma's.

De back-up- en herstelbewerkingen aanroepen

De REST API's zijn API Management Service - Backup en API Management Service - Restore.

Notitie

Back-up- en herstelbewerkingen kunnen ook worden uitgevoerd met respectievelijk de opdrachten PowerShell Backup-AzApiManagement en Restore-AzApiManagement.

Voordat u de bewerkingen 'back-up en herstel' aanroept die in de volgende secties worden beschreven, stelt u de header voor de autorisatieaanvraag voor uw REST-aanroep in.

request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + token);

Een back-up maken API Management service

Als u een back-up wilt API Management service de volgende HTTP-aanvraag uit:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup?api-version={api-version}

Hierbij

  • subscriptionId - Id van het abonnement dat de API Management service waar u een back-up van probeert te maken
  • resourceGroupName - naam van de resourcegroep van uw Azure API Management service
  • serviceName - de naam van de API Management-service die u een back-up maakt van die is opgegeven op het moment dat deze wordt gemaakt
  • api-version - een geldige REST API-versie, 2020-12-01 zoals of 2021-04-01-preview .

Geef in de body van de aanvraag de naam van het doelopslagaccount, de naam van de blobcontainer, de back-upnaam en het toegangstype voor de opslag op. Als de opslagcontainer niet bestaat, wordt deze gemaakt door de back-upbewerking.

Toegang met toegangssleutel voor opslag

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessKey": "{access key for the account}"
}

Toegang met behulp van beheerde identiteit

Notitie

Voor het gebruik API Management beheerde identiteit voor opslagbewerkingen tijdens back-up en herstel is een API Management REST API of 2021-04-01-preview hoger vereist.

Toegang met behulp van een door het systeem toegewezen beheerde identiteit

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessType": "SystemAssignedManagedIdentity"
}

Toegang met behulp van door de gebruiker toegewezen beheerde identiteit

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessType": "UserAssignedManagedIdentity",
    "clientId": "{client ID of user-assigned identity}"
}

Stel de waarde van de Content-Type aanvraagheader in op application/json .

Back-up is een langdurige bewerking die langer dan een minuut kan duren. Als de aanvraag is geslaagd en het back-upproces is gestart, ontvangt u een 202 Accepted antwoordstatuscode met een Location header. Aanvragen GET indienen bij de URL in de header om de status van de bewerking te weten te Location komen. Terwijl de back-up wordt uitgevoerd, blijft u een 202 Accepted statuscode ontvangen. Een antwoordcode van 200 OK geeft aan dat de back-upbewerking is voltooid.

Een API Management herstellen

Als u een API Management wilt herstellen vanuit een eerder gemaakte back-up, moet u de volgende HTTP-aanvraag indienen:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/restore?api-version={api-version}

Hierbij

  • subscriptionId - Id van het abonnement dat de API Management service bevat waar u een back-up naar herstelt
  • resourceGroupName - naam van de resourcegroep met de Azure API Management-service waar u een back-up naar herstelt
  • serviceName : de naam van de API Management service die wordt hersteld in opgegeven tijdens het maken
  • api-version : een geldige REST API zoals 2020-12-01 of 2021-04-01-preview

Geef in de aanvraag de naam van het bestaande opslagaccount, de naam van de blobcontainer, de back-upnaam en het toegangstype voor de opslag op.

Toegang met behulp van toegangssleutel voor opslag

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessKey": "{access key for the account}"
}

Toegang met behulp van beheerde identiteit

Notitie

Voor het gebruik API Management beheerde identiteit voor opslagbewerkingen tijdens back-up en herstel is een API Management REST API versie 2021-04-01-preview of hoger vereist.

Toegang met behulp van door het systeem toegewezen beheerde identiteit

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessType": "SystemAssignedManagedIdentity"
}

Toegang met behulp van door de gebruiker toegewezen beheerde identiteit

{
    "storageAccount": "{storage account name for the backup}",
    "containerName": "{backup container name}",
    "backupName": "{backup blob name}",
    "accessType": "UserAssignedManagedIdentity",
    "clientId": "{client ID of user-assigned identity}"
}

Stel de waarde van de Content-Type aanvraagheader in op application/json .

Herstellen is een langdurige bewerking die maximaal 30 of meer minuten kan duren. Als de aanvraag is geslaagd en het herstelproces is gestart, ontvangt u een 202 Accepted antwoordstatuscode met een Location header. Maak GET-aanvragen naar de URL in de Location header om de status van de bewerking te vinden. Terwijl het herstellen wordt uitgevoerd, blijft u een 202 Accepted statuscode ontvangen. Een antwoordcode van 200 OK geeft aan dat de herstelbewerking is voltooid.

Belangrijk

De SKU van de service die wordt hersteld in moet overeenkomen met de SKU van de back-upservice die wordt hersteld.

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

Beperkingen bij het maken van een back-up- of herstelaanvraag

  • Terwijl de back-up wordt uitgevoerd, vermijdt u beheerwijzigingen in de service, zoals het upgraden of downgraden van de SKU, het wijzigen van de domeinnaam en meer.

  • Het herstellen van een back-up wordt slechts 30 dagen na het maken ervan gegarandeerd.

  • Wijzigingen in de serviceconfiguratie (bijvoorbeeld API's, beleidsregels en het uiterlijk van de ontwikkelaarsportal) terwijl de back-upbewerking wordt uitgevoerd, kunnen worden uitgesloten van de back-up en gaan verloren.

  • Cross-Origin Resource Sharing (CORS) mag niet zijn ingeschakeld op de Blob-service in het Azure Storage account.

  • De SKU van de service die wordt hersteld in moet overeenkomen met de SKU van de back-upservice die wordt hersteld.

Storage netwerkbeperkingen

Toegang met behulp van toegangssleutel voor opslag

Als de firewall van het opslagaccount is ingeschakeld en er een opslagsleutel wordt gebruikt voor toegang, moet de klant de set IP-adressen van het Azure API Management-besturingsvlak in het opslagaccount toestaan om een back-up te maken of te herstellen. Het opslagaccount kan zich in elke Azure-regio bevinden, behalve het account API Management service. Als de API Management-service zich bijvoorbeeld in VS - west bevinden, kan het Azure Storage-account zich in VS - west 2 bevinden en moet de klant het IP-adres van het besturingsvlak 13.64.39.16 (API MANAGEMENT CONTROL PLANE IP van VS - west) openen in de firewall. Dit komt doordat de aanvragen voor Azure Storage niet worden geSNAT naar een openbaar IP-adres vanuit rekenkracht (Azure API Management besturingsvlak) in dezelfde Azure-regio. Opslagaanvragen tussen regio's worden via SNAT naar het openbare IP-adres geSNAT.

Toegang met behulp van beheerde identiteit

Als een API Management door het systeem toegewezen beheerde identiteit wordt gebruikt voor toegang tot een opslagaccount met firewall-ondersteuning, moet u ervoor zorgen dat het opslagaccount toegang verleent tot vertrouwde Azure-services.

Er wordt geen back-up van de back-up van de back-up

De frequentie waarmee u serviceback-ups moet uitvoeren, is van invloed op uw herstelpuntdoelstelling. Om dit te minimaliseren, raden we u aan om regelmatige back-ups te implementeren en back-ups op aanvraag uit te voeren nadat u wijzigingen hebt aangebracht in API Management service.

Volgende stappen

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

API Management Premium-laag ondersteunt ook zone-redundantie,wat tolerantie en hoge beschikbaarheid biedt voor een service-exemplaar in een specifieke Azure-regio (locatie).