Mettre à l’échelle le débit Azure Cosmos DB à l’aide du déclencheur de minuteur Azure Functions

S’APPLIQUE À : NoSQL

Les performances d’un compte Azure Cosmos DB sont basées sur le débit provisionné exprimé en unités de requête par seconde (RU/s). Le provisionnement s’effectue avec une précision d’une seconde et est facturé en fonction de la valeur RU/s par heure la plus élevée. Ce modèle de capacité approvisionnée permet au service de fournir un débit prévisible et constant, une faible latence garantie et une haute disponibilité. La plupart des charges de travail de production utilisent ces fonctionnalités. Toutefois, dans les environnements de développement et de test où Azure Cosmos DB n’est utilisé que pendant les heures de travail, vous pouvez augmenter le débit le matin et le réduire à nouveau le soir après les heures de travail.

Vous pouvez définir le débit via les modèles Azure Resource Manager, Azure CLI ou PowerShell, pour les comptes d’API pour NoSQL, ou en utilisant les kits SDK Azure Cosmos DB spécifiques au langage. L’avantage de l’utilisation des modèles Resource Manager, d’Azure CLI ou de PowerShell tient au fait qu’ils prennent en charge toutes les API du modèle Azure Cosmos DB.

Exemple de projet de planificateur de débit

Pour simplifier le processus de mise à l’échelle d’Azure Cosmos DB selon une planification, nous avons créé un exemple de projet appelé Planificateur de débit Azure Cosmos DB. Ce projet est une application Azure Functions avec deux déclencheurs de minuteur : « ScaleUpTrigger » et « ScaleDownTrigger ». Les déclencheurs exécutent un script PowerShell qui définit le débit sur chaque ressource tel qu’il est défini dans le fichier resources.json de chaque déclencheur. ScaleUpTrigger est configuré pour s’exécuter à 8 h UTC et ScaleDownTrigger est configuré pour s’exécuter à 6 h UTC, et ces heures peuvent être facilement mises à jour dans le fichier function.json pour chaque déclencheur.

Vous pouvez cloner ce projet localement et le modifier pour spécifier les ressources Azure Cosmos DB à augmenter ou réduire, ainsi que la planification à exécuter. Par la suite, vous pouvez le déployer dans un abonnement Azure et le sécuriser en utilisant Managed Service Identity avec des autorisations de contrôle d’accès en fonction du rôle Azure (Azure RBAC) avec le rôle « Opérateur Azure Cosmos DB » pour définir le débit sur vos comptes Azure Cosmos DB.

Étapes suivantes