谁能用python给我“入门:编写和部署您的第一个函数”的文档吗?

时间:2019-02-25 12:38:42

标签: python python-3.x firebase google-cloud-platform

Firebase上有一份有关如何在Node.js中编写和部署云功能的文档,但是任何人都可以帮助我在python中获得该文档。我对这个领域的新手感到困惑吗?

但是,我尝试编写如下所示的云函数,但是不断出现一些我要在下面提及的错误:

import json
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
def go_firebase(request):
    cred = credentials.Certificate('firebasesdk.json')
    firebase_admin.initialize_app(cred, {
    'databaseURL' : 'https://firebaseio.com/'
    })
    ref=db.reference('agents')
    snapshot = ref.order_by_key().get()
    for key, val in snapshot.items():
        kw=val
        dictfilt = lambda x, y: dict([ (i,x[i]) for i in x if i in set(y) ])
        wanted_keys = ("address","name","phone","uid")
        result = dictfilt(kw, wanted_keys)
        data= json.dumps(result, sort_keys=True)
        return data 

在使用http触发器部署功能后,在日志中说:

severity:  "ERROR"  
 textPayload:  "Traceback (most recent call last):
  File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 313, in run_http_function
    result = _function_handler.invoke_user_function(flask.request)
  File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 215, in invoke_user_function
    return call_user_function(request_or_event)
  File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 208, in call_user_function
    return self._user_function(request_or_event)
  File "/user_code/main.py", line 6, in go_firebase
    cred = credentials.Certificate('firebasesdk.json')
  File "/env/lib/python3.7/site-packages/firebase_admin/credentials.py", line 83, in __init__
    with open(cert) as json_file:
FileNotFoundError: [Errno 2] No such file or directory: 'firebasesdk.json'

我不知道为什么说找不到文件,因为我在执行该功能的路径中有该json文件!我正在使用Google Cloud Shell! 谁能告诉我我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

您所引用的.json文件可能是Node.js Cloud Function的依赖项文件。

工作方式

每个Google Cloud Function都有一个额外的文件(除主代码外),其中包含所有要安装的库。例如,如果您在代码中使用requests库,则在执行主代码之前无法运行pip install requests。因此,您将此库添加到其他文件中,Cloud Function将在部署期间首先读取该文件,并尝试安装其中提到的所有库。

对于Node.js代码,带有库的文件是.json文件。对于Python,它是一个requirements.txt文件。有关更多信息,您可以参考The Python Runtime文档。