Skalowanie przepływności usługi Azure Cosmos DB przy użyciu wyzwalacza czasomierza Azure Functions

DOTYCZY: NoSQL

Wydajność konta usługi Azure Cosmos DB zależy od ilości aprowizowanej przepływności wyrażonej w jednostkach żądań na sekundę (RU/s). Aprowizowanie jest na drugim poziomie szczegółowości i jest rozliczane na podstawie najwyższych jednostek RU/s na godzinę. Ten aprowizowany model pojemności umożliwia usłudze zapewnienie przewidywalnej i spójnej przepływności, gwarantowanego małego opóźnienia i wysokiej dostępności. Większość obciążeń produkcyjnych obejmuje te funkcje. Jednak w środowiskach programistycznych i testowych, w których usługa Azure Cosmos DB jest używana tylko w godzinach pracy, można skalować przepływność w górę rano i skalować w dół wieczorem po godzinach pracy.

Przepływność można ustawić za pomocą szablonów usługi Azure Resource Manager, interfejsu wiersza polecenia platformy Azure i programu PowerShell, dla kont interfejsu API dla noSQL lub przy użyciu zestawów SDK usługi Azure Cosmos DB specyficznych dla języka. Zaletą korzystania z szablonów Resource Manager, interfejsu wiersza polecenia platformy Azure lub programu PowerShell jest to, że obsługują wszystkie interfejsy API modelu usługi Azure Cosmos DB.

Przykładowy projekt harmonogramu przepływności

Aby uprościć proces skalowania usługi Azure Cosmos DB zgodnie z harmonogramem, utworzyliśmy przykładowy projekt o nazwie Harmonogram przepływności usługi Azure Cosmos DB. Ten projekt jest aplikacją Azure Functions z dwoma wyzwalaczami czasomierza — "ScaleUpTrigger" i "ScaleDownTrigger". Wyzwalacze uruchamiają skrypt programu PowerShell, który ustawia przepływność dla każdego zasobu zgodnie z definicją resources.json w pliku w każdym wyzwalaczu. Program ScaleUpTrigger jest skonfigurowany do uruchamiania o 8:00 czasu UTC, a element ScaleDownTrigger jest skonfigurowany do uruchamiania o godzinie 18:00 CZASU UTC. Te czasy można łatwo zaktualizować w function.json pliku dla każdego wyzwalacza.

Możesz sklonować ten projekt lokalnie, zmodyfikować go, aby określić zasoby usługi Azure Cosmos DB w celu skalowania w górę i w dół oraz harmonogramu do uruchomienia. Później możesz wdrożyć ją w subskrypcji platformy Azure i zabezpieczyć ją przy użyciu tożsamości usługi zarządzanej z uprawnieniami kontroli dostępu na podstawie ról (RBAC) platformy Azure z rolą "Operator usługi Azure Cosmos DB", aby ustawić przepływność na kontach usługi Azure Cosmos DB.

Następne kroki