Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Otomasi Alur Kerja: Trigger, Kondisi, dan Penanganan Gagal

Pelajaran 9 dari 14

Galat, timeout, coba ulang, dan backoff

Coba ulang, tangkap galat, dan langkah cadangan

Setelah pelajaran ini kamu bisa menjalankan kebijakan coba ulang pada hasil percobaan yang sudah ditetapkan dan mengarahkan galat yang tersisa ke langkah cadangan.

±13 menitDiperiksa 7 Okt 2026

Materi

Coba ulang dan penanganan galat bekerja berpasangan. Di Step Functions, langkah Task boleh punya field Retry dan Catch. Saat galat terjadi, aturan Retry diperiksa lebih dulu menurut urutannya, dan hanya aturan yang daftar ErrorEquals-nya memuat nama galat itu yang dipakai. Bila tidak ada aturan Retry yang cocok, atau percobaan ulangnya sudah habis, giliran Catch: alur pindah ke langkah yang disebut aturan Catch pertama yang cocok. Nama khusus States.ALL cocok dengan galat apa pun dan harus ditulis terakhir.

Langkah tujuan Catch disebut langkah cadangan (fallback), misalnya menyimpan pesanan ke antrean untuk diproses nanti atau memberi tahu admin. Pola Retry di Azure Architecture Center menambahkan bahwa permintaan yang tetap gagal setelah sejumlah percobaan diperlakukan sebagai galat dan ditangani, bukan dicoba terus.

// Hasil tiap percobaan kirim resi, ditetapkan lebih dulu
const hasil = ["503", "TIMEOUT", "OK"];
// kebijakan: ulangi "503" dan "TIMEOUT", jadwal jeda 1, 2, 4
// percobaan 1: 503     -> tunggu 1
// percobaan 2: TIMEOUT -> tunggu 2
// percobaan 3: OK      -> berhasil setelah 3 percobaan, total jeda 3 detik

Untuk melatih logika ini tanpa layanan sungguhan, hasil setiap percobaan ditulis lebih dulu sebagai array, seperti contoh di atas. Kode membaca array itu satu per satu, memutuskan apakah galatnya boleh diulang, dan menjumlahkan jeda sebagai angka.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Percobaan pertama langkah SimpanPesanan di bawah gagal dengan galat Data.TidakSah. Apa yang terjadi berikutnya?

"SimpanPesanan": {
  "Type": "Task",
  "Retry": [{ "ErrorEquals": ["Layanan.Sibuk"], "IntervalSeconds": 2, "MaxAttempts": 3 }],
  "Catch": [{ "ErrorEquals": ["States.ALL"], "Next": "BeriTahuAdmin" }]
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke