Esta página descreve as definições de faturação partindo do princípio da utilização do comportamento de dimensionamento automático do Cloud Run predefinido. Consulte o comportamento de faturação com o dimensionamento manual para ver considerações adicionais se usar o dimensionamento manual.
Existem duas definições de faturação nos serviços do Cloud Run:
Faturação baseada em pedidos (predefinição): as instâncias do Cloud Run só são cobradas quando processam pedidos, quando são iniciadas e quando são encerradas. Consulte o ciclo de vida da instância para mais detalhes. Anteriormente, esta definição chamava-se CPU apenas alocada durante o processamento de pedidos.
Faturação baseada em instâncias: as instâncias do Cloud Run são cobradas durante todo o ciclo de vida das instâncias, mesmo quando não existem pedidos recebidos. A faturação baseada em instâncias pode ser útil para executar tarefas em segundo plano de curta duração e outras tarefas de processamento assíncronas. Anteriormente, esta definição era denominada CPU sempre alocada.
Se escolher a faturação baseada em pedidos, é cobrado por pedido e apenas quando a instância processa um pedido. Se escolher a faturação baseada em instâncias, é-lhe cobrado o ciclo de vida completo da instância. Consulte as tabelas de preços do Cloud Run para ver detalhes.
O Recommender analisa automaticamente o tráfego recebido pelo seu serviço do Cloud Run no último mês e recomenda a mudança da faturação baseada em pedidos para a faturação baseada em instâncias, se for mais barata.
Impacto da atribuição da CPU
A seleção de uma definição de faturação afeta a forma como a CPU é atribuída.
- Com a faturação baseada em pedidos, a CPU só é atribuída durante o processamento de pedidos.
- Com a faturação baseada em instâncias, a CPU é atribuída durante todo o ciclo de vida da instância do contentor.
Como escolher a definição de faturação adequada
A escolha da definição de faturação adequada para o seu exemplo de utilização depende de vários fatores, como padrões de tráfego, execução em segundo plano e custo, cada um dos quais é descrito nas secções seguintes.
Considerações sobre os padrões de trânsito
- A faturação baseada em pedidos é recomendada quando o tráfego recebido é esporádico, com picos ou instável.
- A faturação baseada em instâncias é recomendada quando o tráfego recebido é constante e varia lentamente.
Considerações sobre a execução em segundo plano
A seleção da faturação baseada em instâncias atribui CPU mesmo fora do processamento de pedidos, o que lhe permite executar tarefas em segundo plano de curta duração e outros trabalhos de processamento assíncronos após o retorno das respostas. Por exemplo:
- Tirar partido de agentes de monitorização como o OpenTelemetry que podem assumir que conseguem ser executados em segundo plano.
- Usando as goroutines do Go, o async do Node.js, as threads do Java e as corrotinas do Kotlin.
- Usar frameworks de aplicações que dependem de funcionalidades de agendamento/segundo plano incorporadas.
As instâncias inativas, incluindo as que são mantidas ativas através de instâncias mínimas, podem ser encerradas em qualquer altura. Se precisar de concluir tarefas pendentes antes de o contentor ser terminado, pode interceptar o SIGTERM para dar à instância 10 segundos de tolerância antes de ser parado.
Considere usar o Cloud Tasks para executar tarefas assíncronas. O Cloud Tasks repete automaticamente as tarefas com falhas e suporta tempos de execução até 30 minutos.
Considerações sobre o custo
Se estiver a usar a faturação baseada em pedidos, a faturação baseada em instâncias pode ser mais económica se:
- O seu serviço do Cloud Run está a processar um número elevado de pedidos atuais a uma taxa bastante constante.
- Não vê muitas instâncias "inativas" quando analisa a métrica de contagem de instâncias.
Pode usar a calculadora de preços para estimar as diferenças de custos.
Considerações sobre a escala automática
Por predefinição, o Cloud Run dimensiona automaticamente o número de instâncias de contentores.
Para um serviço definido como faturação baseada em pedidos, o Cloud Run dimensiona automaticamente o número de instâncias com base na utilização da CPU apenas durante o processamento de pedidos.
Para um serviço definido como faturação baseada em instâncias, o Cloud Run cria uma escala automática do número de instâncias com base na utilização da CPU durante todo o ciclo de vida da instância do contentor, exceto quando a escala é para zero ou a partir de zero, em que apenas usa pedidos.
Consulte o dimensionamento manual para ver considerações adicionais se usar o dimensionamento manual em vez da funcionalidade de dimensionamento automático do Cloud Run.
Considerações sobre a faturação baseada em instâncias
Mesmo que a definição de faturação esteja definida como faturação baseada em instâncias, a escalabilidade automática do Cloud Run continua em vigor e pode terminar instâncias se não forem necessárias para processar o tráfego de entrada ou a utilização atual da CPU fora dos pedidos. Uma instância nunca fica inativa durante mais de 15 minutos após o processamento de um pedido, a menos que seja mantida ativa através de instâncias mínimas.
A combinação da faturação baseada em instâncias com um número de instâncias mínimas resulta num número de instâncias em funcionamento com acesso total aos recursos de CPU, o que permite exemplos de utilização de processamento em segundo plano. Quando usa este padrão, o Cloud Run aplica o dimensionamento automático de instâncias, mesmo que um serviço esteja a usar a CPU fora de quaisquer pedidos.
Se usar sondas de verificação de estado, tem de usar a faturação baseada em instâncias para cada sonda. Consulte as probes de verificação do estado do contentor para ver detalhes de faturação.
Funções necessárias
Para receber as autorizações de que precisa para configurar e implementar serviços do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Programador do Cloud Run (
roles/run.developer
) no serviço Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
Se estiver a implementar um serviço ou uma função a partir do código fonte, também tem de ter funções adicionais concedidas no seu projeto e na conta de serviço do Cloud Build.
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Defina e atualize a faturação
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Se selecionar a faturação baseada em instâncias, tem de especificar, pelo menos, 512 MiB de memória.
Pode alterar a definição de faturação através da Google Cloud consola, da CLI gcloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço.
Selecione uma definição de faturação em Faturação. Selecione a faturação baseada em pedidos para que as suas instâncias sejam cobradas apenas durante o processamento de pedidos. Selecione a faturação baseada em instâncias para que as suas instâncias sejam cobradas durante toda a duração das mesmas.
Clique em Criar ou Implementar.
gcloud
Pode atualizar a definição de faturação. Para definir a faturação baseada em instâncias para um determinado serviço:
gcloud run services update SERVICE --no-cpu-throttling
Substitua SERVICE pelo nome do seu serviço.
Para definir a faturação baseada em pedidos:
gcloud run services update SERVICE --cpu-throttling
Também pode definir a definição de faturação durante a implementação. Para definir a sua definição de faturação como faturação baseada em instâncias:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Para definir a sua definição de faturação para faturação baseada em pedidos:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de
já estar criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
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 o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run
- BOOLEAN:
true
para definir a faturação por pedido oufalse
para definir a faturação baseada em instâncias. - REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não exceder 63 carateres
- Começa com
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua configuração do Terraform:Ver definições de faturação
Para ver as definições de faturação atuais do seu serviço do Cloud Run:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Clique no serviço que lhe interessa para abrir a página Detalhes do serviço.
Clique no separador Revisões.
No painel de detalhes à direita, a definição de faturação é apresentada no separador Geral.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
Localize a definição de faturação na configuração devolvida.