大查询函数失败



更新:我在云函数上测试了这个函数,得到了这个错误Error: function terminated。当我查看日志时:in open_connection raise errors.InterfaceError( mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '111.111.111:3306' (110 Connection timed out)

我试图创建一个函数,从mysql中提取数据并将其加载到大查询中,但该函数不适用于大查询。这是我的密码。

import mysql.connector
from google.cloud import bigquery
import pandas as pd
def test(request):
client = bigquery.Client()

mydb = mysql.connector.connect(
host='host',
user='user',
password='password',
database="db")


mycursor = mydb.cursor()
mycursor.execute("my_query")

myresult = mycursor.fetchall() 



df=pd.DataFrame(myresult,columns=mycursor.column_names)

dataset_ref = client.dataset('dataset_name')    
job_config = bigquery.LoadJobConfig()
job_config.autodetect = True
job_config.write_disposition = "WRITE_TRUNCATE"
load_job = client.load_table_from_dataframe(
df, 'datasetname.tablename', job_config=job_config
)
print("Starting job {}".format(load_job))
return ("Done!", 200)

这是requirements.txt:

mysql-connector==2.2.9
google-cloud-bigquery==2.3.1
google-cloud-storage==1.32.0
pandas==1.3.1

当我在没有请求参数的情况下使用spyder运行函数时,它运行得很好。

云函数在与项目其他部分不同的环境中运行。

他们可以连接到互联网;但不能访问您的项目资源,除非您明确配置了该访问权限。

您需要做的是配置一个VPC无服务器访问连接器。

当您将此连接器分配给云功能时,它将允许您连接到该VPC中的资源(云sql、计算实例等)。

相关内容

  • 没有找到相关文章

最新更新