如何使用 Cloud Logging Python SDK 获取给定接收器的 writerIdentity

How to get writerIdentity for a given Sink using Cloud Logging Python SDK

我正在尝试获取给定日志路由器接收器的 writerIdentity。我可以使用 gcloud cli 获取它:gcloud logging sinks describe --format='value(writerIdentity)' <sink-name>

但出于某种原因,Python SDK 等效项(如下所示)returns None 适用于我所有的接收器:

from google.cloud import logging_v2 as logging
logging_client = logging.Client()
for i in logging_client.list_sinks(): 
    print(i, i.name, i.writer_identity)

我是不是漏掉了什么?

我找到了 Google 关于写身份 SINK 的 gcloud 文档,它可能会帮助您获得有关如何构建命令的更多信息,但是专注于写身份的文档是:

https://cloud.google.com/logging/docs/export/configure_export_v2#gcloud_3

除了这些选项之外,还有云团队提供的 gcloud-python。虽然它似乎不是最新的 beta api,但日志记录是其中之一。

gcloud-python

gcloud cli 命令代码:

gcloud logging sinks describe --format='value(writerIdentity)' <SINK_NAME>

其他文档:

Developers_Google

Cloud_google

Python_SDK

Logging_Sink

对于任何 运行 使用 Python SDK 检索作者身份的人来说,我错过了一个步骤。显然,在使用 Python SDK 时,我们需要重新加载接收器配置才能获得编写器身份。以下是工作解决方案:

from google.cloud import logging_v2 as logging
logging_client = logging.Client()
for i in logging_client.list_sinks(): 
    i.reload()
    print(i, i.name, i.writer_identity)

sink.reload source code