Memecahkan masalah Cloud Scheduler

Halaman ini menunjukkan cara menyelesaikan masalah pada Cloud Scheduler.

Cloud Scheduler memublikasikan log di awal setiap eksekusi tugas dan di akhir setiap eksekusi tugas. Anda dapat mengambil, melihat, dan menganalisis log untuk tugas tertentu, termasuk log audit yang tersedia untuk Cloud Scheduler. Untuk mengetahui informasi selengkapnya, lihat Melihat log.

Secara default, jika tugas Cloud Scheduler tidak menerima konfirmasi dari layanan targetnya—penangan permintaan tugas—tugas tersebut dianggap gagal. Cloud Scheduler akan mencoba kembali tugas sesuai dengan backoff eksponensial yang telah Anda konfigurasi.

Untuk mengetahui informasi tentang insiden yang memengaruhi layanan Google Cloud , lihat Google Cloud Dasbor Service Health dan Semua insiden yang dilaporkan untuk Cloud Scheduler.

Tugas gagal karena masalah layanan hilir

Kegagalan tugas mungkin disebabkan oleh masalah pada layanan hilir yang ditargetkan Cloud Scheduler—misalnya, Cloud Run—bukan Cloud Scheduler itu sendiri. Anda dapat mencurigai adanya masalah layanan hilir jika kondisi berikut berlaku:

  • Izin untuk Cloud Scheduler telah disiapkan dengan benar.
  • Cloud Scheduler dapat berhasil menjangkau layanan target.
  • Pesan error di log eksekusi Cloud Scheduler berasal dari layanan downstream.

Untuk mengatasi masalah ini, selesaikan beberapa langkah berikut:

  1. Panggil layanan hilir secara langsung: Pastikan layanan hilir dapat dipanggil dengan berhasil tanpa Cloud Scheduler. Pemanggilan yang berhasil menunjukkan bahwa Cloud Scheduler kemungkinan menyebabkan masalah; jika tidak berhasil, layanan hilir memerlukan proses debug lebih lanjut.
  2. Periksa log layanan tujuan: Periksa log untuk layanan tujuan, tentukan error yang dihasilkan, dan triase sesuai dengan error tersebut.
  3. Cari operasi yang berjalan lama: Jika Cloud Scheduler menampilkan error HTTP 504 untuk operasi yang berjalan lama (lebih dari 30 menit), periksa log layanan tujuan untuk melihat apakah eksekusi berhasil atau gagal, karena layanan tujuan mungkin memiliki waktu tunggu permintaan yang lebih lama. Dalam skenario tersebut, Cloud Scheduler akan mengalami waktu tunggu habis, tetapi layanan tujuan tidak.

Pekerjaan gagal karena error izin

Izin mengontrol akun utama mana yang dapat mengakses resource dan operasi apa yang diizinkan. Izin yang salah konfigurasi dapat mengganggu eksekusi tugas, dan dapat menyebabkan error izin ditolak. Log audit memberikan catatan mendetail tentang semua perubahan izin, sehingga Anda dapat mengidentifikasi sumber masalah ini.

Jika tugas Cloud Scheduler Anda gagal karena error izin, log eksekusi mungkin menampilkan pesan yang mirip dengan "debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403".

Untuk mengatasi masalah ini, selesaikan satu atau beberapa verifikasi berikut:

  • Verifikasi peran IAM yang diberikan kepada agen layanan: Agen layanan Cloud Scheduler memerlukan peran Agen Layanan Cloud Scheduler (roles/cloudscheduler.serviceAgent). Tanpa peran ini, tugas Cloud Scheduler akan gagal. Anda dapat memberikan peran secara manual kepada agen layanan Cloud Scheduler. Pemberian izin secara manual hanya diperlukan jika Anda mengaktifkan Cloud Scheduler API sebelum 19 Maret 2019; atau Anda menghapus peran Agen Layanan Cloud Scheduler. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran Agen Layanan Cloud Scheduler.

  • Verifikasi izin akun layanan Anda: Pastikan akun layanan yang terlampir ke tugas Anda memiliki izin dan cakupan yang benar untuk memanggil layanan tujuan. Hal ini mencakup skenario saat target berada di project lain, atau merupakan target akhir dari layanan perantara. Jika target Anda berada dalam Google Cloud, konfirmasi bahwa Anda telah memberikan peran yang diperlukan ke akun layanan Anda. Setiap layanan dalam Google Cloud memerlukan peran tertentu, dan layanan penerima secara otomatis memverifikasi token yang dihasilkan. Misalnya, untuk Cloud Run dan Cloud Run functions, Anda harus memberikan peran Cloud Run Invoker. Jika target Anda berada di luar Google Cloud, layanan penerima harus memverifikasi token secara manual. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi ke Cloud Scheduler dan Menggunakan autentikasi dengan target HTTP.

  • Verifikasi pelanggaran Kontrol Layanan VPC: Kontrol Layanan VPC adalah fitur yang memungkinkan Anda menyiapkan perimeter yang aman untuk mencegah pemindahan data yang tidak sah. Google CloudUntuk menentukan apakah error terkait dengan Kontrol Layanan VPC, periksa apakah Anda telah mengaktifkan Kontrol Layanan VPC dan menerapkannya ke project dan layanan yang sedang Anda coba gunakan. Untuk memverifikasi apakah project dan layanan dilindungi oleh Kontrol Layanan VPC, periksa kebijakan Kontrol Layanan VPC di tingkat hierarki resource tersebut.

    Untuk memahami cakupan masalah, Anda dapat mengambil error Kontrol Layanan VPC dari log audit.

    1. Di konsol Google Cloud , buka halaman Logs Explorer:

      Buka Logs Explorer

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

    2. Kueri log audit untuk kriteria berikut:

      severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"

      Secara khusus, pesan error mungkin mencakup teks berikut:

      • Request is prohibited by organization's policy
      • Request violates VPC Service Controls

    Untuk mengetahui informasi selengkapnya tentang masalah yang mungkin Anda alami saat mengonfigurasi Kontrol Layanan VPC, lihat artikel Memecahkan masalah umum.

  • Verifikasi endpoint pribadi: Cloud Scheduler hanya dapat memanggil endpoint pribadi tertentu seperti Cloud Run, fungsi Cloud Run, dan Google Cloud API dalam perimeter Kontrol Layanan VPC. Periksa setelan ingress untuk layanan tujuan Anda—misalnya, lihat Membatasi ingress jaringan untuk Cloud Run—dan izin akun layanan yang terlampir. Anda mungkin menerima pesan error URL_ERROR-ERROR_DNS. Untuk mengetahui informasi selengkapnya, dalam dokumen ini, lihat Pekerjaan gagal karena target tujuan tidak dapat dijangkau.

