Dimensionar a taxa de transferência do Azure Cosmos DB usando o gatilho de temporizador do Azure Functions
APLICA-SE A: NoSQL
O desempenho de uma conta do Azure Cosmos DB é baseado na quantidade da taxa de transferência provisionada expressa em unidades de solicitação por segundo (RU/s). O provisionamento é de uma granularidade de segundo e é cobrado com base na RU/s mais alta por hora. Esse modelo de capacidade provisionada permite que o serviço forneça uma taxa de transferência previsível e consistente, além de garantia de baixa latência e alta disponibilidade. A maioria das cargas de trabalho de produção usa esses recursos. No entanto, em ambientes de desenvolvimento e teste em que Azure Cosmos DB é usado somente durante o horário de trabalho, você pode escalar verticalmente a taxa de transferência na manhã e reduzir verticalmente à noite após o horário de trabalho.
Você pode definir a taxa de transferência por meio de Modelos do Azure Resource Manager, CLI do Azure e PowerShell, para contas da API para NoSQL ou usando os SDKs do Azure Cosmos DB específicos da linguagem. O benefício de usar modelos do Resource Manager, CLI do Azure ou PowerShell é que eles dão suporte a todas as APIs de modelo do Azure Cosmos DB.
Projeto de exemplo do agendador de produtividade
Para simplificar o processo de dimensionamento do Azure Cosmos DB em um agendamento, criamos um projeto de exemplo chamado Agendador de taxa de transferência do Azure Cosmos DB. Esse projeto é um aplicativo do Azure Functions com dois gatilhos de temporizador: "ScaleUpTrigger" e "ScaleDownTrigger". Os gatilhos executam um script do PowerShell que define a taxa de transferência em cada recurso, conforme definido no arquivo resources.json
em cada gatilho. O ScaleUpTrigger é configurado para ser executado às 8:00 UTC e o ScaleDownTrigger é configurado para ser executado às 18:00 UTC, sendo que essas horas podem ser facilmente atualizadas dentro do arquivo function.json
para cada gatilho.
Você pode clonar esse projeto localmente, modificá-lo para especificar os recursos do Azure Cosmos DB a serem escalados e reduzidos verticalmente e o agendamento para execução. Posteriormente, é possível implantá-lo em uma assinatura do Azure e protegê-lo usando a identidade do serviço gerenciado com permissões de controle de acesso baseado em função do Azure (Azure RBAC) com a função "operador Azure Cosmos DB" para definir a taxa de transferência nas contas do Azure Cosmos DB.
Próximas etapas
- Saiba mais e baixe o exemplo do agendador de produtividade do Azure Cosmos DB.