Cloud Scheduler のジョブ実行でこんなエラーに遭遇したことはありませんか?
httpRequest: {
status: 504
}
jsonPayload: {
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
debugInfo: "URL_TIMEOUT-TIMEOUT_WEB. Original HTTP response code number = 504"
status: "DEADLINE_EXCEEDED"
targetType: "HTTP"
url: "https://hogehoge-fugafuga-an.a.run.app/"
}
Cloud Run Functions のタイムアウト時間は、(HTTP 関数で)最大 60 分です。
Cloud Functions(第 1 世代)の最大タイムアウト時間は 9 分(540 秒)です。
Cloud Functions(第 2 世代)の最大タイムアウト時間は、HTTP 関数の場合は 60 分(3,600 秒)、イベント ドリブン関数の場合は 9 分(540 秒)です。
だからと言って、Cloud Scheduler が HTTP リクエストの完了を最大で 60 分待ってくれるわけではないようです。
Cloud Scheduler の ジョブ試行のタイムアウト時間は、最大 30 分です。
HTTP ターゲットを使用するジョブの実行の最長時間(開始時刻から終了時刻まで)。この上限を超えるジョブはタイムアウト エラーで終了し、構成された再試行ポリシーに従って再試行されます。
つまり、冒頭のエラーは、HTTP リクエストが完了するまでの時間よりも、設定している Cloud Scheduler のジョブ試行のタイムアウト時間が短いことによるものです。
タイムアウトはデフォルトで 3 分になっており、HTTP リクエストの完了に時間がかかることが想定される場合はコンソールから変更することができます。
https://console.cloud.google.com/cloudscheduler/jobs/edit/asia-northeast1/[job-name]
下記を参考にさせていただきました。