【发布时间】:2020-02-04 05:58:36
【问题描述】:
我有一个在 Google Cloud Run 上运行的节点服务器。现在我想启用堆栈驱动程序跟踪。当我在本地运行服务时,我能够在 GCP 中获取跟踪。但是,当我将服务作为 Google Cloud Run 运行时,出现错误:
"@google-cloud/trace-agent ERROR TraceWriter#publish: Received error with status code 403 while publishing traces to cloudtrace.googleapis.com: Error: The request is missing a valid API key."
我确保服务帐户具有跟踪代理角色。
我的 app.js 中的第一行
require('@google-cloud/trace-agent').start();
在本地运行我正在使用包含的 .env 文件
GOOGLE_APPLICATION_CREDENTIALS=<path to credentials.json>
根据https://github.com/googleapis/cloud-trace-nodejs These values are auto-detected if the application is running on Google Cloud Platform 所以,我在 gcp 图像上没有这个凭据
【问题讨论】:
-
我没有发现任何明显的错误。或许可以通过描述您如何设置 Cloud Run 服务来扩充您的问题,或者提供一个我们可以用来测试/重新创建的简单示例?
-
你的 Cloud Run 的身份是什么,这个身份的角色是什么?
-
@guillaumeblaquiere 我使用的是默认服务帐户,但添加了云跟踪代理角色。当我今天早上再次使用我的服务时,一切似乎都运行良好。所以,我想我可以解决这个问题,但我只是想知道,服务使用分配给它的帐户的新角色需要时间吗?
-
大部分时间非常快,但最多可能需要 5 分钟(我观察到的最大值)。我从不尝试更多,但这并非不可能!
标签: node.js trace stackdriver google-cloud-stackdriver google-cloud-run