我有一个云调度程序,我用它来触发我的云函数作为 http 调用,在我的云函数中,我想形成一个查询(应该是动态的)。为此,我从云调度程序(Json Body)传递了一些参数,但是当我触发我的云函数时,它不会将来自云调度程序的参数值作为 json 主体。谁能帮我解决这个问题。
来自云调度程序的 json 正文:
{
"unit":"QA",
"interval":"3"
}
Run Code Online (Sandbox Code Playgroud)
云函数代码:
def main(request):
request_json = request.get_json(silent=True)
request_args = request.args
if request_json and 'unit' in request_json:
retail_unit = request_json['unit']
elif request_args and 'unit' in request_args:
retail_unit = request_args['unit']
else:
unit = 'UAT'
if request_json and 'interval' in request_json:
interval = request_json['interval']
elif request_args and 'interval' in request_args:
interval = request_args['interval']
else:
interval = 1
query = "select * from `myproject.mydataset.mytable` where unit='{}' and interval ={}".format(
unit,interval)
client = …Run Code Online (Sandbox Code Playgroud) python-3.x google-bigquery google-cloud-functions serverless google-cloud-scheduler
我正在尝试打印 python 中的 bigquery 表中可用的行数,我编写了以下代码:
from google.cloud import bigquery def main():
myquery = "select count(*) from `myproject.mydataset.mytable`"
client = bigquery.Client()
job = client.query(myquery)
result = job.result()
print("Total rows available: ",result)
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,它给我的输出为
“可用总行数:位于 0x00000247B65F29E8> 的 google.cloud.bigquery.table.RowIterator 对象”。
这意味着我正在获得对象价值作为我的输出。但我想打印表中可用的实际行数(查询结果)。
我在 python 中有一个客户端 API,它执行 BigQuery 作业以触发查询并将查询结果写入相应的 BigQuery 表。如何确定该查询结果在任何执行时是否返回零记录?
蟒蛇代码:
def main(request):
query = "select * from `myproject.mydataset.mytable`"
client = bigquery.Client()
job_config = bigquery.QueryJobConfig()
dest_dataset = client.dataset(destination_dataset, destination_project)
dest_table = dest_dataset.table(destination_table)
job_config.destination = dest_table
job_config.create_disposition = 'CREATE_IF_NEEDED'
job_config.write_disposition = 'WRITE_APPEND'
job = client.query(query, location='US', job_config=job_config)
job.result()
Run Code Online (Sandbox Code Playgroud)
我想要如果查询结果没有记录,那么它应该为我打印一些消息。任何人都可以建议如何完成这项工作。
python jobs python-2.7 google-bigquery google-cloud-platform
在我的云函数中,我有一个查询,我正在执行该查询并将作业结果写入新的 bigquery 表。我希望我的查询应该基于某些单位值(使用外部动态参数)是动态的,我正在从谷歌云调度程序触发这个云函数(其中包含 Body 部分中的一些参数值(使用 post 方法和 http 调用)),任何人都可以建议如何将此参数值从云调度程序的主体部分使用到我的云函数中,以使我的查询动态化
在云调度器的主体部分传递某些参数,但不知道如何在云函数中使用它们。
云调度器的主体:
{
'unit': 'myunitname'
'interval':'1'
}
Run Code Online (Sandbox Code Playgroud)
云功能:
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"
Run Code Online (Sandbox Code Playgroud) python google-bigquery google-cloud-functions google-cloud-scheduler
我设置了一个指标,用于查找我的 GCP 云功能中的任何异常错误,然后我创建了一个警报策略并使用通知渠道作为“电子邮件”。这里的问题是,当我使用自己的人员电子邮件地址时,我会收到来自 的有关异常错误的电子邮件通知。但是,当我使用我的团队的 DL 地址作为电子邮件通知渠道时,即使我的云功能出现异常错误,它也不会发送任何电子邮件通知。
有人对这个问题有任何解决方案吗?
先感谢您 !!
notifications monitoring google-cloud-platform google-cloud-stackdriver