Cloud Functions para Firebase - conta de faturamento não configurada

88

Acabei de implementar o novo Cloud Functions para Firebase, mas há algo no registro que me incomoda:

Conta de faturamento não configurada. A rede externa não está acessível e as cotas são severamente limitadas. Configure a conta de faturamento para remover essas restrições

Na verdade, consegui acessar a função da rede externa, então estou me perguntando se realmente preciso fornecer minha conta de faturamento. Não há nada sobre isso na documentação do firebase.

Estou usando o plano de assinatura do Spark para fins de teste pessoal e não quero adicionar informações de faturamento se ainda não vou pagar por nada.

Hristo Stoyanov
fonte

Respostas:

89

A mensagem de aviso "Conta de faturamento não configurada" é registrada automaticamente pelo Google Cloud Functions quando nenhuma conta de faturamento é configurada. Não significa que seu código não esteja funcionando, mas apenas como um lembrete caso você tenha um problema.


A restrição é sobre o acesso de saída - por exemplo, sua função pode solicitar recursos da Internet em geral. É absolutamente normal usar uma função para responder a um webhook ou para acessar serviços internos do Google, como o Realtime Database.

Se você quiser ligar para um serviço da web de terceiros (por exemplo), deverá habilitar o faturamento.

Para as outras cotas, dê uma olhada em: https://firebase.google.com/pricing/ - como você pode ver, há limites para o número de invocações (125.000 no momento da escrita) e CPU e memória (40k cpu- segundos e 40k GB-segundos) no nível gratuito.

Ian Barber
fonte
Obrigado pela resposta, e as 'cotas limitadas'?
Hristo Stoyanov
Que tal enviar um e-mail em resposta a uma alteração no banco de dados? Você habilita o faturamento para isso? Usando serviços do gmail, por exemplo.
Lancelot de
Gmail seria a API do google, então deveria estar OK, algo como sendgrid para o qual você precisa de faturamento.
Ian Barber,
@IanBarber Significa ativar os planos Blaze / Flame? O plano Blaze cobra somente depois que os limites gratuitos são usados?
SidFerreira
2
Todo mundo entende isso? Se estou recebendo este log, tenho que adicionar informações de faturamento?
38

As respostas de Doug Stevenson me ajudaram melhor:

TL; DR: É uma mensagem de aviso. se você não está fazendo chamadas, você está bem

Essa mensagem de aviso aparece para todas as funções ao executar no plano Spark. É apenas um aviso - você pode ignorá-lo se estiver fazendo sua própria rede de saída.

Estamos tentando alterar ou remover essa mensagem para que seja menos confusa.

[...]

Bernatfortet
fonte
7
Essa mensagem de erro também me confundiu! Eu voto por mudar a mensagem para ser mais clara.
Thomas David Kehoe
Você pode filtrar essa mensagem no console clicando no menu suspenso "Todos os níveis de registro" e escolhendo "Informações". Todos os seus registros e erros ainda serão exibidos, mas a mensagem persistente irá embora.
Jack Steam
7

A primeira invocação acontece, mas é marcada quando está no plano de ativação e é invocada de uma rede externa (veja os logs)

No momento em que este artigo foi escrito, o plano BLAZE (Pay as you go) permitia rede (acesso externo) e tinha um nível gratuito perpétuo.

As primeiras 2.000.000 invocações, 400.000 GB por segundo, 200.000 CPU por segundo e 5 GB de tráfego de saída da Internet são fornecidas gratuitamente a cada mês. Você só é cobrado pelo uso após esta cota gratuita.

Mais sobre preços de funções de nuvem https://cloud.google.com/functions/pricing

Satta Ravi
fonte
1
Então, você está dizendo que posso habilitar o faturamento e começar a enviar e-mails usando nodemailer e similares sem ser cobrado
Kingston Fortune
7

Certifique-se de que seu projeto está vinculado a uma conta de faturamento.

Se você navegar para https://console.cloud.google.com/billing

Você deve encontrar seu projeto do Firebase listado lá. Caso contrário, você precisará acessar a lista de projetos e, no menu de projetos, selecionar faturamento e vincular uma conta de faturamento a ele.

insira a descrição da imagem aqui

Samer
fonte
2

1. Despreze a versão do nó do conjunto de versão do nó 8

   "engines": {
   "node": "8"
   },

2. Em seguida, implante o Firebase seguindo o comando como vocês sabem

> firebase deploy
Em seguida, você obterá esse tipo de saída https://i.stack.imgur.com/4hWQZ.png em seu terminal se perceber que a imagem acima marcada com uma linha vermelha é a região hospedada do seu projeto Firebase. se você também obtiver o mesmo resultado, tudo está feito, estamos na etapa final

manualmente temos que atingir nosso ponto final de projeto

 https://yourregion-firebaseprojectname.cloudfunctions.net/yourfunctionname
 (exported function name)
 

No meu caso https://us-central1-socialape-d5dab.cloudfunctions.net/helloWorld

ou siga estes passos

1.Depreciate node version to 8 
2. firebase deploy  
3. you'll get deploy complete message above that message you'll see 
   functions[helloWorld(us-central)]:Succesful update operation .
4. this us-central  is your project hosted region 
   prefix to this [helloWorld   is your function name  get this information from uour output terminal.   
5.  After  that https://yourregion-firebaseprojectname.cloudfunctions.net/yourfunctionname
 (exported function name)       which is  helloWorld
william james
fonte
0

Sim, você precisa atualizar para o plano blaze de seu plano gratuito existente que é spark. Você não será cobrado até que exceda os benefícios do plano Spark.

Vamshidhar Reddy
fonte