Azure API Management'ta hizmet yedekleme ve geri yükleme işlevlerini kullanarak acil durumda kurtarma

API'lerinizi Azure API Management aracılığıyla yayımlar ve yönetirken, hataya dayanıklılık ve aksi takdirde el ile tasarlama, uygulama ve yönetme gibi altyapı özelliklerini kullanabilirsiniz. Azure platformu, olası hataların çok büyük bir bölümünü maliyetin çok daha düşük bir oranıyla hafifletir.

Hizmetinizi barındıran bölgeyi etkileyen kullanılabilirlik API Management kurtarmak için, hizmetinizi herhangi bir zamanda başka bir bölgede yeniden yetkilendirmeye hazır olun. Kurtarma süresi hedefinize bağlı olarak, bekleme hizmetini bir veya daha fazla bölgede tutmak iyi olabilir. Ayrıca kurtarma noktası hedefinize göre yapılandırmalarını ve içeriklerini etkin hizmetle eşit durumda sürdürmeyi de çalışabilirsiniz. Hizmet yedekleme ve geri yükleme özellikleri, olağanüstü durum kurtarma stratejisi uygulamak için gerekli yapı taşlarını sağlar.

Yedekleme ve geri yükleme işlemleri, geliştirme ve hazırlama API Management ortamlar arasında hizmet yapılandırmasını çoğaltmak için de kullanılabilir. Kullanıcılar ve abonelikler gibi çalışma zamanı verileri de kopyalanır ve bu her zaman tercih edilmez.

Bu kılavuzda, yedekleme ve geri yükleme işlemlerini otomatikleştirmenin ve yedekleme ve geri yükleme isteklerinin başarılı bir şekilde kimlik doğrulamadan nasıl emin Azure Resource Manager.

Önemli

Geri yükleme işlemi hedef hizmetin özel ana bilgisayar adı yapılandırmasını değiştirmez. Geri yükleme işlemi tamamlandıktan sonra trafiğin basit bir DNS CNAME değişikliğiyle bekleme örneğine yeniden yönlendirilene kadar hem etkin hem de beklemede olan hizmetler için aynı özel ana bilgisayar adı ve TLS sertifikasını kullanmanızı öneririz.

Yedekleme işlemi, kümenin Analiz dikey penceresinde gösterilen raporlarda kullanılan önceden toplanmış günlük verilerini Azure portal.

Uyarı

Her yedeklemenin süresi 30 gün sonra dolar. 30 günlük süre sonu süresi dolduktan sonra bir yedeklemeyi geri yükleme girişiminde bulunduysanız, geri yükleme bir iletiyle başarısız Cannot restore: backup expired olur.

Not

Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Kullanılabilirlik

Önemli

Bu özellik, API Management Premium, Standart, temel ve Geliştirici katmanlarında kullanılabilir.

İsteklerin Azure Resource Manager doğrulama

Önemli

Yedekleme REST API geri yükleme için kullanılan Azure Resource Manager rest API'lerden farklı bir kimlik doğrulama mekanizmasına sahip olan API Management vardır. Bu bölümdeki adımlarda, isteklerin kimliğini doğrulama Azure Resource Manager anlatılacaktır. Daha fazla bilgi için bkz. İstek Azure Resource Manager doğrulama.

Aşağıdaki adımları kullanarak kaynakları kullanarak Azure Resource Manager tüm Azure Active Directory doğrulanmış olması gerekir:

  • Uygulamanın kiracısına Azure Active Directory ekleyin.
  • Eklenen uygulama için izinleri ayarlayın.
  • İsteklerin kimlik doğrulama için belirteci Azure Resource Manager.

