Python 2.7 我想使用python从GoogleCloud中获取JSON格式的日志,包括所有属性
我正在使用客户端库Python 2.7 我想使用python从GoogleCloud中获取JSON格式的日志,包括所有属性,python-2.7,google-cloud-platform,google-cloud-logging,Python 2.7,Google Cloud Platform,Google Cloud Logging,我正在使用客户端库 for entry in logging_client.list_entries(order_by=DESCENDING, filter_=FILTER, page_size=1): timestamp = entry.timestamp.isoformat() print('****{}'.format(entry.payload_pb)) print (entry.payload_pb) print('* {}: {}: {}'.form
for entry in logging_client.list_entries(order_by=DESCENDING, filter_=FILTER, page_size=1):
timestamp = entry.timestamp.isoformat()
print('****{}'.format(entry.payload_pb))
print (entry.payload_pb)
print('* {}: {}: {}'.format(timestamp, entry.logger.name, entry.insert_id))
但是payload\u pb
,只有两个属性:value
和type\u url
。
否则我只能获取一些值,比如时间戳
,日志名
,插入ID
我想获取“
protopayload
”中的值。请建议一条路 协议有效负载的值是一条序列化协议缓冲区消息。您需要对其进行反序列化以读取消息中的字段
原型有效负载是一条消息,值的类型由type\u url
一旦获得了proto消息,就可以使用将其转换为JSON
还可以使用MessageToJson
直接处理Any
消息,只要原型消息的描述符已知。这可以通过“RegisterMessage”更新proto来完成。proto有效负载的值是一条序列化的协议缓冲区消息。您需要对其进行反序列化以读取消息中的字段
原型有效负载是一条消息,值的类型由type\u url
一旦获得了proto消息,就可以使用将其转换为JSON
还可以使用MessageToJson
直接处理Any
消息,只要原型消息的描述符已知。这可以通过“RegisterMessage”更新proto来完成。尽管提供了提示,但我无法使它与API一起工作
相反,您可以将日志导出到像BigQuery这样的接收器,并从那里使用SQL进行查询。请看这里的操作指南
由于没有关于如何从GCP服务读取特定protobuf有效载荷的代码(示例或示例),因此它可能还没有准备好进入黄金时段,或者不打算以这种方式使用。AAMOF目前唯一的文档仅用于编写和读取自定义日志
这里是我提出的一个问题,如果你想跟进的话:尽管提供了提示,但我无法使它与API一起工作
相反,您可以将日志导出到像BigQuery这样的接收器,并从那里使用SQL进行查询。请看这里的操作指南
由于没有关于如何从GCP服务读取特定protobuf有效载荷的代码(示例或示例),因此它可能还没有准备好进入黄金时段,或者不打算以这种方式使用。AAMOF目前唯一的文档仅用于编写和读取自定义日志
这里是我提出的问题,如果您想跟进的话:我找不到任何客户端库的方法。但是我用的是Python,
loglist=bq.entries().list(body=request\u body.execute()
这里,bq
是来自discovery.build的响应,loglist
以JSON格式提供响应,并结合了dicts
和list
。我们必须深入研究它们,以获得精确的键值对
我希望这能帮助像我这样需要完成工作的人 我找不到任何客户端库的方法。但是我用的是Python,
loglist=bq.entries().list(body=request\u body.execute()
这里,bq
是来自discovery.build的响应,loglist
以JSON格式提供响应,并结合了dicts
和list
。我们必须深入研究它们,以获得精确的键值对
我希望这能帮助像我这样需要完成工作的人 实际上,您可以通过将环境变量GOOGLE\u CLOUD\u DISABLE\u GRPC
设置为非空字符串,例如GOOGLE\u CLOUD\u DISABLE\u GRPC=true
使API返回dict
(JSON)有效载荷
这将填充payload
而不是payload\u pb
实际上,您可以通过将环境变量GOOGLE\u CLOUD\u DISABLE\u GRPC
设置为非空字符串,例如GOOGLE\u CLOUD\u DISABLE\u GRPC=true,使API返回dict
(JSON)有效载荷
这将填充payload
,而不是payload\u pb
OP专门为GCP消息请求的json\u format.MessageToJson(entry.payload\u pb)
在类型上失败错误:无法按类型找到消息描述符。\u url:type.googleapis.com/google.cloud.audit.AuditLog。
听起来像是您试图将任何
直接转换为JSON,而不是从任何.value
反序列化的消息。我添加了一个关于注册描述符的注释,该描述符可能会对GCP消息有帮助。OP专门要求将GCP消息注册为json\u format.MessageToJson(entry.payload\u pb)
在类型上失败错误:无法按类型找到消息描述符。\u url:type.googleapis.com/google.cloud.audit.AuditLog。
听起来像是您试图将任何
直接转换为JSON,而不是从任何.value
反序列化的消息。我添加了一个关于注册描述符的注释,这可能会有所帮助。谢谢。不过,你能投票表决这个问题吗。需要一些名声,谢谢。不过,你能投票表决这个问题吗。需要一些声誉。你能发布完整的例子吗?这对其他人会有帮助。你发布完整的例子,对其他人会有帮助