在第一代Google App Engine中,日志是根据请求在Logs Viewer中自动分组的,在第二代中是it's easy enough to set up。>
在背景]中>云函数我找不到任何实现方法(在Logs Viewer中通过executionId
手动过滤)。从网络上的各种文章中我读到,关键是调用Stackdriver Logging API时将trace
参数设置为跟踪ID,并且在HTTP contexts
X-Cloud-Trace-Context
标头中找到此ID。 。在后台上下文中没有标题(例如,从Pub / Sub或Storage触发器调用)。我尝试将其设置为任意值,例如函数上下文中的event_id
,但未发生分组。
这里是我尝试过的缩影:
from google.cloud.logging.resource import Resource import google.cloud.logging log_name = 'cloudfunctions.googleapis.com%2Fcloud-functions' cloud_client = google.cloud.logging.Client() cloud_logger = cloud_client.logger(log_name) request_id = None def log(message): labels = { 'project_id': 'settle-leif', 'function_name': 'group-logs', 'region': 'europe-west1', } resource = Resource(type='cloud_function', labels=labels) trace_id = f'projects/settle-leif/traces/{request_id}' cloud_logger.log_text(message, trace=trace_id, resource=resource) def main(_data, context): global request_id request_id = context.event_id log('First message') log('Second message')
在第一代Google App Engine中,日志是根据日志查看器中的请求自动分组的,而在第二代中,它很容易设置。在后台云函数中,我找不到...
不幸的是,目前看来这不可能。
我已在内部提出了要求此功能的问题,如果有更新,我将更新此答案。