Implementace zotavení po havárii pomocí zálohování a obnovení služby ve službě Azure API Management

Publikováním a správou rozhraní API přes Azure API Management využíváte odolnost proti chybám a možnosti infrastruktury, které byste jinak navrhovat, implementovat a spravovat ručně. Platforma Azure zmírňuje zlomek potenciálních selhání za zlomek nákladů.

Pokud se chcete zotavit z problémů s dostupností, které ovlivňují oblast hostovanou API Management, buďte připraveni kdykoli znovu skonstruovat vaši službu 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 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 API Management služby mezi provozními prostředími, jako je například vývoj a pracovní prostředí. Dejte pozor, aby se zkopírovaná také data modulu runtime, jako jsou uživatelé a předplatná, což nemusí být vždy žádoucí.

Tato příručka ukazuje, jak automatizovat operace zálohování a obnovení a jak zajistit úspěšné ověřování žádostí o zálohování a obnovení pomocí Azure Resource Manager.

Důležité

Operace obnovení nezmě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 se po dokončení operace obnovení provoz mohl pomocí jednoduché změny DNS CNAME přesměrovat na pohotovostní instanci.

Operace zálohování nezachycuje předem agregovaná data protokolů používaná v sestavách zobrazených v okně Analýza v Azure Portal.

Upozornění

Platnost každé zálohy vyprší po 30 dnech. Pokud se pokusíte obnovit zálohu po uplynutí 30denního období vypršení platnosti, obnovení selže se Cannot restore: backup expired zprávou.

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Dostupnost

Důležité

tato funkce je dostupná na úrovních API Management Premium, Standard, Basic a Developer .

Ověřování Azure Resource Manager požadavků

Důležité

Služba REST API zálohování a obnovení používá Azure Resource Manager a má jiný mechanismus ověřování než rozhraní REST API pro správu vašich API Management entit. Kroky v této části popisují, jak ověřovat Azure Resource Manager požadavky. Další informace najdete v tématu Ověřování Azure Resource Manager požadavků.

Všechny úlohy, které provedete s prostředky pomocí Azure Resource Manager musí být ověřeny Azure Active Directory pomocí následujícího postupu:

  • Přidejte aplikaci do Azure Active Directory tenanta.
  • Nastavte oprávnění pro aplikaci, kterou jste přidali.
  • Získejte token pro ověřování požadavků na Azure Resource Manager.

Vytvoření Azure Active Directory aplikace

  1. Přihlaste se k webu Azure Portal.

  2. Pomocí předplatného, které obsahuje API Management instanci služby, přejděte na Azure Portal – Registrace aplikací a zaregistrujte aplikaci ve službě Active Directory.

    Poznámka

    Pokud Azure Active Directory váš účet nezobrazí výchozí adresář, obraťte se na správce předplatného Azure a udělte mu požadovaná oprávnění.

  3. Vyberte + Nová registrace.

  4. Na stránce Zaregistrovat aplikaci nastavte hodnoty následujícím způsobem:

    • Nastavte Název na smysluplný název.
    • Nastavte Podporované typy účtů na Účty pouze v tomto organizačním adresáři.
    • Do pole Identifikátor URI pro přesměrování zadejte zástupné adresy URL, například https://resources . Je to povinné pole, ale hodnota se později nebude používat.
    • Vyberte Zaregistrovat.

Přidání oprávnění

  1. Po vytvoření aplikace vyberte Oprávnění rozhraní API+ > Přidat oprávnění.

  2. Vyberte Rozhraní API Microsoftu.

  3. Vyberte Správa služeb Azure.

    Snímek obrazovky, který ukazuje, jak přidat oprávnění aplikace

  4. Klikněte na Delegovaná oprávnění vedle nově přidané aplikace a zaškrtněte políčko Přístup ke správě služeb Azure jako uživatelé organizace (Preview).

    Snímek obrazovky znázorňuje přidání delegovaných oprávnění aplikace

  5. Vyberte Přidat oprávnění.

Konfigurace aplikace

Před voláním rozhraní API, která generují zálohování a obnovení, musíte získat token. Následující příklad používá k načtení tokenu NuGet Microsoft.IdentityModel.Clients.ActiveDirectory.

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

