Nesta página, descrevemos as configurações de faturamento considerando o uso do comportamento padrão de escalonamento automático do Cloud Run. Consulte Comportamento de faturamento usando o escalonamento manual para mais considerações se você usar o escalonamento manual.
Há duas configurações de faturamento nos serviços do Cloud Run:
Faturamento com base em solicitações (padrão): as instâncias de serviço do Cloud Run são cobradas apenas quando processam solicitações, quando são iniciadas e quando são encerradas. Consulte o ciclo de vida da instância para mais detalhes. Essa configuração era chamada de CPU alocada apenas durante o processamento da solicitação.
Faturamento com base em instâncias: as instâncias de serviço do Cloud Run são cobradas por todo o ciclo de vida de cada instância, mesmo quando não há solicitações recebidas. O faturamento com base em instâncias pode ser útil para executar tarefas curtas em segundo plano e outras tarefas de processamento assíncrono. Essa configuração era chamada de CPU sempre alocada.
Se você escolher o faturamento com base em solicitações, será cobrado por solicitação e somente quando a instância processar uma solicitação. Se você escolher o faturamento com base em instâncias, haverá cobranças por todo o ciclo de vida da instância. Ao contrário dos serviços do Cloud Run, todos os jobs do Cloud Run têm faturamento com base em instâncias.
Impacto da alocação de CPU
A seleção de uma configuração de faturamento afeta a forma como a CPU é alocada.
- Com o faturamento com base em solicitações, a CPU é alocada apenas durante o processamento da solicitação.
- Com o faturamento com base em instâncias, a CPU é alocada para todo o ciclo de vida da instância de contêiner.
Gastos máximos do orçamento
Quando você configura gastos máximos do orçamento do Cloud Billing no console do Cloud Billing ou de forma programática usando a API Cloud Billing Budget, esses gastos máximos são aplicados automaticamente a todos os tipos de recursos do Cloud Run no projeto.
É possível monitorar o progresso do gasto máximo diretamente na página de visão geral do console do Cloud Run. Quando você atinge um gasto máximo, Cloud de Confiance by S3NS pausa todas as cargas de trabalho do Cloud Run para evitar mais custos para os seguintes recursos do Cloud Run:
- Serviços: qualquer serviço atual não vai conseguir exibir tráfego e vai retornar erros
5xx. - Jobs: as novas execuções de tarefas não são iniciadas, e as tarefas em andamento não são concluídas.
- Pools de workers: todas as instâncias atuais param de processar tarefas.
- Instâncias: todas as instâncias em execução são encerradas, as novas instâncias ou reinicializações não são iniciadas e as solicitações para URLs de instância retornam erros
5xx.
Se você exceder seu gasto máximo, vai receber uma notificação de alerta e um banner de restrição no console do Cloud Run. Os gastos máximos aplicados são redefinidos no início de cada mês, no primeiro dia do próximo ciclo de faturamento, desbloqueando as cargas de trabalho e definindo o valor gasto como zero. Se você exceder seu gasto máximo e quiser retomar as operações antes da redefinição mensal, ajuste ou remova o limite manualmente na página de visão geral do console do Cloud Run.
Como escolher a configuração de faturamento adequada
A escolha da configuração de faturamento apropriada para seu caso de uso depende de vários fatores, como padrões de tráfego, execução em segundo plano e custo, cada um deles descrito nas seções a seguir.
Considerações sobre padrões de tráfego
- O faturamento com base em solicitações é recomendado quando o tráfego de entrada é esporádico, com picos ou intermitente.
- O faturamento baseado em instância é recomendado quando o tráfego de entrada é constante, com pouca variação.
Considerações sobre execução em segundo plano
Selecionar o faturamento com base em instâncias aloca a CPU mesmo fora do processamento de solicitações, permitindo que você execute tarefas curtas em segundo plano e outros trabalhos de processamento assíncronos depois de retornar respostas. Exemplo:
- utilização de agentes de monitoramento, como o OpenTelemetry, que podem presumir a possibilidade de execução em segundo plano;
- Usar as Goroutines do Go, Node.js assíncrono, linhas de execução do Java e corrotinas do Kotlin
- Usar frameworks de aplicativos que dependem de recursos integrados de programação ou segundo plano.
As instâncias inativas, incluindo as que foram mantidas aquecidas com as instâncias mínimas, podem ser encerradas a qualquer momento. Se for necessário concluir tarefas pendentes antes de o contêiner ser encerrado, interrompa o SIGTERM para conceder à instância 10 segundos de carência antes de ser interrompida.
Considerações sobre o custo
Se você estiver usando o faturamento baseado em solicitações, o faturamento baseado em instâncias poderá ser mais econômico se:
- O serviço do Cloud Run está processando um número alto de solicitações atuais a uma taxa estável.
- Você não vê muitas instâncias de contêiner "inativo" ao analisar a métrica de contagem de instâncias de contêiner.
Considerações sobre o escalonamento automático
Por padrão, o Cloud Run faz escalonamento automático do número de instâncias de contêiner.
Para um serviço definido como faturamento com base em solicitações, o Cloud Run escalona automaticamente o número de instâncias com base na utilização da CPU somente durante o processamento da solicitação.
Para um serviço definido como faturamento com base em instâncias, o Cloud Run escalona automaticamente o número de instâncias com base no uso da CPU para todo o ciclo de vida da instância do contêiner, exceto ao escalonar de e para zero, em que é usado apenas solicitações.
Consulte escalonamento manual para mais considerações se você usar o escalonamento manual em vez do recurso de escalonamento automático do Cloud Run.
Considerações sobre o faturamento baseado em instâncias
Mesmo que a configuração de faturamento esteja definida como faturamento com base em instâncias, o escalonamento automático do Cloud Run ainda está em vigor e pode encerrar as instâncias se elas não forem necessárias para lidar com o tráfego de entrada ou a utilização atual da CPU fora das solicitações. Uma instância nunca permanecerá inativa por mais de 15 minutos após o processamento de uma solicitação, a menos que seja mantida ativa usando instâncias mínimas.
Combinar o faturamento com base em instâncias com várias instâncias mínimas resulta em várias instâncias funcionando com acesso total aos recursos da CPU, permitindo casos de uso de processamento em segundo plano. Ao usar esse padrão, o Cloud Run aplica o escalonamento automático de instâncias mesmo que um serviço esteja usando a CPU fora de qualquer solicitação.
Se você usar sondagens de verificação de integridade, será necessário usar o faturamento com base em instâncias para cada sondagem. Consulte sondagens de verificação de integridade do contêiner para ver detalhes de faturamento.
Funções exigidas
Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor do Cloud Run (
roles/run.developer) no serviço Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
Se você estiver implantando um serviço ou uma função do código-fonte, também precisará ter outros papéis concedidos no projeto e na conta de serviço do Cloud Build.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs doCloud de Confiance , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Definir e atualizar o faturamento
Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.
Se você selecionar o faturamento com base em instâncias, especifique pelo menos 512 MiB de memória.
É possível alterar a configuração de faturamento usando o Cloud de Confiance console, a CLI gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:
Console
No console do Cloud de Confiance by S3NS , acesse o Cloud Run:
Selecione Serviços no menu de navegação do Cloud Run e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele.
Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço.
Se você estiver configurando um serviço atual, clique na guia Escalonamento.
Em Faturamento, selecione Com base em solicitações para que as instâncias sejam cobradas apenas durante o processamento de solicitações ou selecione Com base em instâncias para que as instâncias sejam cobradas durante todo o ciclo de vida delas.
Clique em Criar para um novo serviço. Clique em Ver diff e reimplantar e em Implantar mudanças para um serviço atual.
gcloud
É possível atualizar a configuração de faturamento. Para definir o faturamento com base em instâncias para um determinado serviço:
gcloud run services update SERVICE --no-cpu-throttling
SERVICE pelo nome do serviço;
Para definir o faturamento com base em solicitações:
gcloud run services update SERVICE --cpu-throttling
Também é possível definir a configuração de faturamento durante a implantação. Para definir a configuração de faturamento como faturamento com base em instâncias:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Para definir a configuração de faturamento como faturamento com base em solicitações:
gcloud run deploy --image IMAGE_URL --cpu-throttling
IMAGE_URL por uma referência à imagem de contêiner, por
exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest; Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
cpu:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
Substitua:
- SERVICE: o nome do serviço do Cloud Run.
- BOOLEAN:
truepara definir o faturamento por solicitação oufalsepara definir o faturamento por instância. REVISION: um novo nome de revisão ou exclua-o (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:- Começa com
SERVICE- - Contém apenas letras minúsculas, números e
- - Não termina com um
- - Não excede 63 caracteres
- Começa com
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se ele estiver presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform:Ver configurações de faturamento
Para ver as configurações de faturamento atuais do serviço do Cloud Run:
Console
No console do Cloud de Confiance by S3NS , acesse a página Serviços do Cloud Run:
Clique no serviço para abrir a página Detalhes do serviço.
Clique na guia Escalonamento para encontrar a configuração de Faturamento.
gcloud
Execute o comando a seguir para ver a configuração de faturamento:
gcloud run services describe SERVICE --format=yaml
Na saída YAML, encontre a configuração
run.googleapis.com/cpu-throttling. Um valor defalseindica faturamento com base em instâncias. Se essa configuração estiver ausente, indica faturamento com base em solicitações.