Como controlar o comportamento de escalonamento

O recurso de instâncias máximas no Cloud Functions permite limitar o grau em que a função será escalonada em resposta às solicitações recebidas.

No Cloud Functions, o escalonamento é realizado criando novas instâncias da sua função. Cada uma delas só pode lidar com um pedido por vez. Assim, grandes picos no volume de solicitações podem resultar na criação de várias instâncias.

Geralmente isso é útil, mas em alguns casos talvez você queira limitar o número total de instâncias coexistentes. Por exemplo, sua função pode interagir com um banco de dados que lida apenas com um determinado número de conexões abertas simultâneas.

Como usar instâncias máximas

É possível definir instâncias máximas para uma função individual durante a implantação. Cada função pode ter seu próprio limite de instâncias máximas, e elas são dimensionadas independentemente umas das outras.

Como definir limites de instâncias máximas

Para definir um limite máximo de instâncias usando a ferramenta de linha de comando gcloud, use o --max-instances no momento da implantação:

gcloud beta functions deploy FUNCTION_NAME --max-instances 10 FLAGS...

No exemplo acima, FLAGS... refere-se a outras opções a serem transferidas durante a implantação da sua função. Para uma referência completa do comando deploy, inclusive recursos Beta, consulte gcloud beta functions deploy.

Também é possível definir instâncias máximas durante a criação da função no Console do GCP desta maneira:

  1. Acesse a página Visão geral do Cloud Functions.

  2. Clique em Criar função.

  3. Preencha os campos obrigatórios da função.

  4. Expanda as configurações avançadas clicando em Mais.

  5. Na seção Instâncias máximas de função, insira o valor desejado.

Como limpar limites de instâncias máximas

Para limpar o limite definido na função, use o --clear-max-instances no momento da implantação:

gcloud beta functions deploy FUNCTION_NAME --clear-max-instances

Também é possível limpar o limite das instâncias máximas no Console do GCP:

  1. Acesse a página Visão geral do Cloud Functions.

  2. Clique em uma função existente para acessar a página de detalhes.

  3. Clique em Editar.

  4. Expanda as configurações avançadas clicando em Mais.

  5. Na seção Instâncias máximas da função, insira "0" ou deixe o campo em branco.

Limites e práticas recomendadas

Nesta seção, fornecemos diretrizes para o uso de instâncias máximas.

Como exceder as instâncias máximas

Em circunstâncias normais, a função é escalonada criando novas instâncias para lidar com a carga de tráfego de entrada. No entanto, quando um limite máximo de instâncias estiver definido, será possível encontrar um cenário em que haja instâncias insuficientes para atender a essa carga de tráfego. Nesse caso, as solicitações de entrada serão enfileiradas por até 60 segundos. Durante esse período, se uma instância concluir o processamento de uma solicitação, ela ficará disponível para processar solicitações enfileiradas. Se nenhuma instância se tornar disponível durante a janela de 60 segundos, a solicitação falhará.

Garantias de escalonamento

O limite máximo de instâncias é um limite superior. Definir um limite alto não significa que sua função será escalonada até o número especificado de instâncias. Isso significa apenas que o número de instâncias coexistentes não pode exceder o limite.

Picos de tráfego

Em alguns casos, como picos rápidos de tráfego, o Cloud Functions pode criar por um curto período uma pequena quantidade de instâncias que ultrapassa o valor especificado de instâncias máximas. Se a função não aceitar esse comportamento temporário, será possível incluir uma margem de segurança e definir um valor de instâncias máximas mais baixo do que ela pode tolerar.

Implantações

Quando uma nova versão da função é implantada, o Cloud Functions migra gradualmente o tráfego da versão antiga para a nova. Como os limites de instâncias máximas são definidos para cada versão da sua função, é possível exceder temporariamente o limite especificado durante o período após a implantação.

Instâncias ociosas e como minimizar inicializações a frio

Para minimizar o impacto de inicializações a frio, o Cloud Functions manterá uma reserva de instâncias ociosas da função. Essas instâncias estão prontas para lidar com solicitações em caso de um pico repentino de tráfego.

Por exemplo, ao atender a uma solicitação, uma instância pode permanecer inativa por um período caso precise lidar com outra solicitação. Uma instância ociosa pode manter os recursos, como conexões de banco de dados abertas, caso precise lidar com outra solicitação.

Valores "0"

Definir as instâncias máximas como "0" resulta na limpeza dos limites de instâncias máximas atuais. Definir um valor "0" não interrompe a função.

Como receber ajuda e relatar bugs

Se você encontrar algum problema ao usar as instâncias máximas na versão Beta, informe no grupo de usuários Beta do Cloud Functions.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud Functions Documentation