Может кто-нибудь дать мне документацию «Начало работы: написать и развернуть свои первые функции» с помощью Python? - PullRequest
0 голосов
/ 25 февраля 2019

Этот документ от Firebase содержит информацию о том, как написать и развернуть облачную функцию в Nodejs, но может ли кто-нибудь помочь мне получить этот самый документ на 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!Кто-нибудь может быть достаточно любезен, чтобы сказать мне, где я иду не так?

1 Ответ

0 голосов
/ 25 февраля 2019

Файл .json, на который вы ссылаетесь, вероятно, является файлом зависимостей для облачной функции Node.js.

Как это работает

У каждой облачной функции Google есть дополнительный файл (в дополнение к основному коду), в котором есть все библиотеки для установки.Например, если вы используете библиотеку requests в своем коде, то нет способа запустить pip install requests перед выполнением основного кода.Поэтому вы добавляете эту библиотеку в дополнительный файл, и облачная функция сначала прочитает этот файл во время развертывания и попытается установить все библиотеки, упомянутые там.

Для кода Node.js файл с библиотеками представляет собой файл .json.Для Python это requirements.txt файл.Для получения дополнительной информации вы можете обратиться к документации Python Runtime .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...