Как импортировать библиотеку в Python для функций Firebase?

Привет сообществу StackOverflow. Я пытаюсь развернуть функции Firebase, написанные на Python, из проекта React-Native.

Мой фрагмент кода выглядит так:

from firebase_functions import firestore_fn, https_fn
import fitz
import re
import requests
import io
from datetime import datetime
# The Firebase Admin SDK to access Cloud Firestore.
from firebase_admin import initialize_app, firestore, credentials, storage 
import google.cloud.firestore
from google.cloud import storage as Storage
from google.oauth2 import service_account
from uuid import uuid4

cred = credentials.Certificate("link_to_my_certificate.json")
app = initialize_app(cred,{'storageBucket':'my_project_name.appspot.com'})

@https_fn.on_request()
def printHello(req: https_fn.Request) -> https_fn.Response:
    https_fn.Response("Hello from Firebase functions", status=200)

Я их протестировал:

tsc --смотреть

эмуляторы Firebase: start --only функции

Он работает отлично, и после этого я пытаюсь их развернуть и получаю такой результат:

knswrw@MacBook functions % firebase deploy --only functions

=== Deploying to 'my_project_name'...

i  deploying functions
i  functions: preparing codebase default for deployment
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
i  artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔  artifactregistry: required API artifactregistry.googleapis.com is enabled
✔  functions: required API cloudbuild.googleapis.com is enabled
✔  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: Loading and analyzing source code for codebase default to determine what to deploy
 * Serving Flask app 'serving'
 * Debug mode: off

WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:8082

Press CTRL+C to quit

127.0.0.1 - - [14/Sep/2023 12:34:11] "GET /__/functions.yaml HTTP/1.1" 200 -

127.0.0.1 - - [14/Sep/2023 12:34:11] "GET /__/quitquitquit HTTP/1.1" 200 -

/bin/sh: line 1: 75256 Terminated: 15          python3.11 "/Users/knswrw/Desktop/Project/firebase/functions/venv/lib/python3.11/site-packages/firebase_functions/private/serving.py"

i  functions: preparing functions directory for uploading...
i  functions: packaged /Users/knswrw/Desktop/Project/firebase/functions (14.13 KB) for uploading
i  functions: ensuring required API run.googleapis.com is enabled...
i  functions: ensuring required API eventarc.googleapis.com is enabled...
i  functions: ensuring required API pubsub.googleapis.com is enabled...
i  functions: ensuring required API storage.googleapis.com is enabled...
✔  functions: required API pubsub.googleapis.com is enabled
✔  functions: required API run.googleapis.com is enabled
✔  functions: required API eventarc.googleapis.com is enabled
✔  functions: required API storage.googleapis.com is enabled
i  functions: generating the service identity for pubsub.googleapis.com...
i  functions: generating the service identity for eventarc.googleapis.com...
✔  functions: functions folder uploaded successfully
i  functions: creating Python 3.11 (2nd Gen) function printHello(us-central1)...
Could not create or update Cloud Run service printhello, Container Healthcheck failed. Revision 'printhello-00001-wev' is not ready and cannot serve traffic. The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information.

Logs URL: https://console.cloud.google.com/logs/viewer?project=my_project_name&resource=cloud_run_revision/service_name/printhello/revision_name/printhello-00001-wev&advancedFilter=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22printhello%22%0Aresource.labels.revision_name%3D%22printhello-00001-wev%22 
For more troubleshooting guidance, see https://cloud.google.com/run/docs/troubleshooting#container-failed-to-start

Functions deploy had errors with the following functions:
    printHello(us-central1)
i  functions: cleaning up build files...

Error: There was an error deploying functions

Я пытался поискать эту тему в Интернете, но не нашел ответа на свой вопрос.

Буду рад любому ответу, любому объяснению и любому совету.

Спасибо.

ОТРЕДАКТИРОВАНО: Возникла проблема с библиотекой fitz из Pymupdf (я использую ее при импорте выше).

Вопрос следующий, теперь измененный:

Как импортировать библиотеку в Python для функций Firebase? Как его правильно установить? И как развернуть функции?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел решение своей проблемы, проверив файл firebase-debug.log. Похоже, возникла проблема с библиотекой «fitz» из Pymupdf, которую я импортировал в свой код.

Возникла проблема с библиотекой fitz из Pymupdf (я использую ее в импорт выше)

Первоначально я добавил библиотеку в свои функции Python Firebase, используя следующую команду:

pip3 install -t _directoryName _moduleName

Однако оказывается, что это был неправильный подход.

Я столкнулся с проблемами развертывания и получил такое сообщение об ошибке:

Дополнительные инструкции по устранению неполадок см. https://cloud.google.com/run/docs/troubleshooting#container-failed-to-start Не удалось создать или обновить имя функции службы Cloud Run. Не удалось выполнить проверку работоспособности контейнера. Версия «FunctionName-00001-wus» не готова и не может обслуживать трафик. Предоставленный пользователем контейнер не смог запуститься и прослушивать порт, определенный переменной среды PORT=8080. Журналы этой версии могут содержать дополнительную информацию.

Изучив журналы, я заметил, что проблема связана с оператором import fitz в моем коде.

Импортировать фитц

Чтобы решить эту проблему, я выполнил следующие шаги:

Удалите каталог «venv».

Добавьте библиотеки, которые хотите использовать, в файл «requirements.txt».

Воссоздайте виртуальную среду с помощью Python 3.11, используя следующие команды:

python3.11 -m venv venv
source venv/bin/activate
pip3 install --upgrade pip
python3.11 -m pip install -r requirements.txt
 

Напишите свои функции Firebase.

Наконец, выполните следующие действия для развертывания:

tsc —watch
firebase emulators:start --only functions
firebase deploy

Вот и все! Теперь ваше развертывание должно работать гладко.

Как устранить эту ошибку??

Churikeeno 20.09.2023 02:57

% tsc — ошибка наблюдения TS6231: не удалось разрешить путь «—watch» с расширениями: «.ts», «.tsx», «.d.ts», «.cts», «.d.cts», « .mts», «.d.mts». Файл находится в программе, потому что: Для компиляции указан корневой файл.

Churikeeno 20.09.2023 02:57

Другие вопросы по теме

Похожие вопросы