Comment implémenter une récupération d'urgence à l'aide d'une sauvegarde de service et la récupérer dans Gestion des API Azure
S’APPLIQUE À : Développeur | De base | Standard | Premium
En publiant et en gérant vos API via Gestion des API Azure, vous bénéficiez de fonctionnalités de tolérance de panne et d’infrastructure que vous n’avez plus à concevoir, implémenter ou gérer manuellement. La plateforme Azure permet de limiter une grande partie des risques de défaillance à moindres frais.
Pour effectuer une récupération à la suite de problèmes de disponibilité affectant votre service Gestion des API, préparez-vous à reconstituer votre service dans une autre région à tout moment. Selon votre objectif de délai de récupération, vous souhaiterez peut-être conserver un service en attente dans une ou plusieurs régions. Vous pouvez aussi essayer de synchroniser leur configuration et leur contenu avec le service actif en fonction de l’objectif de délai de récupération. Les capacités de sauvegarde et de restauration de Gestion des API fournissent les blocs de construction nécessaires pour l’implémentation d’une stratégie de récupération d’urgence.
Vous pouvez également recourir à des opérations de sauvegarde et restauration pour répliquer la configuration du service Gestion des API entre des environnements opérationnels (par exemple, développement et intermédiaire). Notez que les données de runtime telles que les informations utilisateur et les abonnements seront également copiées, ce qui n’est pas toujours souhaitable.
Cet article explique comment automatiser les opérations de sauvegarde et de restauration de votre instance Gestion des API à l’aide d’un compte de stockage externe. Les étapes indiquées ici utilisent les cmdlet Backup-AzApiManagement et Restore-AzApiManagement Azure PowerShell ou les API REST service APIM - Sauvegarde et service APIM - Restauration.
Avertissement
Chaque sauvegarde expire au bout de 30 jours. Si vous essayez de restaurer une sauvegarde après l’expiration de la période de 30 jours, la restauration échoue avec un message Cannot restore: backup expired
.
Important
Une opération de restauration ne modifie pas la configuration du nom d’hôte du service cible. Nous vous recommandons d’utiliser les mêmes certificats TLS et nom d’hôte personnalisés pour les services actifs et en veille, afin que le trafic puisse être redirigé vers l’instance en veille via un simple changement de CNAME DNS une fois l’opération de restauration terminée.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Prérequis
Une instance du service Gestion des API. Si vous n’en avez pas, consultez Créer une instance du service Gestion des API.
Un compte de stockage Azure. Si vous n’en avez pas, consultez Créer un compte de stockage.
- Créer un conteneur dans le compte de stockage pour stocker les données de sauvegarde.
La dernière version de Azure PowerShell, si vous envisagez d’utiliser des cmdlets Azure PowerShell. Si ce n’est déjà fait, installez Azure PowerShell.
Configurer l’accès du compte de stockage
Lorsque vous exécutez une opération de sauvegarde ou de restauration, vous devez configurer l’accès au compte de stockage. Gestion des API prend en charge deux mécanismes d’accès au stockage : une clé d’accès Stockage Azure ou une identité managée Gestion des API.
Configurer la clé d’accès du compte de stockage
Azure génère deux clés d’accès de stockage de compte à 512 bits pour chaque compte de stockage. Ces clés peuvent être utilisées pour autoriser l’accès aux données de votre compte de stockage par le biais de l’autorisation de clé partagée. Pour afficher, récupérer et gérer les clés, consultez Gérer les clés d’accès au compte de stockage.
Configurer l’identité managée Gestion des API
Notes
L’utilisation d’une identité managée Gestion des API pour les opérations de stockage pendant une sauvegarde ou une restauration est prise en charge dans la version 2021-04-01-preview
ou une version ultérieure de l’API REST Gestion des API.
Activez une identité managée affectée par le système ou par l’utilisateur pour Gestion des API dans votre instance Gestion des API.
- Si vous activez une identité managée affectée par l’utilisateur, prenez note de l’ID client de l’identité.
- Si vous devez sauvegarder et restaurer des instances Gestion des API différentes, activez une identité managée dans les instances source et cible.
Attribuez à l’identité le rôle Contributeur aux données Blob du stockage, délimité par le compte de stockage utilisé pour la sauvegarde et la restauration. Pour attribuer le rôle, utilisez le portail Azure ou d’autres outils Azure.
Sauvegarde d’un service Gestion des API
Se connecter avec Azure PowerShell.
Dans les exemples suivants :
- Une instance Gestion des API nommée myapim se trouve dans le groupe de ressources apimresourcegroup.
- Un compte de stockage nommé backupstorageaccount se trouve dans le groupe de ressources storageresourcegroup. Le compte de stockage possède un conteneur nommé sauvegardes.
- Un objet blob de sauvegarde est créé avec le nom ContosoBackup.apimbackup.
Définir des variables dans PowerShell :
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Accès à l’aide de la clé d’accès de stockage
$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
Accès à l’aide de l’identité managée
Pour configurer une identité managée dans votre instance de Gestion des API afin d’accéder au compte de stockage, consultez Configurer une identité managée, plus haut dans cet article.
Accès à l’aide d’une identité managée affectée par le système
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -TargetContainerName $containerName `
-TargetBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Accès à l’aide d’une identité managée affectée par l’utilisateur
Dans cet exemple, une identité managée affectée par l’utilisateur nommée myidentity se trouve dans le groupe de ressources identityresourcegroup.
$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
La sauvegarde est une opération de longue durée qui peut prendre plusieurs minutes. Pendant ce temps, la passerelle API continue à traiter les demandes, mais l’état du service est Mise à jour.
Restauration d’un service Gestion des API
Attention
Évitez de modifier la configuration de service (par exemple, API, stratégies, apparence du portail des développeurs) pendant qu’une opération de restauration est en cours. Les modifications peuvent être remplacées.
Dans les exemples suivants :
- Une instance Gestion des API nommée myapim est restaurée à partir de l’objet blob de sauvegarde nommé ContosoBackup.apimbackup dans le compte de stockage backupstorageaccount.
- L’objet blob de sauvegarde se trouve dans un conteneur nommé sauvegardes.
Définir des variables dans PowerShell :
$apiManagementName="myapim";
$apiManagementResourceGroup="apimresourcegroup";
$storageAccountName="backupstorageaccount";
$storageResourceGroup="storageresourcegroup";
$containerName="backups";
$blobName="ContosoBackup.apimbackup"
Accès à l’aide de la clé d’accès de stockage
$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
Accès à l’aide de l’identité managée
Pour configurer une identité managée dans votre instance de Gestion des API afin d’accéder au compte de stockage, consultez Configurer une identité managée, plus haut dans cet article.
Accès à l’aide d’une identité managée affectée par le système
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName
Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $apiManagementName `
-StorageContext $storageContext -SourceContainerName $containerName `
-SourceBlobName $blobName -AccessType "SystemAssignedManagedIdentity"
Accès à l’aide d’une identité managée affectée par l’utilisateur
Dans cet exemple, une identité managée affectée par l’utilisateur nommée myidentity se trouve dans le groupe de ressources identityresourcegroup.
$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
La restauration est une opération longue qui peut prendre 45 minutes, voire plus.
Contraintes
- La restauration d’une sauvegarde n’est garantie que pendant 30 jours à partir du moment de sa création.
- Pendant la sauvegarde, évitez toutes les modifications de gestion dans le service, comme augmenter ou baisser un niveau tarifaire, changer un nom de domaine, etc.
- Les changements de configuration du service (par exemple, les API, les stratégies et l’apparence du portail des développeurs) pendant une opération de sauvegarde peuvent être exclus de la sauvegarde et être perdus.
- La sauvegarde ne capture pas les données de journaux préagrégées qui sont utilisées dans les rapports affichés dans la fenêtre Analytics du portail Microsoft Azure.
- Le partage des ressources Cross-Origin (CORS) ne doit pas être activé sur le service BLOB dans le compte de stockage.
- Le niveau tarifaire du service à restaurer doit correspondre à celui du service sauvegardé utilisé pour la restauration.
Contraintes de mise en réseau du stockage
Si le compte de stockage est pare-feu activé, il est recommandé d’utiliser l’identité managée affectée par le système de l’instance Gestion des API pour l’accès au compte. Vérifiez que le compte de stockage accorde l’accès aux services Azure approuvés.
Éléments non sauvegardés
- Les données d’utilisation servant à la création des rapports analytiques ne sont pas incluses dans la sauvegarde. Utilisez l'API REST de Gestion des API Azure pour récupérer régulièrement les rapports d'analyse et les conserver en toute sécurité.
- Certificats TLS/SSL de domaine personnalisé.
- Certificats d’autorité de certification personnalisé qui incluent des certificats intermédiaires ou racines chargés par le client.
- Paramètres d’intégration du réseau virtuel.
- Configuration d’une identité managée.
- Configuration des diagnostics Azure Monitor.
- Paramètres des protocoles et des chiffrements .
- Contenu du portail des développeurs.
La fréquence à laquelle vous effectuez les sauvegardes du service affecte votre objectif de point de récupération. Pour la réduire, nous vous conseillons d’implémenter des sauvegardes régulières et d’effectuer des sauvegardes à la demande quand vous apportez des changements à votre service Gestion des API.
Étapes suivantes
Consultez les ressources connexes suivantes pour en savoir plus sur le processus de sauvegarde/restauration :
- Automating API Management Backup and Restore with Logic Apps (Automatiser la sauvegarde et la restauration avec Gestion des API avec Logic Apps)
- Comment migrer une instance Gestion des API Azure d'une région vers une autre
- Le niveau Premium de Gestion des API prend également en charge la redondance de zone, qui offre résilience et haute disponibilité à une instance de service dans une région (emplacement) Azure spécifique.