Tugas gagal karena target tujuan tidak dapat dijangkau

Masalah ini terjadi saat tugas Cloud Scheduler Anda gagal karena target tujuan tidak dapat dijangkau. Log eksekusi menampilkan error yang diawali dengan URL_ERROR atau URL_UNREACHABLE.

Untuk mengatasi masalah ini, bergantung pada pesan error yang diterima, selesaikan salah satu pemeriksaan berikut:

  • URL_ERROR-ERROR_AUTHENTICATION: Error HTTP 401 (Unauthorized) atau HTTP 407 (Proxy Authentication Required) ditampilkan. Target tujuan memerlukan autentikasi; namun, permintaan Cloud Scheduler tidak menyertakan token autentikasi yang valid—misalnya, permintaan tidak menyertakan header otorisasi atau kredensial tidak valid. Periksa setelan autentikasi tugas Anda. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi ke Cloud Scheduler dan Menggunakan autentikasi dengan target HTTP.

  • URL_ERROR-ERROR_DNS: Menunjukkan bahwa pengambilan URL gagal karena nama host tidak dapat di-resolve menggunakan Domain Name System (DNS)—misalnya, nama host tidak ada atau tidak memiliki alamat IP terkait. Pesan error mungkin menyertakan teks Original HTTP response code number = 0. Periksa validitas nama host dan, saat memanggil endpoint pribadi, pastikan endpoint tersebut didukung oleh Cloud Scheduler, dan periksa setelan ingress-nya.

  • URL_ERROR-ERROR_NOT_FOUND: Server web menampilkan error HTTP 404 Not Found. Periksa apakah URL target sudah benar dan resource ada.

  • URL_ERROR-ERROR_OTHER: Error ini merujuk pada error 4xx HTTP umum yang belum dijelaskan sebelumnya. Periksa log untuk mengambil kode respons HTTP asli. Jika Anda menerima error HTTP 403, lihat Tugas gagal karena error izin dalam dokumen ini.

  • URL_UNREACHABLE-UNREACHABLE_5xx: Target tujuan menampilkan error HTTP 5xx atau 429. Hal ini mungkin merupakan kondisi sementara—misalnya, server yang kelebihan beban. Periksa log target tujuan untuk men-debug masalah.

  • URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET: Koneksi direset oleh peer. Periksa masalah di sisi server eksternal.

  • URL_UNREACHABLE-UNREACHABLE_ERROR: Hal ini menunjukkan error jaringan. Periksa apakah URL target sudah benar dan apakah ada aturan firewall yang memblokir akses.

Masalah eksekusi tugas

Tugas Cloud Scheduler dijalankan pada waktu yang ditentukan atau interval reguler. Masalah berikut mungkin terjadi saat tugas sedang dieksekusi.

Tugas yang sebelumnya berfungsi berhenti dieksekusi

Masalah ini terjadi saat tugas Cloud Scheduler yang sebelumnya berjalan dengan berhasil berhenti dieksekusi karena Cloud Scheduler API dinonaktifkan. Anda dapat mengonfirmasi waktu API dinonaktifkan dengan membuat kueri log audit untuk kriteria berikut:

resource.type="audited_resource" AND
protoPayload.serviceName="cloudscheduler.googleapis.com" AND
operation.producer="serviceusage.googleapis.com" AND
protoPayload.authorizationInfo.permission="serviceusage.services.disable"

Untuk mengatasi masalah ini, aktifkan Cloud Scheduler API.

Eksekusi tugas menjadi tidak teratur karena waktu musim panas

Saat membuat tugas Cloud Scheduler menggunakan konsol, Anda harus menentukan zona waktu. Google Cloud Saat menggunakan Google Cloud CLI, Anda dapat secara opsional menentukan zona waktu menggunakan flag --time-zone; jika tidak, zona waktu default yang digunakan adalah Coordinated Universal Time atau UTC.

Masalah ini terjadi saat tugas dikonfigurasi dengan zona waktu non-UTC dan eksekusinya menjadi tidak teratur karena perubahan waktu musim panas (DST). Hal ini wajar terjadi.

Jika tugas Anda memerlukan irama yang sangat tepat, Anda harus memilih zona waktu yang tidak menerapkan DST. Secara khusus, untuk menghindari masalah ini sepenuhnya, konfigurasi jadwal tugas Anda agar menggunakan zona waktu UTC.

Untuk mengetahui informasi selengkapnya, lihat Format cron job dan zona waktu.

Langkah berikutnya

Jika Anda tidak dapat menemukan solusi untuk masalah Anda dalam dokumentasi Cloud Scheduler, pertimbangkan opsi berikut:

Untuk mengetahui informasi selengkapnya, lihat Dukungan Cloud Scheduler.