Nesta página, mostramos detalhes sobre os limites escalonáveis e baseados em uso do Cloud Functions de acordo com o plano de preços de pagamento por uso do Blaze. Esses limites se aplicam a projetos do Firebase que implantam funções no ambiente de execução do Node.js 10.
O plano Blaze oferece grandes quantidades de invocações, tempo de computação e tráfego de Internet sem custo financeiro. No entanto, as implantações de função geram cobranças de pequena escala pelo espaço de armazenamento usado no contêiner da função. Consulte as Perguntas frequentes sobre o Firebase para mais informações.
As cotas do Firebase abrangem quatro áreas:
Limites de recursos
Afetam a quantidade total de recursos que as funções podem consumir.
Limites do tempo
Afetam o tempo em que algo pode ser executado.
Limites de taxas
Afetam a frequência em que você pode chamar a API Firebase para gerenciar suas funções.
Limites de rede
Afetam os limites de conexão e de instâncias de saída.
Veja abaixo mais detalhes sobre os diferentes tipos de limites. As diferenças entre os limites do Firebase (1ª geração) e do Firebase (2ª geração) são observadas quando aplicável.
Limites de recursos
Os limites de recursos afetam a quantidade total de recursos que as funções podem consumir. O escopo regional é definido por projeto, e cada projeto mantém limites próprios.
Cota | Descrição | Limite (1ª geração) | Limite (2ª geração) | Pode aumentar? | Escopo |
---|---|---|---|---|---|
Número de funções | O número total de funções que podem ser implantadas por região. | 1.000 | 1.000 menos o número de serviços do Cloud Run implantados | Não | por região |
Tamanho máximo da implantação | O tamanho máximo da implantação de uma única função. | 100 MB (compactado) para fontes 500 MB (descompactado) para a soma de fontes com módulos |
N/A | Não | Por função |
Tamanho máximo da solicitação HTTP descompactada | Os dados enviados a funções HTTP em uma solicitação HTTP. | 10 MB | 32 MB | Não | Por invocação |
Tamanho máximo da resposta HTTP descompactada | Os dados enviados a partir de funções HTTP em uma resposta HTTP. | 10 MB | 10 MB para respostas de streaming. 32 MB para respostas que não sejam de streaming. |
Não | Por invocação |
Tamanho máximo dos eventos de funções orientadas a eventos | Os dados enviados nos eventos para funções em segundo plano. | 10 MB | 512 KB para eventos Eventarc. 10 MB para eventos legados. |
Não | Por evento |
Memória máxima da função | Quantidade de memória que cada instância de função pode usar | 8GiB | 32GiB | Não | Por função |
Memória máxima do projeto | Quantidade de memória, em By, que um projeto pode usar. É medida pela soma total da memória solicitada pelo usuário em instâncias de função em um período de 1 minuto. | Depende da região selecionada. Esse limite pode ser maior em regiões de alta capacidade ou menor em regiões abertas recentemente. | N/A | Sim | por projeto e região |
CPU máxima do projeto | Quantidade de CPU, em mili vCPU, que um projeto pode usar. Ela é medida pela soma total da CPU solicitada pelo usuário em todas as instâncias de função em um período de 1 minuto. | Depende da região selecionada. Esse limite pode ser maior em regiões de alta capacidade ou menor em regiões abertas recentemente. | N/A | Sim | por projeto e região |
Limites do tempo
Cota | Descrição | Limite (1ª geração) | Limite (2ª geração) | Pode aumentar? | Escopo |
---|---|---|---|---|---|
Duração máxima da função | A quantidade máxima de tempo em que uma função pode ser executada antes de ser encerrada à força | 540 segundos | 60 minutos para funções HTTP. 9 minutos para funções orientadas por eventos. |
Não | Por invocação |
Limites de taxas
Cota | Descrição | Limite (1ª geração) | Limite (2ª geração) | Pode aumentar? | Escopo |
---|---|---|---|---|---|
Chamadas de API (READ) | Chamadas para descrever ou listar funções pela API Firebase. | 5.000 a cada 100 segundos | 1.200 a cada 60 segundos | Somente para a 1ª geração | por projeto (1ª geração) por região (2ª geração) |
Chamadas de API (WRITE) | Chamadas para implantar ou excluir funções pela API Firebase. | 80 a cada 100 segundos | 60 a cada 60 segundos | Não 1 | por projeto (1ª geração) por região (2ª geração) |
Chamadas de API (CALL) | Chamadas para a API "call". | 16 a cada 100 segundos | N/A | Não 2 | Por projeto |
Limites de rede
Para informações sobre a solicitação de rede e os limites de largura de banda do Firebase (2ª geração), confira Limites de rede.
Os limites de rede a seguir se aplicam ao Firebase (1ª geração):
- Conexões de saída por segundo por instância: 500 (não pode ser aumentado)
- Resoluções de DNS de saída por segundo por instância: 100 (não é possível aumentar)
Escalonabilidade
O Firebase invocado por HTTP é escalonado rapidamente para lidar com o tráfego de entrada, enquanto as funções em segundo plano têm um escalonamento mais gradual. O escalonamento de uma função é determinado por alguns fatores, incluindo:
- o tempo necessário para a execução da função ser concluída. O escalonamento vertical de funções de curta duração geralmente acontece para que seja possível lidar com solicitações simultâneas;
- o tempo necessário para uma função ser inicializada em uma inicialização a frio;
- a taxa de erros da sua função;
Fatores temporários, como a carga regional e a capacidade do data center.
Outras cotas para funções de segundo plano
Cota | Descrição | Limite | Pode aumentar? | Escopo | Versão do produto |
---|---|---|---|---|---|
Máximo de invocações simultâneas | O número máximo de invocações simultâneas de uma única função Exemplo: se o processamento de cada evento demorar 100 segundos, a taxa de invocação será limitada a 30 por segundo em média. |
3.000 | Sim | Por função | Somente 1ª geração |
Taxa de invocação máxima | A taxa máxima de eventos sendo processados por uma única função Exemplo: se o processamento de um evento demorar 100 ms, a taxa de invocação será limitada a 1.000 por segundo, mesmo que apenas 100 solicitações, em média, sejam processadas em paralelo. |
1.000 por segundo | Não | Por função | Somente 1ª geração |
Máximo de dados de eventos simultâneos | O tamanho máximo total de eventos recebidos para invocações simultâneas de uma única função Exemplo: se os eventos tiverem 1 MB e o processamento deles levar 10 segundos, em média, a taxa será de 1 evento por segundo, porque o 11º evento não será processado até que seja concluído o processamento de um dos 10 primeiros eventos. |
10 MB | Não | Por função | 1ª e 2ª geração |
Capacidade máxima de eventos recebidos | A capacidade máxima de eventos recebidos para uma única função Exemplo: se os eventos tiverem 1 MB, a taxa de invocação poderá ser no máximo 10 por segundo, mesmo se as funções forem concluídas com 100 ms. |
10 MB por segundo | Não | Por função | 1ª e 2ª geração |
Quando você atingir um limite de cota
Quando todo o recurso alocado é consumido por uma função, ele fica indisponível até que você renove ou aumente a cota. Isso significa que a função não será executada enquanto isso, assim como todas as outras funções no mesmo projeto. Uma função retorna um código de erro HTTP 500 quando um dos recursos excede a cota, e a função não pode ser executada.
Para aumentar as cotas acima dos padrões listados nesta página, acesse a Página de cotas do Firebase e selecione as cotas que você quer modificar. Em seguida, clique em Editar cotas, forneça as informações do usuário se for necessário e insira o novo limite para cada cota.
Limites de cota para a implantação da Firebase CLI
Para cada função que a Firebase CLI implanta, esses tipos de limites de taxa e tempo são afetados:
- Chamadas de API (READ): 1 chamada por implementação, independentemente de quantas funções
- Limite: 5000 por 100 segundos
- Chamadas de API (WRITE): 1 chamada por função
- Limite: 80 por 100 segundos
Consulte também a referência da Firebase CLI.