[英]Creating REST API in GCP to read data from BigQuery
Google Cloud Platform 非常新,因此会问基本问题。 我正在寻找将在 GCP 中托管的 API。 外部应用程序将调用 API 从 BigQuery 读取数据。 谁能帮我解决任何示例代码/方法?
寻找基于 Python 的端到端云解决方案
我无法为您提供完整的代码示例。 但:
不要忘记设置 CORS 和潜在的身份验证,就是这样
您可以使用Bigquery
客户端创建一个Python
程序,然后将此程序部署为HTTP
Cloud Function或Cloud Run
服务:
from flask import escape
from google.cloud import bigquery
import functions_framework
@functions_framework.http
def your_http_function(request):
#HTTP Cloud Function.
request_json = request.get_json(silent=True)
request_args = request.args
# example to retrieve argument param in the HTTP call
if request_json and 'name' in request_json:
name = request_json['name']
elif request_args and 'name' in request_args:
name = request_args['name']
# Construct a BigQuery client object.
client = bigquery.Client()
query = """
SELECT name, SUM(number) as total_people
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE state = 'TX'
GROUP BY name, state
ORDER BY total_people DESC
LIMIT 20
"""
query_job = client.query(query) # Make an API request.
rows = query_job.result() # Waits for query to finish
for row in rows:
print(row.name)
return rows
在此示例中,您必须将Python
代码部署为云 Function
您的 function 可以通过带有参数name
的HTTP
调用来调用:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?name=NAME
您还可以使用提供更大灵活性的Cloud Run
,因为您部署了一个Docker
图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.