Memulai ulang eksekusi mesin negara dengan redrive di Step Functions - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai ulang eksekusi mesin negara dengan redrive di Step Functions

Anda dapat menggunakan redrive untuk memulai ulang eksekusi Alur Kerja Standar yang tidak berhasil diselesaikan dalam 14 hari terakhir. Ini termasuk eksekusi yang gagal, dibatalkan, atau habis waktu.

Ketika Anda redrive eksekusi, melanjutkan eksekusi yang gagal dari langkah yang gagal dan menggunakan input yang sama. Step Functions mempertahankan hasil dan riwayat eksekusi dari langkah-langkah sukses, yang tidak dijalankan kembali ketika Anda redrive sebuah eksekusi. Misalnya, katakan bahwa alur kerja Anda berisi dua status: Lulus status alur kerja status diikuti oleh Status alur kerja tugas status. Jika eksekusi alur kerja Anda gagal pada status Tugas, dan Anda redrive eksekusi, eksekusi menjadwal ulang dan kemudian menjalankan kembali status Tugas.

Redriven eksekusi menggunakan definisi dan eksekusi mesin status yang sama ARN yang digunakan untuk upaya eksekusi asli. Jika upaya eksekusi asli Anda dikaitkan dengan versi, alias, atau keduanya, redriven eksekusi dikaitkan dengan versi yang sama, alias, atau keduanya. Bahkan jika Anda memperbarui alias Anda untuk menunjuk ke versi yang berbeda, redriven eksekusi terus menggunakan versi yang terkait dengan upaya eksekusi asli. Karena redriven eksekusi menggunakan definisi mesin status yang sama, Anda harus memulai eksekusi baru jika Anda memperbarui definisi mesin status Anda.

Ketika Anda redrive eksekusi, batas waktu tingkat mesin negara, jika ditentukan, diatur ulang ke 0. Untuk informasi selengkapnya tentang batas waktu tingkat mesin negara bagian, lihatTimeoutSeconds.

Eksekusi redrives dianggap sebagai transisi negara. Untuk informasi tentang cara transisi status mempengaruhi penagihan, lihat Harga Step Functions.

Redrive kelayakan untuk eksekusi yang gagal

Anda bisa redrive eksekusi jika upaya eksekusi asli Anda memenuhi ketentuan berikut:

  • Anda memulai eksekusi pada atau setelah 15 November 2023. Eksekusi yang Anda mulai sebelum tanggal ini tidak memenuhi syarat untuk redrive.

  • Status eksekusi tidakSUCCEEDED.

  • Eksekusi alur kerja belum melebihi redrivable periode 14 hari. Redrivable periode mengacu pada waktu di mana Anda bisa redrive eksekusi yang diberikan. Periode ini dimulai dari hari mesin negara menyelesaikan pelaksanaannya.

  • Eksekusi alur kerja belum melebihi waktu buka maksimum satu tahun. Untuk informasi tentang kuota eksekusi mesin status, lihatKuota yang berkaitan dengan eksekusi mesin status.

  • Jumlah riwayat acara eksekusi kurang dari 24.999. Redriven eksekusi menambahkan riwayat peristiwa mereka ke riwayat peristiwa yang ada. Pastikan eksekusi alur kerja Anda berisi kurang dari 24.999 peristiwa untuk mengakomodasi peristiwa ExecutionRedriven riwayat dan setidaknya satu peristiwa riwayat lainnya.

Redrive perilaku masing-masing negara

Bergantung pada status yang gagal dalam alur kerja Anda, redrive perilaku untuk semua negara yang gagal bervariasi. Tabel berikut menjelaskan redrive perilaku untuk semua negara.

Nama negara Redrive perilaku eksekusi
Lulus status alur kerja

Jika langkah sebelumnya gagal atau mesin status habis, status Pass akan keluar dan tidak dieksekusi redrive.

Status alur kerja tugas

Menjadwalkan dan memulai status Tugas lagi.

Ketika Anda redrive eksekusi yang menjalankan kembali status Tugas, TimeoutSeconds untuk status, jika ditentukan, diatur ulang ke 0. Untuk informasi selengkapnya tentang batas waktu, lihat Status tugas.