Azure Active Directory oluşturma

  1. Azure Portal oturum açın.

  2. API Management hizmeti örneğinizi içeren aboneliği kullanarak Azure portal - Uygulama kayıtları Active Directory'ye kaydetmeye gidin.

    Not

    Varsayılan Azure Active Directory dizini hesabınız tarafından görünmüyorsa, hesabınıza gerekli izinleri vermek için Azure aboneliğinin yöneticisine başvurun.

  3. + Yeni kayıt'ı seçin.

  4. Uygulama kaydetme sayfasında değerleri aşağıdaki gibi ayarlayın:

    • Ad'a anlamlı bir ad yazın.
    • Desteklenen hesap türleri'i Yalnızca bu kuruluş dizininde hesaplar olarak ayarlayın.
    • Yeniden Yönlendirme URI'si alanına gibi bir yer tutucu URL https://resources girin. Bu gerekli bir alandır ancak değer daha sonra kullanılmaz.
    • Kaydet’i seçin.

İzin ekleme

  1. Uygulama oluşturulduktan sonra API izinleri + İzin > ekle'yi seçin.

  2. Microsoft API'leri'ne seçin.

  3. Azure Hizmet Yönetimi'ne seçin.

    Uygulama izinlerini eklemeyi gösteren ekran görüntüsü.

  4. Yeni eklenen uygulamanın yanındaki Temsilci İzinleri'ne tıklayın ve Azure Hizmet Yönetimi'ne kuruluş kullanıcıları olarak erişim (önizleme) kutusunu işaretleyin.

    Temsilcili uygulama izinleri eklemeyi gösteren ekran görüntüsü.

  5. İzin ekle'yi seçin.

Uygulama yapılandırma

Yedeklemeyi ve geri yüklemeyi oluşturan API'leri çağırmadan önce bir belirteç alasiniz. Aşağıdaki örnek, belirteci almak için Microsoft.IdentityModel.Clients.ActiveDirectory NuGet paketini kullanır.

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

, {tenant id} {application id} ve yerine aşağıdaki yönergeleri {redirect uri} uygulayın:

  1. yerine {tenant id} oluşturduğunuz uygulamanın Azure Active Directory kimliğini girin. Uç Noktalar'a tıklayarak Uygulama kayıtları -> erişebilirsiniz.

    Uç Noktalar

  2. değerini, {application id} yeni sayfa sayfasına giderek Ayarlar.

  3. değerini, {redirect uri} uygulama uygulamanın Yeniden Yönlendirme URL'leri sekmesindeki Azure Active Directory değiştirin.

    Değerler belirtildiktan sonra kod örneği aşağıdaki örnektekine benzer bir belirteç getirilmelidir:

    Belirteç

    Not

    Belirteci belirli bir süre sonra sona erer. Yeni bir belirteç oluşturmak için kod örneğini yeniden yürütün.

Azure Depolama'a erişme

API Management yedekleme ve Depolama için belirttiğiniz bir Azure depolama hesabı kullanır. Yedekleme veya geri yükleme işlemi çalıştırıldığında depolama hesabına erişimi yapılandırmanız gerekir. API Management iki depolama erişim mekanizmasını destekler: Azure Depolama erişim anahtarı (varsayılan) veya API Management yönetilen kimlik.

Depolama hesabı erişim anahtarını yapılandırma

Adımlar için bkz. Depolama hesabı erişim anahtarlarını yönetme.

Yönetilen API Management yapılandırma

Not

Yedekleme ve geri yükleme API Management depolama işlemleri için yönetilen bir kimlik kullanmak için API Management REST API veya 2021-04-01-preview sonraki bir sürümü gerekir.

  1. Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği, API Management için API Management etkinleştirin.

    • Kullanıcı tarafından atanan yönetilen kimliği etkinleştirirsanız, kimliğin İstemci Kimliğini not alır.
    • Farklı örneklerde yedekleme ve geri yükleme API Management, hem kaynak hem de hedef örneklerde yönetilen kimliği etkinleştirin.
  2. Kimliği, yedekleme Depolama kullanılan depolama hesabı kapsamındaki Blob Verileri Katkıda Bulunanı rolüne attayabilirsiniz. Rolü atamak için Azure portal Azure araçlarını kullanın.

