Desenvolvido por Cloud Run e Eventarc , o Cloud Functions para Firebase v2 tem o potencial de oferecer uma infraestrutura mais poderosa, controle avançado sobre desempenho e escalabilidade e mais controle do tempo de execução das funções. Esta documentação de visualização pública explica o que há de novo e o que está disponível neste momento no programa beta para v2 e fornece algumas orientações sobre como usar a nova API, sozinha ou em conjunto com as APIs do Cloud Functions para Firebase v1.
O que há de novo no Cloud Functions para Firebase v2
As alterações e aprimoramentos atualmente disponíveis no Cloud Functions para Firebase v2 incluem:
- As instâncias de função agora podem executar mais de uma solicitação por vez . Este recurso está disponível para funções com uma CPU dedicada ou superior. Os níveis de simultaneidade podem ser definidos por função ou em todas as funções com o método
setGlobalOptions
. Se não especificado, novas funções com 1 CPU dedicada ou superior terão como padrão 80 solicitações simultâneas. Consulte Permitir solicitações simultâneas . - Proteja suas funções de chamada e HTTP com uma nova configuração de
cors
. Os gatilhos HTTP agora também têm uma configuraçãocors
para tornar o CORS mais fácil de gerenciar . - O Cloud Functions agora foi criado no Cloud Run . Se você não estiver familiarizado com o Cloud Run, não se preocupe: criar funções é tão fácil quanto antes. O Cloud Run é um produto sem servidor mais moderno que oferece melhor desempenho, melhor configuração, melhor monitoramento e muito mais.
- O Google colaborou com líderes do setor para criar a especificação CloudEvents . As funções de manipulação de eventos agora usam esse padrão aberto como sua assinatura de evento.
- Os novos tipos de acionadores incluem acionadores de alertas do Firebase , acionadores de eventos personalizados para extensões do Firebase e funções de fila de tarefas para executar tarefas com uso intensivo de recursos no Cloud Tasks (as funções de fila de tarefas também estão disponíveis na v1).
- O SDK
firebase-functions
firebase foi reimaginado como mais nativo do JavaScript moderno. Você pode configurar funções v2 globalmente, usar objetos de opções e usar importações modulares . - As funções HTTP agora podem ter um tempo limite de 1 hora (antes eram 9 minutos) se necessário para cargas de trabalho de longa duração.
- As instâncias de função agora são padronizadas para a conta de serviço de computação padrão em vez da conta de serviço do mecanismo de aplicativo.
Limitações durante a visualização pública
Esta visualização pública limitada do Cloud Functions v2 ainda não inclui o conjunto completo de funcionalidades planejadas nem fornece paridade total de recursos com o Cloud Functions v1. Ele é limitado em termos de acionadores e regiões disponíveis e possui as outras limitações atuais descritas nesta seção.
Locais do Cloud Functions atualmente disponíveis
Atualmente, o Cloud Functions v2 está disponível nas seguintes regiões:
-
europe-north1
-
europe-west1
-
europe-west4
-
us-central1
-
us-east1
-
us-west1
Acionadores do Cloud Functions atualmente disponíveis
O Cloud Functions v2 é compatível com os seguintes acionadores em segundo plano do Firebase:
- Banco de dados em tempo real do Firebase
- Armazenamento na núvem
- Alertas do Firebase
- Pub/Sub
- Chamadas
- Tarefas na nuvem
- HTTP
Atualmente, o Cloud Functions v2 não é compatível com os seguintes acionadores:
- Cloud Firestore
- Autenticação do Firebase
- Google Analytics
- Funções programadas
- Configuração remota do Firebase
- Laboratório de testes do Firebase
Outras limitações
Essas limitações também se aplicam ao Cloud Functions v2:
- Os nomes das funções são restritos a letras minúsculas, números e traços.
- A observabilidade total ainda não foi incorporada ao Firebase CLI ou ao Firebase console. Para observar suas instâncias de função, use o Console do Google Cloud para o serviço Cloud Run subjacente .
- Atualmente, o Firebase Local Emulator Suite é compatível com as funções HTTP, Cloud Storage e Pub/Sub na v2.
- URLs
cloudfunctions.net
ainda não são compatíveis com funções HTTP; temporariamente, você verá URLs.run.app
. Essa limitação também afeta a chamada de funções que podem ser chamadas e de fila de tarefas (consulte os respectivos guias para soluções alternativas aceitáveis). - As partidas a frio ainda não foram otimizadas na v2 e temporariamente podem ser significativamente mais lentas do que na v1. No entanto, os usuários finais devem experimentar menos partidas a frio em geral, graças à simultaneidade.