Status alur kerja pilihan Mengevaluasi kembali aturan negara Pilihan.
Tunggu status alur kerja

Jika negara menentukan Timestamp atau TimestampPath yang mengacu pada stempel waktu di masa lalu, redrive menyebabkan status Tunggu keluar dan memasuki status yang ditentukan di Next bidang.

Status alur kerja yang berhasil

Tidak redrive eksekusi mesin negara yang memasuki status Sukses.

Status alur kerja gagal

Memasuki kembali status Gagal dan gagal lagi.

Status alur kerja paralel

Penjadwalan ulang dan redrives hanya cabang-cabang yang gagal atau dibatalkan.

Jika status gagal karena States.DataLimitExceeded kesalahan, status Paralel dijalankan kembali, termasuk cabang yang berhasil dalam upaya eksekusi asli.

Status Peta Sebaris

Penjadwalan ulang dan redrives hanya iterasi yang gagal atau dibatalkan.

Jika status gagal karena States.DataLimitExceeded kesalahan, status Peta Sebaris dijalankan kembali, termasuk iterasi yang berhasil dalam upaya eksekusi asli.

Status Peta Terdistribusi

redrives eksekusi alur kerja anak yang gagal dalam Map Run. Untuk informasi selengkapnya, lihat Redriving Peta Berjalan di eksekusi Step Functions.

Jika status gagal karena States.DataLimitExceeded kesalahan, status Peta Terdistribusi dijalankan kembali. Ini termasuk alur kerja anak yang berhasil dalam upaya eksekusi asli.

IAMizin untuk redrive sebuah eksekusi

Step Functions membutuhkan izin yang sesuai untuk redrive sebuah eksekusi. Contoh IAM kebijakan berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mesin negara Anda untuk redriving sebuah eksekusi. Ingatlah untuk mengganti italicized teks dengan informasi spesifik sumber daya Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine:*" } ] }

Untuk contoh izin yang Anda butuhkan untuk redrive Map Run, lihatContoh IAM kebijakan untuk redriving Peta Terdistribusi.

Redriving eksekusi di konsol

Anda bisa redrive eksekusi yang memenuhi syarat dari Step Functions konsol.

Misalnya, bayangkan Anda menjalankan mesin status dan status paralel gagal dijalankan.

Gambar berikut menunjukkan Lambda Langkah panggilan bernama Do nomor kuadrat di dalam keadaan Paralel telah mengembalikan gagal. Hal ini menyebabkan keadaan Paralel gagal juga. Cabang-cabang yang eksekusinya sedang berlangsung atau tidak dimulai dihentikan dan eksekusi mesin negara gagal.

Contoh grafik eksekusi mesin status gagal.
Untuk redrive eksekusi dari konsol
  1. Buka konsol Step Functions, lalu pilih mesin status yang ada yang gagal eksekusi.

  2. Pada halaman detail mesin status, di bawah Eksekusi, pilih instance eksekusi yang gagal.

  3. Pilih Redrive.

  4. Di Redrivekotak dialog, pilih Redrive eksekusi.

    Tip

    Jika Anda berada di halaman Rincian Eksekusi dari eksekusi yang gagal, lakukan salah satu hal berikut untuk redrive eksekusi:

    • Pilih Recover, lalu pilih Redrive dari kegagalan.

    • Pilih Tindakan, lalu pilih Redrive.

    Perhatikan bahwa redrive menggunakan definisi mesin negara yang sama danARN. Ini terus menjalankan eksekusi dari langkah yang gagal dalam upaya eksekusi asli. Dalam contoh ini, ini adalah langkah Do square number dan Wait 3 sec cabang di dalam keadaan Paralel. Setelah memulai ulang eksekusi langkah-langkah yang tidak berhasil ini dalam keadaan Paralel, redrive akan melanjutkan eksekusi untuk langkah Selesai.

  5. Pilih eksekusi untuk membuka halaman Detail Eksekusi.

    Di halaman ini, Anda dapat melihat hasil dari redriven eksekusi. Misalnya, di Ringkasan eksekusi bagian ini, Anda dapat melihat Redrive count, yang mewakili berapa kali eksekusi telah redriven. Di bagian Acara, Anda dapat melihat redrive peristiwa eksekusi terkait ditambahkan ke peristiwa upaya eksekusi asli. Misalnya, ExecutionRedriven acara.

