如何使用Cloud Logging Python SDK获取指定Sink的writerIdentity
解决方案
问题原因
list_sinks()接口仅返回日志sink的基础元数据,默认不填充writer_identity字段,该字段仅在调用单个sink的查询接口时才会返回。你使用的gclouddescribe命令底层就是调用了单sink查询接口,因此可以正常获取到值。- 若你使用的身份凭证没有
logging.sinks.get权限,也会导致查询结果中writer_identity为空。
修复方法
- 权限校验:确保当前使用的身份凭证拥有
logging.sinks.get权限,可授予对应身份roles/logging.configWriter(日志配置写入者)角色。 - 调整代码逻辑,遍历到sink名称后单独查询每个sink的完整配置,示例代码如下:
from google.cloud import logging_v2 as logging logging_client = logging.Client() for sink in logging_client.list_sinks(): # 调用get_sink接口获取单个sink的全量配置信息 full_sink = logging_client.get_sink(sink.name) print(full_sink.name, full_sink.writer_identity)
- 若调整后仍返回空值,可将SDK升级到最新版本:
pip install --upgrade google-cloud-logging
内容的提问来源于stack exchange,提问作者vivekveeramani
相关产品推荐
相关产品推荐

