问题描述
您如何正确地将日志从 Google Workflows 发送到 Stackdriver?
根据我创建的文档:
- logStep1:
call: sys.log
args:
text: "Step 2 launched accordingly"
severity: INFO
工作流按预期启动和完成,但是,当我进入 stackdriver 查找我的日志条目时,它没有显示,只有“审计日志”,其余的都找不到了。
Google 文档说明了查找这些日志的某些步骤,但即使是:resource.type="workflows.googleapis.com/Workflows"
在 stackdriver 过滤器中也被标记为不正确。
我希望在蓝色图标 (INFO) 条目下看到我的文本有效负载,但可惜没有。
我在日志步骤中遗漏了什么吗?
使用的资源: https://cloud.google.com/workflows/docs/troubleshooting#sending-logs
解决方法
重新阅读文档后,它指出它需要 Log Writer 权限,我认为该权限将从调用者继承,但事实并非如此,一旦必须创建具有所有必需权限的特定服务帐户,包括日志编写器或日志管理员,以便能够将信息发送到 Stackdriver 事件流。
因此,要解决此问题,请检查:
- 您有一个手工制作的服务帐户,而不是自动生成的帐户。
- 该 SA 拥有访问您的端点和日志写入能力所需的所有 API 和权限。
- 创建流时必须使用创建的 SA(而不是生成的 SA)
- 试试吧。
我已经对此进行了多次测试,并且有效。