【发布时间】:2020-03-20 08:05:25
【问题描述】:
我创建了一个 GCP Cloud Scheduler 作业,每 15 分钟运行一次。它应该从我的 Node js 应用程序调用 API。 在控制台中,作业定义如下所示:
Description: A job
Frequency: */15 * * * *
Timezone: Central Standard Time
Target: HTTP
URL: https://<company url>/api/email-reminder/
HTTP method: GET
Auth header: Add OIDC token
Service account: xxxxxxxxxxx-compute@developr.gserviceaccount.com
当它运行时,它会在日志中返回以下内容:
httpRequest: {
}
insertId: "15wxxxxxxge1lv"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
jobName: "projects/<project name>/locations/us-central1/jobs/xxxxxxxxx-scheduler-emailreminders-1"
status: "UNKNOWN"
targetType: "HTTP"
url: "https://<company url>/api/email-reminder/"
}
logName: "projects/<project name>/logs/cloudscheduler.googleapis.com%2Fexecutions"
receiveTimestamp: "2019-11-14T04:45:50.280446452Z"
resource: {
labels: {…}
type: "cloud_scheduler_job"
}
severity: "ERROR"
timestamp: "2019-11-14T04:45:50.280446452Z"
}
如何找到有关错误的更多信息?
【问题讨论】:
-
StackDriver 日志说什么?它可能会给你一些提示
-
我帖子的后半部分是作业运行的 StackDriver 日志条目。
-
用 curl 手动调用端点会发生什么?在 CLI
gcloud中配置服务帐户。然后获取身份令牌gcloud auth print-identity-token。然后执行curl -H 'Authorization: Bearer ID_TOKEN' https://<company url>/api/email-reminder/ -
我假设服务帐户中的错误是您问题中的拼写错误,而不是 Cloud Scheduler 任务定义中的错误:
@developr -
你能提供使用的服务帐户的角色列表吗?
标签: google-cloud-platform google-cloud-scheduler