Redriving eksekusi menggunakan API

Anda bisa redrive eksekusi yang memenuhi syarat menggunakan. RedriveExecutionAPI Ini API memulai ulang eksekusi Alur Kerja Standar yang tidak berhasil dari langkah yang gagal, dibatalkan, atau habis waktu.

Dalam AWS Command Line Interface (AWS CLI), jalankan perintah berikut untuk redrive eksekusi mesin negara yang gagal. Ingatlah untuk mengganti italicized teks dengan informasi spesifik sumber daya Anda.

aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

Memeriksa redriven eksekusi

Anda dapat memeriksa redriven eksekusi di konsol atau menggunakanAPIs: GetExecutionHistorydan DescribeExecution.

Memeriksa redriven eksekusi di konsol
  1. Buka konsol Step Functions, lalu pilih state machine yang sudah ada redriven sebuah eksekusi.

  2. Buka halaman Detail Eksekusi.

    Di halaman ini, Anda dapat melihat hasil dari redriven eksekusi. Misalnya, di Ringkasan eksekusi bagian ini, Anda dapat melihat Redrive count, yang mewakili berapa kali eksekusi telah redriven. Di bagian Acara, Anda dapat melihat redrive peristiwa eksekusi terkait ditambahkan ke peristiwa upaya eksekusi asli. Misalnya, ExecutionRedriven acara.

Memeriksa redriven eksekusi menggunakan APIs

Jika Anda sudah redriven eksekusi mesin negara, Anda dapat menggunakan salah satu dari berikut ini APIs untuk melihat detail tentang redriven eksekusi. Ingatlah untuk mengganti italicized teks dengan informasi spesifik sumber daya Anda.

  • GetExecutionHistory — Mengembalikan riwayat eksekusi yang ditentukan sebagai daftar acara. Ini API juga mengembalikan detail tentang redrive upaya eksekusi, jika tersedia.

    Dalam AWS CLI, jalankan perintah berikut.

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo
  • DescribeExecution — Memberikan informasi tentang eksekusi mesin negara. Ini bisa menjadi mesin negara yang terkait dengan eksekusi, input dan output eksekusi, eksekusi redrive rincian, jika tersedia, dan metadata eksekusi yang relevan.

    Dalam AWS CLI, jalankan perintah berikut.

    aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

Coba lagi perilaku redriven eksekusi

Jika redriven eksekusi menjalankan ulang statusStatus alur kerja tugas,Status alur kerja paralel, atau Peta Sebaris, yang telah Anda tetapkan percobaan ulang, jumlah upaya coba lagi untuk status ini diatur ulang ke 0 untuk memungkinkan jumlah upaya maksimum redrive. Untuk a redriven eksekusi, Anda dapat melacak upaya percobaan ulang individual dari status ini menggunakan konsol.

Untuk memeriksa upaya coba lagi individu di konsol
  1. Pada halaman Execution Details pada konsol Step Functions, pilih status yang telah dicoba ulang redrive.

  2. Pilih Retries & redrivestab.

  3. Pilih ikon panah di samping setiap upaya coba lagi untuk melihat detailnya. Jika upaya coba lagi berhasil, Anda dapat melihat hasilnya di Output yang muncul di kotak tarik-turun.

Gambar berikut menunjukkan contoh percobaan ulang yang dilakukan untuk keadaan dalam upaya eksekusi asli dan redrives dari eksekusi tersebut. Dalam gambar ini, tiga percobaan ulang dilakukan dalam aslinya dan redrive upaya eksekusi. Eksekusi berhasil di keempat redrive mencoba dan mengembalikan output 16.

Tangkapan layar ilustratif yang menunjukkan tiga percobaan ulang yang gagal dan berhasil pada percobaan ulang keempat.