我有一个GCP云功能,每天早上按时间表运行。日志显示,在过去的一周里,它已经被触发了三次计划外,我认为只有当有人进入Cloud Scheduler页面并单击该功能上的"立即运行"时,才会发生这种情况。我怎么才能查出是谁干的?日志资源管理器不显示此信息。(人头不会滚动,但IAM权限可能会被剥夺。如果结果是我的话,那就加分了。
对于计划函数,有两组日志—一组用于计划触发的云功能,另一组用于cloud Scheduler本身。在Cloud Scheduler的日志中,只显示每日日程安排,而不显示额外的触发器。
云功能日志管理器中启动的功能日志:
{
"textPayload": "Function execution started",
"insertId": "REDACTED",
"resource": {
"type": "cloud_function",
"labels": {
"region": "REDACTED",
"function_name": "REDACTED",
"project_id": "REDACTED"
}
},
"timestamp": "2022-05-04T08:49:37.980952884Z",
"severity": "DEBUG",
"labels": {
"execution_id": "REDACTED"
},
"logName": "projects/REDACTED/logs/cloudfunctions.googleapis.com%2Fcloud-functions",
"trace": "projects/REDACTED/traces/REDACTED",
"receiveTimestamp": "2022-05-04T08:49:37.981500851Z"
}
如果您的Cloud Function的触发器是http
并且未经授权,则很难(或几乎不可能)找出是谁调用了它。
另外,有可能在调度时没有足够的可用实例,然后稍后重试运行Cloud Function。