Yedekleme ve geri yükleme işlemlerini çağırma

REST API'leri Api Management Hizmeti - Yedekleme ve Api Management Hizmeti - Geri Yükleme'dir.

Not

Yedekleme ve geri yükleme işlemleri sırasıyla PowerShell Backup-AzApiManagement ve Restore-AzApiManagement komutlarıyla da yapılabilir.

Aşağıdaki bölümlerde açıklanan "yedekleme ve geri yükleme" işlemlerini çağırmadan önce REST çağrınız için yetkilendirme isteği üst bilgisini ayarlayın.

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

Bir API Management hizmetine geri dönme

Bir hizmet API Management için aşağıdaki HTTP isteğini sorun:

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

burada:

  • subscriptionId - Geri almaya çalıştığınız API Management aboneliğin kimliği
  • resourceGroupName - Azure API Management hizmetinizin kaynak grubunun adı
  • serviceName - oluşturma API Management belirtilen bir yedeklemeyi yapmakta olduğunu API Management hizmetinin adı
  • api-version - veya REST API geçerli bir 2020-12-01 2021-04-01-preview sürüm.

İsteğin gövdesinde hedef depolama hesabı adını, blob kapsayıcısı adını, yedekleme adını ve depolama erişim türünü belirtin. Depolama kapsayıcısı yoksa, yedekleme işlemi kapsayıcıyı oluşturur.

Depolama erişim anahtarını kullanarak erişim

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

Yönetilen kimlik kullanarak erişim

Not

Yedekleme ve geri yükleme API Management depolama işlemleri için yönetilen bir kimlik kullanmak için API Management REST API veya 2021-04-01-preview sonraki bir sürümü gerekir.

Sistem tarafından atanan yönetilen kimliği kullanarak erişim

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

Kullanıcı tarafından atanan yönetilen kimliği kullanarak erişim

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

İstek üst bilgisi değerini Content-Type olarak application/json ayarlayın.

Yedeklemenin tamamlanması bir dakikayı geçmeyecek şekilde uzun süre çalışan bir işlemdir. İstek başarılı olursa ve yedekleme işlemi başladı ise, üst bilgisi olan 202 Accepted bir yanıt durum kodu Location alırsınız. İşlem GET durumunu bulmak için üst Location bilgide URL'ye istekte bulunabilirsiniz. Yedekleme devam ederken bir durum kodu almaya devam 202 Accepted edersiniz. yanıt kodu, 200 OK yedekleme işlemlerinin başarıyla tamamlanmasını gösterir.

Bir API Management geri yükleme

Daha önce API Management bir yedeklemeden bir hizmet geri yüklemek için aşağıdaki HTTP isteğini yapın:

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

burada:

  • subscriptionId - Yedeklemeyi geri yüklemekte API Management hizmeti tutan aboneliğin kimliği
  • resourceGroupName - Yedeklemeyi geri yüklemekte API Management Azure API Management kaynak grubunun adı
  • serviceName - Geri yüklenen API Management oluşturma zamanında belirtilen hizmetin adı
  • api-version-veya gibi geçerli bir REST API sürümü 2020-12-01``2021-04-01-preview

İsteğin gövdesinde, mevcut depolama hesabı adı, blob kapsayıcısı adı, yedekleme adı ve depolama erişim türünü belirtin.

Depolama erişim anahtarı kullanarak erişim

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

Yönetilen kimlik kullanarak erişim

Not

Yedekleme ve geri yükleme sırasında depolama işlemleri için API Management yönetilen bir kimlik kullanmak, API Management REST API sürümü 2021-04-01-preview veya üzerini gerektirir.

Sistem tarafından atanan yönetilen kimlik kullanarak erişim

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

Kullanıcı tarafından atanan yönetilen kimlik kullanarak erişim

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

Content-Typeİstek üst bilgisinin değerini olarak ayarlayın application/json .

