Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在google cloud scheduler(Python)中定义的google cloud函数中使用body参数?_Python_Google Bigquery_Google Cloud Functions_Google Cloud Scheduler - Fatal编程技术网

如何在google cloud scheduler(Python)中定义的google cloud函数中使用body参数?

如何在google cloud scheduler(Python)中定义的google cloud函数中使用body参数?,python,google-bigquery,google-cloud-functions,google-cloud-scheduler,Python,Google Bigquery,Google Cloud Functions,Google Cloud Scheduler,在我的云函数中,我有一个正在执行的查询,并将作业结果写入新的bigquery表。我希望我的查询应该是动态的,基于使用外部动态参数的一些单位值,我正在从google cloud Scheduler触发这个云函数,它在Body部分使用post方法和http调用包含一些参数值,有人能建议如何将这个参数值从cloud scheduler的body部分使用到my cloud函数中,使我的查询成为动态的吗 在云调度器的主体部分传递某些参数,但不知道如何在云函数中使用它们 云调度器主体: { 'unit':

在我的云函数中,我有一个正在执行的查询,并将作业结果写入新的bigquery表。我希望我的查询应该是动态的,基于使用外部动态参数的一些单位值,我正在从google cloud Scheduler触发这个云函数,它在Body部分使用post方法和http调用包含一些参数值,有人能建议如何将这个参数值从cloud scheduler的body部分使用到my cloud函数中,使我的查询成为动态的吗

在云调度器的主体部分传递某些参数,但不知道如何在云函数中使用它们

云调度器主体:

{
'unit': 'myunitname'
'interval':'1'
}
云功能:

import flask
from google.cloud import bigquery

app = flask.Flask(__name__)


def main(request):
    with app.app_context():
        query = "SELECT unitId FROM `myproject.mydataset.mytable` 
        where unit ='{}' and interval='{}'".format(unit,interval)
        client = bigquery.Client()
        job_config = bigquery.QueryJobConfig()
        dest_dataset = client.dataset('mydataset', 'myproject')
        dest_table = dest_dataset.table('mytable')
        job_config.destination = dest_table
        job_config.create_disposition = 'CREATE_IF_NEEDED'
        job_config.write_disposition = 'WRITE_APPEND'
        job = client.query(query, job_config=job_config)
        job.result()

        return "Triggered"

最好的方法是使用pub/sub将所有内部内容保存到Google云:

[]

云调度器向Pub/Sub发送一条消息,其中包含云功能所需的信息的有效负载对象。云函数应该从发布/子主题中触发,然后您可以访问正在引用的动态部分所需的message.attributes

云调度器-发布到->发布/订阅主题-订户推送->云功能


如果您想继续使用HTTP,可以按照它描述如何从函数中使用POST的地方进行操作。您正在使用“请求”模块提取在云计划程序作业中传递的主体属性。

最好的方法是使用pub/sub将所有内部属性保留到Google Cloud:

[]

云调度器向Pub/Sub发送一条消息,其中包含云功能所需的信息的有效负载对象。云函数应该从发布/子主题中触发,然后您可以访问正在引用的动态部分所需的message.attributes

云调度器-发布到->发布/订阅主题-订户推送->云功能

如果您想继续使用HTTP,可以按照它描述如何从函数中使用POST的地方进行操作。您正在使用requests模块提取在云调度器作业中传递的body属性