我试图连接到BigQuery表从谷歌云功能,但我的函数返回以下错误:
错误:函数终止。处理建议:检查日志,查看终止原因。其他故障排除文档可在https://cloud.google.com/functions/docs/troubleshooting#logging找到。详细信息:500内部服务器错误:服务器遇到内部错误,无法完成您的请求。服务器超载或应用程序出错。
当我检查日志时,我看到以下错误:
Traceback(最近一次调用):文件"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py", 2073行,在wsgi_app response = self.full_dispatch_request()文件"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py", 1518行,在full_dispatch_request rv = self.handle_user_exception(e)文件"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py", 1516行,在full_dispatch_request rv = self.dispatch_request()文件"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py",第1502行,在dispatch_request中返回self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)文件"/layers/google.python.pip/pip/lib/python3.9/site-packages/functions_framework/init.py",第99行,在view_func返回函数(request._get_current_object())文件"/workspace/main.py",第72行,在条目client = bigquery.Client() AttributeError: 'function'对象没有' client '属性
我不明白为什么属性'Client'不存在。我相信我导入的bigquery是正确的。下面是我的入口点函数和简单的测试脚本:
import os
import json
from google.cloud import bigquery
def entry(request):
client = bigquery.Client()
query_job = client.query("""SELECT MAX(day) FROM `name of project and bigquery table`""")
for i in query_job:
print(i[0])
return "ok"
这是我的requirements.txt文件
google-cloud-bigquery
sqlalchemy==1.4.37
pandas==1.4.2
PyMySQL==1.0.2
如能指点,不胜感激。
UPDATE
在我的云函数中有另一个函数叫做bigquery。我认为这与我在第三行代码中导入bigquery产生了冲突。我相信这是我的问题的根本原因。