Cotas

Um aplicativo do App Engine pode consumir recursos até determinadas cotas. É possível ver o consumo diário do seu aplicativo na página Detalhes da cota do Console do Google Cloud.

Tipos de cotas

Os seguintes tipos de cotas são válidos para aplicativos do App Engine:

  • Cotas gratuitas fornecem ao aplicativo uma quantidade gratuita de cada recurso. Depois que o aplicativo ultrapassar a cota gratuita, você receberá a cobrança por todo o uso extra desse recurso.

    As cotas gratuitas só são oferecidas no ambiente padrão.

  • As cotas diárias protegem a integridade do sistema do App Engine, garantindo que nenhum aplicativo consuma demais um recurso em detrimento de outros apps. Se você ultrapassar esses limites, um erro será exibido. As cotas diárias são atualizadas diariamente à meia-noite do horário do Pacífico.
  • As cotas por minuto protegem o aplicativo de consumir todos os recursos em períodos muito curtos e evitam que outros apps monopolizem um determinado recurso. Se o aplicativo consumir um recurso rápido demais e esgotar a cota por minuto, a palavra "Limitado" será exibida ao lado da cota correspondente na página Cotas do Console do Cloud. As solicitações dos recursos que atingirem o máximo por minuto serão negadas.

Proprietários do projeto e administradores de faturamento podem ativar o faturamento de um projeto.

Quando você ativa o faturamento do aplicativo, os limites de segurança dele aumentam. Consulte a seção Recursos para detalhes.

Consulte Quando um recurso está esgotado para mais detalhes sobre o que acontece quando uma cota é excedida e como lidar com as condições de excesso de cota.

Dica: as cotas máximas por minuto acomodam altos níveis de tráfego para lidar com um aumento no tráfego do seu site se ele for mencionado em algum conteúdo. Se você acredita que determinada cota não atende a esse requisito, envie feedback no rastreador de problemas. Enviar feedback não é uma solicitação para aumentar sua cota, mas isso nos ajudará a entender qual cota será possivelmente muito baixa para os casos de uso geral.

Se você espera níveis muito altos de tráfego, ou seu aplicativo exige cotas particularmente elevadas, por exemplo, devido ao lançamento de produtos significativos ou testes de carga grandes, é recomendado se inscrever em um pacote de suporte.

Como os recursos são renovados

O App Engine rastreia o uso dos recursos de seu aplicativo em comparação às cotas do sistema. O App Engine redefine todas as medições de recursos no início de cada dia (exceto para dados armazenados, que sempre representam a quantidade de armazenamento de dados em uso).

As cotas diárias são renovadas diariamente à meia-noite do horário do Pacífico. As cotas por minuto são atualizadas a cada 60 segundos.

Quando um recurso está esgotado

Quando todo o recurso alocado é consumido por um aplicativo, ele fica indisponível até que a cota seja renovada. Isso significa que o aplicativo não funcionará até que a cota seja renovada.

Quando recursos necessários para iniciar uma solicitação se esgotarem, o App Engine retornará por padrão um código de erro HTTP 403 ou 503 para a solicitação em vez de chamar um gerenciador. Os recursos a seguir têm este comportamento:

  • Largura de banda, entrada e saída
  • Instância/hora

Dica: configure o aplicativo para que ele exiba uma página de erro personalizada ao exceder uma cota. Para mais detalhes, consulte a referência do arquivo de configuração para Python (2.7, 3), Java, Go, PHP (5.5, 7) ou Node.js.

Quando qualquer outro recurso está esgotado, uma tentativa de consumi-lo no aplicativo resulta em uma exceção. Essa exceção pode ser capturada pelo aplicativo e manipulada, por exemplo, com a exibição de uma mensagem de erro amigável para o usuário. Na API Python, essa exceção é apiproxy_errors.OverQuotaError. Na API para Java, essa exceção é com.google.apphosting.api.ApiProxy.OverQuotaException. Na API Go, a função appengine.IsOverQuota informa se um erro representa uma falha na chamada da API, devido à insuficiência de uma cota disponível.

