Como atualizar o número mínimo e máximo de tarefas em execução no ECS

1

Eu quero atualizar o número mínimo e máximo de tarefas para um serviço no ECS em uma função lambda (python com boto3). Parece que a coisa mais próxima é a contagem desejada: desiredCount , mas não acho que seja isso que estou procurando, já que minha política de escalonamento automático mudará isso de qualquer maneira.

Um pouco mais sobre o meu caso de uso.

Eu tenho alguns contêineres no ECS dos quais sondam uma fila para trabalhos, e eu tenho um número deles sempre em execução durante o horário de trabalho, mas nenhum está ficando sem horas de trabalho. Quando a carga entra no sistema, minha política de dimensionamento automático expande os contêineres, mas um usuário teria que esperar mais tempo para que isso acontecesse quando não houvesse contêineres, por isso quero que alguns sempre estejam ligados durante o horário de trabalho.

Eu também estou usando o AWS Fargate.

    
por Snickers3192 02.10.2018 / 09:39

1 resposta

2

Acho que você terá que fazer isso em duas etapas, usando cliente boto3 de dimensionamento automático da aplicação :

  1. Crie seu serviço do ECS como destino de dimensionamento automático do aplicativo com register_scalable_target() , por exemplo, MinCapacity=3 e MaxCapacity=100 . Esta chamada retornará o ARN targer escalável.

  2. Todas as noites, ligue register_scalable_target() novamente com MinCapacity=0 e todos os dias úteis de manhã com MinCapacity=3 .

Veja a register_scalable_target()

After you have registered a scalable target, you can use this operation to update the minimum and maximum values for its scalable dimension.

Sua política de ajuste automático definirá DesiredCapacity dentro dos limites Min / MaxCapacity onde o MinCapacity mudará de 0 para 3 durante o horário comercial e de volta para 0 após horas.

Espero que ajude:)

    
por 02.10.2018 / 11:48