Google cloud functions 读取存储触发器云函数的日志

Google cloud functions 读取存储触发器云函数的日志,google-cloud-functions,python-3.7,google-cloud-logging,Google Cloud Functions,Python 3.7,Google Cloud Logging,我需要读取存储触发器云函数的状态,日志的最后一行 2021-03-09 15:47:42.908 IST function_name 6cymbohrrv6g函数执行耗时11毫秒,状态为“ok” 通过这种方式,我可以确定函数执行是否成功 我尝试使用下面的脚本读取日志,但它显示了所有日志 logging_client = logging.Client() for entry in logging_client.list_entries(): timestamp =

我需要读取存储触发器云函数的状态,日志的最后一行

2021-03-09 15:47:42.908 IST function_name 6cymbohrrv6g函数执行耗时11毫秒,状态为“ok”

通过这种方式,我可以确定函数执行是否成功

我尝试使用下面的脚本读取日志,但它显示了所有日志

    logging_client = logging.Client()
    for entry in logging_client.list_entries():
         timestamp = entry.timestamp.isoformat()
         print("* {}: {}".format(timestamp, entry.payload))

是否有某种方法可以将日志限制为当前执行?我可以读取显示功能状态的最后一个日志吗?

您可以在您的应用程序中使用和高级过滤器。用于Stackdriver日志记录的Python客户端库的官方文档允许使用此参数

过滤器(str)–过滤器表达式。看

例如:

from google.cloud import logging

logging_client = logging.Client()
f = 'resource.type="cloud_function" AND resource.labels.function_name="yourFunctionName" AND textPayload:"Function execution took"'
for entry in logging_client.list_entries(filter_=f):
    print("{} {}".format(entry.labels['execution_id'], entry.payload))
将输出:

...
gssssmirx021 Function execution took 20522 ms, finished with status code: 200
gsssn1aibbc5 Function execution took 20022 ms, finished with status code: 200
请注意
文本负载上的
(:)
:“函数执行已完成”