Nahraďte {tenant id} , a podle následujících {application id} {redirect uri} pokynů:

  1. Nahraďte {tenant id} ID tenanta aplikace, Azure Active Directory jste vytvořili. K ID můžete získat přístup kliknutím na Registrace aplikací -> koncových bodů.

    Koncové body

  2. Nahraďte {application id} hodnotou, kterou získáte, přechodem na Nastavení stránky.

  3. Nahraďte {redirect uri} hodnotou z karty Identifikátory URI přesměrování vaší Azure Active Directory aplikace.

    Po nastavení hodnot by měl příklad kódu vrátit token podobný následujícímu příkladu:

    Token

    Poznámka

    Platnost tokenu může po určité době vypršet. Znovu spusťte ukázku kódu a vygenerování nového tokenu.

Přístup k Azure Storage

API Management používá účet Azure Storage, který zadáte pro operace zálohování a obnovení. Při spuštění operace zálohování nebo obnovení musíte nakonfigurovat přístup k účtu úložiště. API Management podporuje dva mechanismy přístupu k úložišti: Azure Storage přístupový klíč (výchozí) nebo API Management identitu.

Konfigurace přístupového klíče účtu úložiště

Postup najdete v tématu Správa přístupových klíčů k účtu úložiště.

Konfigurace API Management identity

Poznámka

Použití spravované API Management pro operace úložiště během zálohování a obnovení vyžaduje API Management REST API 2021-04-01-preview verzi nebo novější.

  1. Povolte spravovanou identitu přiřazenou systémem nebo uživatelem pro API Management ve vaší API Management instanci.

    • 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í API Management, povolte spravovanou identitu ve zdrojové i cílové instanci.
  2. Přiřaďte identitě roli přispěvatele Storage objektů blob s oborem na účet úložiště, který se používá pro zálohování a obnovení. Pokud chcete přiřadit roli, použijte Azure Portal nebo jiné nástroje Azure.

Volání operací zálohování a obnovení

Rozhraní REST API jsou Služba Api Management – Backup a Služba Api Management – Obnovení.

Poznámka

Operace zálohování a obnovení je možné provádět také pomocí příkazů PowerShellu Backup-AzApiManagement a Restore-AzApiManagement.

Před voláním operací zálohování a obnovení popsaných v následujících částech nastavte hlavičku žádosti o autorizaci pro vaše volání REST.

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

Zálohování API Management služby

Pokud chcete zálohovat službu API Management, vydá se následující požadavek HTTP:

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

kde:

  • subscriptionId – ID předplatného, které obsahuje API Management, kterou se pokoušíte zálohovat
  • resourceGroupName – název skupiny prostředků vaší služby Azure API Management Service
  • serviceName – název služby API Management, kterou zálohu za zálohu zadáte v době jejího vytvoření.
  • api-version – platná REST API, jako je 2020-12-01 nebo 2021-04-01-preview .

V textu požadavku zadejte název cílového účtu úložiště, název kontejneru objektů blob, název zálohy a typ přístupu k úložišti. Pokud kontejner úložiště neexistuje, operace zálohování ho vytvoří.

Přístup pomocí přístupového klíče k úložišti

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

Přístup s využitím spravované identity

Poznámka

Použití spravované API Management pro operace úložiště během zálohování a obnovení vyžaduje API Management REST API 2021-04-01-preview verzi nebo novější.

Přístup pomocí spravované identity přiřazené systémem

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

Přístup s využitím spravované identity přiřazené uživatelem

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

Nastavte hodnotu Content-Type hlavičky požadavku na application/json .

Zálohování je dlouhodobá operace, která může trvat déle než minutu. Pokud byl požadavek úspěšný a proces zálohování začal, obdržíte stavový kód odpovědi 202 Accepted s Location hlavičkou . Proveďte GET požadavky na adresu URL v hlavičce, abyste Location zjistili stav operace. Zatímco probíhá zálohování, budete i nadále dostávat 202 Accepted stavový kód. Kód odpovědi označuje 200 OK úspěšné dokončení operace zálohování.

Obnovení API Management služby

Pokud chcete obnovit API Management z dříve vytvořené zálohy, proveďte následující požadavek HTTP:

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

