【问题标题】:Python Iterator | Google cloud loggingPython 迭代器 |谷歌云日志
【发布时间】:2021-05-15 22:45:50
【问题描述】:

我尝试使用 Google 云日志记录 API 检索日志并尝试使用 Python 迭代器。以下是我的代码:

import os
import pprint
from google.cloud import logging

from google.cloud.logging import ASCENDING
from google.cloud.logging import DESCENDING

pp = pprint.PrettyPrinter(indent=1)

FILTER = 'resource.type="k8s_container"'

client = logging.Client()

iterator = client.list_entries(filter_=FILTER, order_by=DESCENDING)

print(type(iterator))
for page in iterator.pages:
  print('    Page number: %d' % (iterator.page_number,))
  print('  Items in page: %d' % (page.num_items,))
  print('Items remaining: %d' % (page.remaining,))
  print('Next page token: %s' % (iterator.next_page_token,))
  print('----------------------------')
  for entry in page:
      print(entry.timestamp)

但执行上述程序后,我得到以下错误:

<class 'generator'>
Traceback (most recent call last):
  File "/Users/suniljacob/Sunil/11-gitDownloads/19-gitlab/google_logging/cloud_loggingg.py", line 19, in <module>
    for page in iterator.pages:
AttributeError: 'generator' object has no attribute 'pages'

请求退伍军人提供一些帮助,因为我被困在这里

P.S.:我在 Python 3.9 上运行并使用 virtualenv

【问题讨论】:

  • here 看来,您需要调用list_resources 而不是list_entries 以获得支持pages 属性的迭代器。
  • Client 对象没有list_resources 属性

标签: python-3.x google-cloud-platform google-cloud-logging


【解决方案1】:

问题已在github 中列出。

解决方法是使用禁用 grpc 设置初始化记录器客户端,如下所示:

from google.cloud import logging  

client = logging.Client(_use_grpc=0)
FILTER = 'resource.type="k8s_container"'

iterator = client.list_entries(filter_=FILTER, order_by=DESCENDING)

print(type(iterator))
for page in iterator.pages:
  print('    Page number: %d' % (iterator.page_number,))
  print('  Items in page: %d' % (page.num_items,))
  print('Items remaining: %d' % (page.remaining,))
  print('Next page token: %s' % (iterator.next_page_token,))
  print('----------------------------')
  for entry in page:
      print(entry.timestamp)

或将 DISABLE_GRPC 环境变量设置为任何值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 2021-02-15
    • 2021-06-16
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多