我编写了一个HTTP触发器,它以ECG数据库名和记录no作为参数,并从Cloud读取记录,计算参数并将它们写入Firestore。我观察到一件非常奇怪的事情,代码崩溃,但没有指出控制台中的原因。这是我在控制台里得到的所有信息:
函数执行时间为58017 ms,结束时状态为:“崩溃”`。
它通常在从云存储读取记录时停止。我正在使用MIT-BIH云存储来读取记录。
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后,经过一段时间,它是有效的。会有什么原因呢?这绝对不是超时问题。
发布于 2020-05-25 18:55:27
很难理解为什么云函数没有日志就会崩溃,因为它可能是由于许多原因造成的。目前,在刷新日志条目或将任何错误跟踪写入堆栈驱动程序之前,云函数都会崩溃。您可以在这里跟踪此问题跟踪器进行任何更新:https://issuetracker.google.com/155215191
https://stackoverflow.com/questions/61536883
复制相似问题