HTTPrequest通过具有多个表的云函数向GCP BigQuery请求



我希望通过GCP中的云函数创建一个到BigQuery的HTTPrequest,其中请求传递一个值,该值传递给查询,另一个值从联接表返回。SQL在BQ中工作,但当我将其应用于Cloud函数时,返回值时会出现问题。

这是我也在用的卷发器。

https://us-central1-something.cloudfunctions.net/something/something2?client_Id=823754783.2

提前谢谢。

from flask import escape
from google.cloud import bigquery
def cors_enabled_function(request):
if request.method == 'OPTIONS':
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '3600'
}
return ('', 204, headers)

client = bigquery.Client()
def something2(request):
request_json = request.get_json(silent=True)
request_args = request_args

table = ['`audience-cookie.ecommerce.traffic` as traffic JOIN `audience-cookie.ecommerce.cardholder` as cardholder ON traffic.customerId = cardholder.customerId']
QUERY = ('SELECT '+cardholder+' from `'+table+'` WHERE client_Id='+client_Id)
try:
query_job = client.query(QUERY)
rows = query_job.result()
row_list = []
for row in rows:
row_list.append(str(row[cardholder]))
return("<p>"+"</p><p>".join(row(row_list) + "</p>"))
except e:
return(e) 

我建议您打印查询。有几个错误

  • 为什么在tablevar定义中使用[]
  • 在表中使用后引号,在将表插入查询时使用后引号。所以,在最后,你有一个双引号
  • 代码中未定义client_Id

最新更新