kde:

  • subscriptionId – ID předplatného, které obsahuje API Management služby, do které obnovujete zálohu
  • resourceGroupName – název skupiny prostředků, která obsahuje službu Azure API Management, do které obnovujete zálohu.
  • serviceName – název služby API Management, která se obnovuje v době jejího vytvoření.
  • api-version – platná REST API verze, například 2020-12-01 nebo 2021-04-01-preview

V těle žádosti zadejte název existujícího účtu úložiště, název kontejneru objektů blob, název zálohy a typ přístupu úložiště.

Přístup pomocí přístupového klíče k úložišti

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

Přístup pomocí spravované identity

Poznámka

Použití spravované identity API Management pro operace úložiště během zálohování a obnovy vyžaduje API Management REST API verzi 2021-04-01-preview nebo novější.

Přístup pomocí spravované identity přiřazené systémem

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

Přístup pomocí spravované identity přiřazené uživatelem

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

Nastavte hodnotu Content-Type záhlaví požadavku na application/json .

Obnovení je dlouhodobá operace, která může trvat až 30 minut, než se dokončí. Pokud je požadavek úspěšný a proces obnovení začal, obdržíte 202 Accepted kód stavu odpovědi s Location hlavičkou. Chcete-li zjistit stav operace, proveďte v hlavičce požadavky GET na adresu URL Location . I když probíhá obnovení, budete mít i nadále obdržet 202 Accepted stavový kód. Kód odpovědi 200 OK indikuje úspěšné dokončení operace obnovení.

Důležité

SKU služby, která se má obnovit do, se musí shodovat s SKU obnovované zálohované služby.

Změny v konfiguraci služby (například rozhraní API, zásady, vzhled portálu pro vývojáře), zatímco probíhá operace obnovení, mohou být přepsány.

Omezení při vytváření žádosti o zálohování nebo obnovení

  • Zatímco probíhá zálohování, Vyhněte se změnám správy ve službě , jako je například upgrade SKU nebo downgrading, změna v názvu domény a další.

  • Obnovení zálohy je zaručeno pouze po dobu 30 dnů od okamžiku jejího vytvoření.

  • Změny v konfiguraci služby (například rozhraní API, zásady a vzhled portálu pro vývojáře), zatímco probíhá operace zálohování, mohou být vyloučeny ze zálohy a budou ztraceny.

  • sdílení prostředků mezi zdroji (CORS) by nemělo být povolené u služby Blob Service v účtu Azure Storage.

  • SKU služby, která se má obnovit do, se musí shodovat s SKU obnovované zálohované služby.

omezení Storage sítě

Přístup pomocí přístupového klíče k úložišti

Pokud má účet úložiště zapnutou bránu firewall a klíč úložiště se používá pro přístup, musí zákazník Povolit sadu IP adres řídicích rovin Azure API Management na svém účtu úložiště, aby fungovaly zálohování nebo obnovení. Účet úložiště může být v libovolné oblasti Azure s výjimkou toho, kde se nachází služba API Management. pokud je například služba API Management v Západní USA, účet Azure Storage může být v Západní USA 2 a zákazník musí v bráně firewall otevřít 13.64.39.16ou ip plochu ovládacího prvku (API Management ip rovina Západní USA). důvodem je to, že požadavky na Azure Storage nejsou před jejich vstupem do veřejné IP adresy z compute (rovina ovládacího prvku Azure API Management) ve stejné oblasti Azure. Požadavky na úložiště mezi jednotlivými oblastmi se před jejich vstupem na veřejnou IP adresu.

Přístup pomocí spravované identity

Pokud se pro přístup k účtu úložiště s povoleným bránou firewall používá API Management spravovaná identita přiřazená systémem, ujistěte se, že účet úložiště uděluje přístup k důvěryhodným službám Azure.

Co se nezálohuje

Frekvence, se kterou provádíte zálohování služby, má vliv na cíl bodu obnovení. Pro minimalizaci doporučujeme, abyste implementovali pravidelné zálohování a prováděli zálohování na vyžádání po provedení změn ve službě API Management.

Další kroky

Podívejte se na následující související prostředky pro proces zálohování nebo obnovení:

API Management Premium vrstva také podporuje redundanci zóny, která poskytuje odolnost a vysokou dostupnost instance služby v konkrétní oblasti Azure (umístění).