O exemplo a seguir ilustra como detectar o erro OverQuotaError, que pode ser gerado pelo método SendMessage() se uma cota relacionada a e-mails tiver sido excedida:

try: mail.SendMessage(to='test@example.com',
from='admin@example.com', subject='Test Email', body='Testing') except
apiproxy_errors.OverQuotaError, message: # Log the error. logging.error(message) # Display an
informative message to the user. self.response.out.write('The email could not be sent. ' 'Please try
again later.')

Seu aplicativo está ultrapassando os limites padrão? Se você precisar de uma cota de e-mails maior, use o SendGrid para enviar e-mails. Para qualquer outro aumento de cota, se você tiver um pacote de suporte Silver, Gold ou Platinum, entre em contato com um representante para solicitar limites maiores de capacidade.

Cotas para o ambiente flexível do App Engine

Quando você implanta um aplicativo no ambiente flexível do App Engine, alguns recursos do Google Cloud Platform são consumidos. Talvez não seja possível modificá-los, mas eles contam para a cota.

Recursos

Um aplicativo pode usar os recursos a seguir, sujeitos às cotas. Os recursos medidos em comparação com os limites faturáveis são indicados com "(faturável)". A quantidade de recursos representa uma alocação em um período de 24 horas.

O custo dos recursos extras está listado na página Preços.

Bucket padrão do Cloud Storage

O bucket padrão do Cloud Storage tem uma cota grátis para uso diário, conforme mostrado abaixo. Você cria esse bucket padrão gratuito na página App Engine do Console do Google Cloud de seu projeto.

As cotas a seguir aplicam-se especificamente ao uso do bucket padrão. Consulte os preços dos buckets multirregionais do Cloud Storage para uma descrição dessas cotas.

Recurso Limite padrão
Dados armazenados no bucket padrão do Cloud Storage Primeiros 5 GB gratuitos, sem máximo
Operações de classe A do bucket padrão do Cloud Storage Primeiras 20.000 operações/dia gratuitas, sem máximo
Operações de classe B do bucket padrão do Cloud Storage Primeiras 50.000 operações/dia gratuitas, sem máximo
Saída de rede do bucket padrão do Cloud Storage Até a cota de largura de banda de saída grátis, sem máximo

Blobstore

As cotas a seguir se aplicam especificamente ao uso do Blobstore.

Dados armazenados no Blobstore
A quantidade total de dados armazenados no Blobstore. Disponível para aplicativos pagos e gratuitos.
Recurso Limite padrão
Dados armazenados no Blobstore Primeiros 5 GB gratuitos, sem máximo

Armazenamento de dados estáticos e códigos

Limite de dados estáticos
Em todas as linguagens, exceto em Go, nenhum arquivo de dados estático pode ser maior do que 32 MB. O limite em Go é de 64 MB.
Armazenamento total
A cota de armazenamento se aplica à quantidade total de códigos e dados estáticos armazenados por todas as versões do aplicativo. O tamanho total armazenado de códigos e arquivos estáticos está listado na tabela "Painel principal". Os tamanhos individuais são exibidos nas telas "Versões" e "Back-ends", respectivamente. Nos aplicativos, serão cobrados US$ 0,026 por GB ao mês para qualquer armazenamento de dados estáticos e códigos que ultrapasse 1 GB.

Datastore

A cota de dados armazenados (faturável) refere-se a todos os dados armazenados para o aplicativo no Datastore e Blobstore. Outras cotas na seção "Datastore" da tela Detalhes da cota no Console do Google Cloud se referem especificamente ao serviço do Datastore.

Dados armazenados (faturáveis)

A quantidade total de dados armazenados em entidades de armazenamento de dados e índices e no Blobstore.

É importante observar que os dados armazenados no armazenamento de dados podem causar uma sobrecarga significativa. Essa sobrecarga depende do número e dos tipos de propriedades associadas, e inclui o espaço usado pelos índices incorporados e personalizados. Cada entidade armazenada no armazenamento de dados exige os metadados a seguir:

  • A chave da entidade, incluindo o tipo, o ID ou o nome da chave, e as chaves dos ancestrais da entidade.
  • O nome e o valor de cada propriedade. Como o armazenamento de dados não tem esquema, o nome de cada propriedade precisa ser armazenado com o valor da propriedade de qualquer entidade fornecida.
  • As linhas de índice incorporado e personalizado que se referem a essa entidade. Cada linha contém o tipo de entidade, o número de valores da propriedade dependendo da definição do índice e a chave da entidade.
Número de índices
O número de índices atuais do Datastore no aplicativo. Inclui índices criados no passado e que não aparecem mais na configuração do aplicativo, mas não foram excluídos. Consulte a página "Limites de armazenamento de dados" para mais detalhes sobre limites.
Operações de gravação
O número total de operações de gravação do Datastore.
Operações de leitura
O número total de operações de leitura do Datastore.
Operações pequenas
O número total de operações pequenas do Datastore. Operações pequenas incluem chamadas para alocar IDs do Datastore ou consultas somente para chaves.
Recurso Limite padrão
Dados armazenados (faturáveis) 1 GB gratuito, sem máximo.
Aplicam-se taxas de cobrança ao ultrapassar a cota gratuita.
Número de índices 200
Leituras de entidades 50.000 gratuitas, sem máximo.
Aplicam-se taxas de cobrança ao ultrapassar a cota gratuita.
Gravações de entidades 20.000 gratuitas, sem máximo.
Aplicam-se taxas de cobrança ao ultrapassar a cota gratuita.
Exclusões de entidades 20.000 gratuitas, sem máximo.
Aplicam-se taxas de cobrança ao ultrapassar a cota gratuita.
Operações pequenas Ilimitadas

Observação: as operações do Datastore, geradas pelo Administrador do Datastore e pelo Leitor do Datastore , são contabilizadas na cota do aplicativo.

Implantações

Em cada aplicativo do App Engine, é possível implantar até 10.000 vezes por dia.

A cada implantação, o Cloud Build cria uma imagem de contêiner que é armazenada no Container Registry. Você receberá cobrança se o espaço de armazenamento total consumido pelas imagens exceder o nível gratuito.

Instância/hora

O uso da instância é cobrado pelo tempo de atividade da instância, a uma determinada taxa por hora.

Há cotas gratuitas separadas para as classes de instâncias "F" e "B", também conhecidas como classes de instâncias de "front-end" e "back-end". Quando você usa os Serviços do App Engine, a classe da instância do serviço determina qual cota é aplicada.

Recurso Cota gratuita
Instâncias "F" 28 horas gratuitas por dia
Instâncias "B" 9 horas gratuitas por dia

A contagem de instância/hora começa quando a instância é iniciada e termina como descrito abaixo, dependendo do tipo de escalonamento especificado para a instância:

  • Escalonamento básico ou automático: a contagem acaba 15 minutos depois que a instância finaliza o processamento da última solicitação.
  • Escalonamento manual: a contagem acaba quinze minutos depois que a instância é desligada.

Se o número de instâncias inativas criadas pelo App Engine ultrapassar o máximo especificado na guia "Configurações de desempenho" do Console do Cloud, as instâncias excedentes não serão contabilizadas no cálculo de instância/hora.

Registros

A API Logs é medida quando os dados do registro são recuperados.

A cota de ingestão de registros se refere a registros de solicitação e dados de registros de um aplicativo para um aplicativo. A geração de registros para aplicativos do App Engine é fornecida pelo pacote de operações do Google Cloud. Consulte Preços do Pacote de operações do Google Cloud para mais informações sobre taxas e limites.

E-mail

No App Engine, a conta para uso de e-mail é "por mensagem", contando cada e-mail para cada destinatário. Por exemplo, enviar um e-mail para dez destinatários conta como 10 mensagens.

Mensagens enviadas
O número total de mensagens enviadas pelo aplicativo. Observe que a cota máxima de mensagens enviadas permanece em níveis gratuitos até a primeira cobrança para o aplicativo ser liberada.
Mensagens enviadas ao administrador
O número total de mensagens aos administradores do aplicativo enviadas pelo aplicativo. O limite de tamanho total para cada e-mail de administrador, incluindo cabeçalhos, anexos e corpo, é de 16 KB.
Dados de corpo da mensagem enviados
A quantidade de dados enviados no corpo de mensagens de e-mail. Isso também é computado na cota de largura de banda de saída.
Anexos enviados
O número total de anexos enviados com mensagens de e-mail.
Dados de anexos enviados
A quantidade de dados enviados como anexos de mensagens de e-mail. Isso também é computado na cota de largura de banda de saída.
Recurso Limite diário padrão Taxa máxima
Destinatários contatados por e-mail 100 mensagens 8 mensagens/minuto
Administradores contatados por e-mail 5.000 e-mails 24 e-mails/minuto
Dados de corpo da mensagem enviados 60 MB 340 KB/minuto
Anexos enviados 2.000 anexos 8 anexos/minuto
Dados de anexos enviados 100 MB 10 MB/minuto

É possível adicionar até 50 remetentes autorizados para a API Mail.

Como enviar e-mails acima da cota diária

Se o aplicativo precisar de cotas mais altas para enviar e-mails, você poderá usar um provedor de e-mail de terceiros, como SendGrid, Mailjet ou Mailgun(links em inglês).

Solicitações

Largura de banda de saída (faturável)

A quantidade de dados enviada pelo aplicativo em resposta a solicitações.

Isso inclui:

  • dados exibidos em resposta a solicitações seguras e não seguras por servidores de aplicativos, servidores de arquivos estáticos ou pelo Blobstore;
  • dados enviados em mensagens de e-mail;
  • dados em solicitações HTTP de saída enviadas pelo serviço de busca de URL.
Largura de banda de entrada

A quantidade de dados recebidos pelo aplicativo oriundos de solicitações. Cada solicitação HTTP de entrada pode ter no máximo 32 MB.

Isso inclui:

  • dados recebidos pelo aplicativo em solicitações seguras e não seguras;
  • uploads para o Blobstore;
  • dados recebidos em resposta a solicitações HTTP pelo serviço de busca de URL.
Largura de banda de saída segura
A quantidade de dados enviados pelo aplicativo por meio de uma conexão segura em resposta a solicitações. A largura de banda de saída segura também é computada na cota da largura de banda de saída.
Largura de banda de entrada segura
A quantidade de dados recebidos pelo aplicativo por meio de uma conexão segura proveniente de solicitações. A largura de banda de entrada segura também é computada na cota da largura de banda de entrada.
Recurso Limite diário Taxa máxima
Largura de banda de saída (faturável, inclui HTTPS) 1 GB gratuito, máximo de 14.400 GB 10 GB/minuto
Largura de banda de entrada (inclui HTTPS) Nenhum Nenhuma

Cotas gratuitas para Pesquisa estão listadas na tabela abaixo. Para ver a descrição detalhada de cada tipo de chamada de pesquisa, consulte a documentação de Java, Python e Go.

Recursos da API Search são cobrados de acordo com as taxas na tabela de preços.

Recurso ou chamada de API Cota gratuita
Armazenamento total (documentos e índices) 0,25 GB
Consultas 1.000 consultas por dia
Adição de documentos a índices 0,01 GB por dia

A seção de cota do console do aplicativo exibe uma contagem bruta de solicitações da API. Observe que, ao indexar vários documentos em uma única chamada, a contagem de chamadas é aumentada pela quantidade de documentos.

A API Search impõe estes limites para garantir a confiabilidade do serviço:

  • 100 minutos agregados de tempo de execução da consulta por minuto, dentro de um app e um índice.
  • 15.000 documentos adicionados/excluídos por minuto.
Além disso, há um limite de 10 GB de armazenamento por índice. Quando um app tenta exceder esse valor, um erro de cota insuficiente é retornado. Para aumentar este limite até 200 GB, envie uma solicitação da página App Engine Search do Console do Google Cloud.

Observação: esses limites são aplicados por minuto, mas o Console do Cloud exibe os totais diários de cada um. Os clientes com suporte Silver, Gold ou Platinum podem solicitar limites de taxa de capacidade maiores. Basta entrar em contato com o representante do suporte.

Fila de tarefas

Chamadas para a API Task Queue
O número total de vezes que o aplicativo chamou a API Task Queue para enfileirar uma tarefa.
Contagem de tarefas armazenadas na fila de tarefas
O número total de tarefas que o aplicativo enfileirou que ainda não foram executadas.
Bytes de tarefas armazenadas na fila de tarefas
Os bytes consumidos por tarefas que o aplicativo enfileirou e ainda não foram executadas.

Quando uma tarefa é executada, os pedidos associados são contabilizados nas cotas de solicitação do aplicativo.

Esses limites se aplicam a todas as filas de tarefas:

Recurso Limite diário Taxa máxima
Chamadas para a API Task Queue 1.000.000.000 N/A
Chamadas de gerenciamento de filas de tarefas (usando o Console do Cloud) 10.000 N/A
Recurso Limite padrão
Contagem de tarefas armazenadas na fila de tarefas 10.000.000.000
Bytes de tarefas armazenadas na fila de tarefas Nenhum
Número máximo de filas (inclui as filas push e pull, mas não a padrão) 100 filas

Observação: depois que uma tarefa é executada ou excluída, o armazenamento usado é liberado. A cota de armazenamento é atualizada em intervalos regulares e pode não mostrar o espaço recuperado imediatamente. É possível configurar o limite de bytes de tarefas armazenadas ajustando a configuração da fila. Para mais detalhes, consulte a documentação de Python, Java, Go ou PHP.

Os limites a seguir aplicam-se às filas de tarefas de acordo com o tipo:

Limites de fila push
Tamanho máximo da tarefa100 KB
Taxa de execução de fila500 invocações de tarefas por segundo por fila
Contagem regressiva/ETA máximo para uma tarefa30 dias a partir da data e hora atuais
Número máximo de tarefas que podem ser adicionadas em um lote100 tarefas
Número máximo de tarefas que podem ser adicionadas em uma transação5 tarefas
Número máximo padrão de filas de tarefas100 filas. Entre em contato com o suporte para solicitar um aumento
Limites de fila pull
Tamanho máximo da tarefa1 MB
Contagem regressiva/ETA máximo para uma tarefa30 dias a partir da data e hora atuais
Número máximo de tarefas que podem ser adicionadas em um lote100 tarefas
Número máximo de tarefas que podem ser adicionadas em uma transação 5 tarefas
Número máximo de tarefas que você pode fazer lease em uma única operação 1.000 tarefas
Tamanho máximo de payload ao fazer lease de um lote de tarefas32 MB
Número máximo padrão de filas de tarefas100 filas. Entre em contato com o suporte para solicitar um aumento

Cron

As seguintes cotas são aplicadas aos cron jobs.

Cron jobs
Número de cron jobs.
Recurso Limite padrão
Cron job 250 cron jobs

Busca de URL

Chamadas de API da busca de URL
O número total de vezes que o aplicativo acessou o serviço de busca de URL para executar uma solicitação HTTP ou HTTPS.
Dados de busca de URL enviados
A quantidade de dados enviados ao serviço de busca de URL nas solicitações. Isso também é computado na cota de Largura de banda de saída.
Dados de busca de URL recebidos
A quantidade de dados recebidos do serviço de busca de URL nas respostas. Isto também é computado na cota de Largura de banda de entrada.
Recurso Limite diário Taxa máxima
Chamadas para a API UrlFetch 860.000.000 chamadas 660.000 chamadas/minuto
Dados do UrlFetch enviados 4,5 TB 3.600 MB/minuto
Dados de UrlFetch recebidos 4,5 TB 3.600 MB/minuto