Aracılığıyla paylaş


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

ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Standart | Premium

API'lerinizi Azure API Management aracılığıyla yayımlayıp yöneterek, aksi takdirde el ile tasarladığınız, uygulayacağınız ve yönetdiğiniz hataya dayanıklılık ve altyapı özelliklerinden yararlanıyorsunuz. Azure platformu, olası hataların büyük bir bölümünü maliyetin bir bölümünde azaltır.

API Management hizmetinizi etkileyen kullanılabilirlik sorunlarından kurtarmak için hizmetinizi istediğiniz zaman başka bir bölgede yeniden oluşturmaya hazır olun. Kurtarma süresi hedefinize bağlı olarak, bekleme hizmetini bir veya daha fazla bölgede tutmak isteyebilirsiniz. Ayrıca, yapılandırmalarını ve içeriğini kurtarma noktası hedefinize göre etkin hizmetle eşitlenmiş olarak tutmaya çalışabilirsiniz. API yönetimi yedekleme ve geri yükleme özellikleri, olağanüstü durum kurtarma stratejisini uygulamak için gerekli yapı taşları sağlar.

Yedekleme ve geri yükleme işlemleri, API Management hizmet yapılandırmasını geliştirme ve hazırlama gibi işletimsel ortamlar arasında çoğaltmak için de kullanılabilir. Kullanıcılar ve abonelikler gibi çalışma zamanı verilerinin de kopyalanacağından ve her zaman istenmeyebileceğine dikkat edin.

Bu makalede, dış depolama hesabı kullanarak API Management örneğinizin yedekleme ve geri yükleme işlemlerini otomatikleştirme işlemi gösterilmektedir. Burada gösterilen adımlarda Backup-AzApiManagement ve Restore-AzApiManagement Azure PowerShell cmdlet'leri veya Api Management Hizmeti - Yedekleme ve Api Management Hizmeti - REST API'lerini geri yükleme kullanılır.

Uyarı

Her yedeklemenin süresi 30 gün sonra dolar. 30 günlük süre sonu süresi dolduktan sonra yedeklemeyi geri yüklemeye çalışırsanız, geri yükleme işlemi bir Cannot restore: backup expired iletiyle başarısız olur.

Ö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önlendirilmesi için hem etkin hem de bekleme hizmetleri için aynı özel konak adı ve TLS sertifikasının kullanılmasını öneririz.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

Depolama hesabı erişimini yapılandırma

Yedekleme veya geri yükleme işlemi çalıştırırken depolama hesabına erişimi yapılandırmanız gerekir. API Management iki depolama erişim mekanizmasını destekler: Azure Depolama erişim anahtarı veya API Management yönetilen kimliği.

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

Azure, her depolama hesabı için iki adet 512 bit depolama hesabı erişim anahtarı oluşturur. Bu anahtarlar, Paylaşılan Anahtar yetkilendirmesi aracılığıyla depolama hesabınızdaki verilere erişimi yetkilendirmek için kullanılabilir. Anahtarları görüntülemek, almak ve yönetmek için bkz . Depolama hesabı erişim anahtarlarını yönetme.

API Management yönetilen kimliğini yapılandırma

Not

Yedekleme ve geri yükleme sırasında depolama işlemleri için API Management yönetilen kimliğinin kullanılması API Management REST API sürümü veya sonraki sürümlerinde 2021-04-01-preview desteklenir.

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

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

API Management hizmetini yedekleme

Azure PowerShell ile oturum açın.

Aşağıdaki örneklerde:

  • myapim adlı bir API Management örneği apimresourcegroup kaynak grubundadır.
  • backupstorageaccount adlı bir depolama hesabı storageresourcegroup kaynak grubundadır. Depolama hesabının backups adlı bir kapsayıcısı vardır.
  • ContosoBackup.apimbackup adlı bir yedekleme blobu oluşturulur.

PowerShell'de değişkenleri ayarlama:

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

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

$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

Yönetilen kimlik kullanarak erişim

API Management örneğinizde bir yönetilen kimliği depolama hesabına erişecek şekilde yapılandırmak için, bu makalenin önceki bölümlerinde yer alan Yönetilen kimlik yapılandırma bölümüne bakın.

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

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

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

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

Bu örnekte, identityresourcegroup kaynak grubunda myidentity adlı kullanıcı tarafından atanan yönetilen kimlik yer alır.

$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

Yedekleme, tamamlanması birkaç dakika sürebilen uzun süre çalışan bir işlemdir. Bu süre boyunca API ağ geçidi istekleri işlemeye devam eder, ancak hizmetin durumu Güncelleştirme'dir.

API Management hizmetini geri yükleme

Dikkat

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

Aşağıdaki örneklerde,

  • myapim adlı bir API Management örneği, backupstorageaccount depolama hesabındaki ContosoBackup.apimbackup adlı yedekleme blobundan geri yüklenir.
  • Yedekleme blobu backups adlı bir kapsayıcıdadır.

PowerShell'de değişkenleri ayarlama:

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

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

$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

Yönetilen kimlik kullanarak erişim

API Management örneğinizde bir yönetilen kimliği depolama hesabına erişecek şekilde yapılandırmak için, bu makalenin önceki bölümlerinde yer alan Yönetilen kimlik yapılandırma bölümüne bakın.

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

$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName

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

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

Bu örnekte, identityresourcegroup kaynak grubunda myidentity adlı kullanıcı tarafından atanan yönetilen kimlik yer alır.

$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

Geri yükleme işlemi uzun süre çalışan ve tamamlanması 45 dakika veya daha uzun sürebilen bir işlemdir.

Sınırlamalar

  • Yedeklemenin geri yüklenmesi, oluşturulduğu andan itibaren yalnızca 30 gün boyunca garanti edilir.
  • Yedekleme devam ederken, hizmette fiyatlandırma katmanı yükseltme veya düşürme, etki alanı adında değişiklik yapma ve daha fazlası gibi yönetim değişikliklerinden kaçının.
  • Yedekleme işlemi devam ederken hizmet yapılandırmasında yapılan değişiklikler (örneğin, API'ler, ilkeler ve geliştirici portalı görünümü) yedeklemenin dışında tutulabilir ve kaybolabilir.
  • Yedekleme, Azure portalındaki Analiz penceresinde gösterilen raporlarda kullanılan önceden toplanmış günlük verilerini yakalamaz.
  • Çıkış Noktaları Arası Kaynak Paylaşımı (CORS), depolama hesabındaki Blob hizmetinde etkinleştirilmemelidir.
  • geri yüklenen hizmetin fiyatlandırma katmanı , geri yüklenen yedeklenen hizmetin fiyatlandırma katmanıyla eşleşmelidir .

Depolama ağı kısıtlamaları

Depolama hesabı güvenlik duvarı etkinse, hesaba erişim için API Management örneğinin sistem tarafından atanan yönetilen kimliğinin kullanılması önerilir. Depolama hesabının güvenilen Azure hizmetlerine erişim sağladığından emin olun.

Yedeklenmeyenler

Hizmet yedeklemeleri gerçekleştirme sıklığı, kurtarma noktası hedefinizi etkiler. Bunu en aza indirmek için, API Management hizmetinizde değişiklik yaptıktan sonra düzenli yedeklemeler gerçekleştirmenizi 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: