Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Python 2.7 我想使用python从GoogleCloud中获取JSON格式的日志,包括所有属性_Python 2.7_Google Cloud Platform_Google Cloud Logging - Fatal编程技术网

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
反序列化的消息。我添加了一个关于注册描述符的注释,这可能会有所帮助。谢谢。不过,你能投票表决这个问题吗。需要一些名声,谢谢。不过,你能投票表决这个问题吗。需要一些声誉。你能发布完整的例子吗?这对其他人会有帮助。你发布完整的例子,对其他人会有帮助