Restore, tamamlanması 30 veya daha fazla dakikalık süredeki uzun süredir çalışan bir işlemdir. İstek başarılı olursa ve geri yükleme işlemi başladıysa, 202 Accepted üst bilgiyle bir yanıt durum kodu alırsınız Location . İşlemin durumunu öğrenmek için üstbilgideki URL 'ye ' GET ' istekleri yapın Location . Geri yükleme devam ederken, bir durum kodu almaya devam edersiniz 202 Accepted . Yanıt kodu 200 OK , geri yükleme işleminin başarıyla tamamlandığını gösterir.

Önemli

Geri yüklenen hizmetin SKU 'su , geri yüklenmekte olan yedeklenen hizmetin SKU 'su ile aynı olmalıdır .

Geri yükleme işlemi devam ederken hizmet yapılandırmasında yapılan değişiklikler (örneğin, API 'ler, ilkeler, geliştirici portalı görünümü) üzerine yazılabilir.

Yedekleme veya geri yükleme isteği yapılırken kısıtlamalar

  • Yedekleme devam ederken, hizmette SKU yükseltme veya düşürme, etki alanı adında değişiklik ve daha fazlası gibi yönetim değişikliklerinden kaçının .

  • Bir yedeklemenin geri yüklenmesi yalnızca, oluşturulduktan sonra 30 gün boyunca garanti edilir .

  • Yedekleme işlemi sırasında hizmet yapılandırmasında yapılan değişiklikler (örneğin, API 'ler, ilkeler ve geliştirici portalı görünümü) , yedeklemeden dışlanmayabilir ve kaybolacaktır.

  • Azure Depolama hesabındaki Blob hizmetinde, çıkış noktaları arası kaynak paylaşımı (CORS) etkinleştirilmemelidir.

  • Geri yüklenen hizmetin SKU 'su , geri yüklenmekte olan yedeklenen hizmetin SKU 'su ile aynı olmalıdır .

Depolama ağ kısıtlamaları

Depolama erişim anahtarı kullanarak erişim

Depolama hesabı güvenlik duvarı etkinse ve erişim için bir depolama anahtarı kullanılıyorsa, müşteri, yedekleme veya geri yüklemenin çalışması için depolama hesabındaki Azure API Management Denetim düzlemi IP adresleri kümesine izin vermelidir. Depolama hesabı, API Management hizmetinin bulunduğu konum dışında herhangi bir Azure bölgesinde olabilir. örneğin, API Management hizmeti Batı ABD ise, Azure Depolama hesabı Batı ABD 2 ve müşterinin güvenlik duvarında denetim düzlemi ıp 13.64.39.16 (API Management denetim düzlemi ıp 'si) açması gerekir. bunun nedeni, azure Depolama isteklerinin aynı azure bölgesindeki işlem (azure API Management denetim düzlemi) ile genel bir ıp 'ye karşı bir şekilde değil. Bölgeler arası depolama istekleri, genel IP adresi olarak ele alınacaktır.

Yönetilen kimlik kullanarak erişim

Güvenlik Duvarı özellikli bir depolama hesabına erişmek için API Management sistem tarafından atanan bir yönetilen kimlik kullanılırsa, depolama hesabının Güvenilen Azure hizmetlerine erişim verdiğindenemin olun.

Yedeklenmeyen

Hizmet yedeklemeleri gerçekleştirdiğiniz sıklık, kurtarma noktası hedefini etkiler. Bunu en aza indirmek için, API Management hizmetinize değişiklikler yaptıktan sonra düzenli yedeklemeler uygulamanızı ve isteğe bağlı yedeklemeler gerçekleştirmenizi öneririz.

Sonraki adımlar

Yedekleme/geri yükleme işlemi için aşağıdaki ilgili kaynaklara göz atın:

API Management Premium katmanı, belirli bir Azure bölgesindeki (konum) bir hizmet örneğine dayanıklılık ve yüksek kullanılabilirlik sağlayan bölge yedekliliğide destekler.