Partilhar via


Dimensionar a taxa de transferência do Azure Cosmos DB usando o gatilho de Timer do Azure Functions

APLICA-SE A: NoSQL

O desempenho de uma conta do Azure Cosmos DB é baseado na quantidade de taxa de transferência provisionada expressa em Unidades de Solicitação por segundo (RU/s). O provisionamento está em uma segunda granularidade e é cobrado com base nos RU/s mais altos por hora. Esse modelo de capacidade provisionada permite que o serviço forneça uma taxa de transferência previsível e consistente, baixa latência garantida e alta disponibilidade. A maioria das cargas de trabalho de produção tem esses recursos. No entanto, em ambientes de desenvolvimento e teste em que o Azure Cosmos DB é usado apenas durante o horário de trabalho, você pode aumentar a taxa de transferência pela manhã e reduzir novamente à 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 de API para NoSQL ou usando os SDKs do Azure Cosmos DB específicos do idioma. A vantagem de usar Modelos do Gerenciador de Recursos, 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 taxa de transferência

Para simplificar o processo de dimensionamento do Azure Cosmos DB em um cronograma, criamos um projeto de exemplo chamado Agendador de taxa de transferência do Azure Cosmos DB. Este 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 resources.json arquivo em cada gatilho. O ScaleUpTrigger está configurado para ser executado às 8h UTC e o ScaleDownTrigger está configurado para ser executado às 18h UTC e esses horários podem ser facilmente atualizados dentro do function.json arquivo para cada disparador.

Você pode clonar esse projeto localmente, modificá-lo para especificar os recursos do Azure Cosmos DB a serem dimensionados para cima e para baixo e o cronograma para execução. Mais tarde, você pode implantá-lo em uma assinatura do Azure e protegê-lo usando a identidade de serviço gerenciado com permissões de controle de acesso baseado em função do Azure (Azure RBAC) com a função "operador do Azure Cosmos DB" para definir a taxa de transferência em suas contas do Azure Cosmos DB.

Passos Seguintes