Масштабирование пропускной способности Azure Cosmos DB с помощью триггера для таймера Функций Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Производительность учетной записи Azure Cosmos DB зависит от объема подготовленной пропускной способности, выраженной в единицах запросов в секунду (ЕЗ/с). Подготовка выполняется с детализацией на уровне секунд и тарифицируется на основе максимального количества ЕЗ/с за час. Данная модель подготовленной емкости позволяет службе обеспечивать предсказуемую и согласованную пропускную способность, гарантированную низкую задержку и высокий уровень доступности. Большинство производственных рабочих нагрузок использует эти функции. Но в средах разработки и тестирования, в которых Azure Cosmos DB используется только в рабочее время, вы можете увеличить пропускную способность утром и уменьшить ее после завершения рабочего дня.

Пропускную способность можно задать с помощью шаблонов Azure Resource Manager, Azure CLI и PowerShell для API для учетных записей NoSQL или с помощью пакетов SDK для Azure Cosmos DB для конкретного языка. Преимущество использования шаблонов Resource Manager, Azure CLI или PowerShell заключается в том, что они поддерживают все API модели Azure Cosmos DB.

Пример проекта планировщика пропускной способности

Чтобы упростить процесс масштабирования Azure Cosmos DB по расписанию, мы создали пример проекта с именем Планировщик пропускной способности Azure Cosmos DB. Этот проект является приложением Функций Azure с двумя триггерами таймера — ScaleUpTrigger и ScaleDownTrigger. Триггеры запускают скрипт PowerShell, который задает пропускную способность для каждого ресурса, определенную в файле resources.json каждого триггера. Триггер ScaleUpTrigger настроен на запуск в 8:00 (UTC), а ScaleDownTrigger — в 18:00 (UTC). Время можно легко изменить в файле function.json для каждого триггера.

Вы можете клонировать этот проект локально, изменить его, указав ресурсы Azure Cosmos DB, которые нужно масштабировать, а также нужное расписание. Позже вы сможете развернуть его в подписке Azure и защитить с помощью управляемого удостоверения службы с разрешениями управления доступом на основе ролей Azure (Azure RBAC) с ролью "Оператор Azure Cosmos DB", чтобы задать пропускную способность для учетных записей Azure Cosmos DB.

Next Steps