Compartilhar via


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