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
Api Management hizmet örneği. Uygulamanız yoksa bkz . API Management hizmet örneği oluşturma.
Bir Azure depolama hesabı. Hesabınız yoksa bkz . Depolama hesabı oluşturma.
Azure PowerShell cmdlet'lerini kullanmayı planlıyorsanız, Azure PowerShell'in en son sürümü. Henüz yüklemediyseniz Azure PowerShell'i yükleyin.
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.
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.
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
- Analiz raporları oluşturmak için kullanılan kullanım verileri yedeklemeye dahil değildir. Güvenli hale getirmek üzere analiz raporlarını düzenli aralıklarla almak için Azure API Management REST API'sini kullanın.
- Özel etki alanı TLS/SSL sertifikaları.
- Müşteri tarafından karşıya yüklenen ara veya kök sertifikaları içeren özel CA sertifikaları.
- Sanal ağ tümleştirme ayarları.
- Yönetilen kimlik yapılandırması.
- Azure İzleyici tanılama yapılandırması.
- Protokoller ve şifreleme ayarları.
- Geliştirici portalı içeriği.
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:
- Logic Apps ile API Management Yedekleme ve Geri Yükleme İşlemlerini Otomatikleştirme
- Azure API Management'ı bölgeler arasında taşıma
- 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 alanlar arası yedekliliği de destekler.