Я написал триггер HTTP, который принимает имя базы данных ЭКГ и запись no в качестве аргументов и читает запись из облачного хранилища, вычисляет параметры и записывает их в Firestore. Я заметил очень странную вещь: код вылетает без указания причины в консоли. Это все, что я получаю в консоли:
Выполнение функции заняло 58017 мс, завершено со статусом: 'cra sh' `.
Обычно останавливается, когда читает запись из облачного хранилища. Я использую MIT-BIH Cloud Storage для чтения записей.
from google.cloud import storage
from flask import escape
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import numpy as np
import os
from pathlib import Path
from os import listdir
from os.path import isfile, join
from random import randint
def GCFname(request):
recordno = request.args['recordno']
database = request.args['database']
client = storage.Client()
bucket = client.get_bucket('bucket_name')
# it crashes here
record = wfdb.rdrecord(recordno, channels=[0],pb_dir='mitdb')
sig = record.p_signal[:,0]
test_qrs = processing.gqrs_detect(record.p_signal[:,0], fs=record.fs)
ann_test= wfdb.rdann(recordno, 'atr',pb_dir='mitdb')
##Calculate Parameters
cred = credentials.ApplicationDefault()
firebase_admin.initialize_app(cred, {
'projectId': 'project_name',
})
db = firestore.client()
doc_ref = db.collection('xyz').document(database).collection('abc').document(recordno)
doc_ref.set({
u'fieldname': fieldvalue
})
Я развернул с помощью gcloud
, gcloud functions deploy GCFname --runtime python37 --trigger-http --allow-unauthenticated --timeout 540s
Но при использовании того же URL через некоторое время он работает. Что может быть причиной для этого? Это определенно не проблема тайм-аута.