Redrivingeksekusi - AWS Step Functions

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

Redrivingeksekusi

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, itu melanjutkan eksekusi yang gagal dari langkah yang gagal dan menggunakan input yang sama. Step Functionsmempertahankan hasil dan riwayat eksekusi dari langkah-langkah yang berhasil, dan langkah-langkah ini tidak dijalankan kembali saat Anda redrive mengeksekusi. Misalnya, katakan bahwa alur kerja Anda berisi dua status: Diteruskan status diikuti oleh Status tugas status. Jika eksekusi alur kerja Anda gagal pada status Tugas, dan Anda redrive mengeksekusinya, eksekusi akan menjadwal ulang dan kemudian menjalankan kembali status Tugas.

Redriveneksekusi menggunakan definisi mesin keadaan yang sama dan eksekusi ARN yang digunakan untuk upaya eksekusi asli. Jika upaya eksekusi asli Anda dikaitkan dengan versi, alias, atau keduanya, redriven eksekusi dikaitkan dengan versi, alias, atau keduanya yang sama. 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.

Redrivekelayakan untuk eksekusi yang gagal

Anda dapat redrive mengeksekusi 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 syaratredrive.

  • Status eksekusi tidakSUCCEEDED.

  • Eksekusi alur kerja belum melebihi redrivable periode 14 hari. Redrivableperiode mengacu pada waktu di mana Anda dapat eksekusi redrive tertentu. 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. Redriveneksekusi 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.

Redriveperilaku masing-masing negara

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

Nama negara Redriveperilaku eksekusi
Diteruskan

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

Status tugas

Menjadwalkan dan memulai status Tugas lagi.

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

Pilihan Mengevaluasi kembali aturan negara Pilihan.
Tunggu

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

Berhasil

Tidak redrive menyatakan eksekusi mesin yang memasuki status Sukses.

Gagal

Memasuki kembali status Gagal dan gagal lagi.

Paralel

Menjadwalkan 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

Menjadwalkan 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

redriveseksekusi alur kerja anak yang gagal dalam Map Run. Untuk informasi selengkapnya, lihat RedrivingPeta Berjalan.

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

Izin IAM untuk redrive eksekusi

Step Functions membutuhkan izin redrive yang sesuai untuk eksekusi. Contoh kebijakan IAM berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mesin negara Anda untuk redriving eksekusi. Ingatlah untuk mengganti teks yang dicetak miring 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 perlukan untuk redrive Map Run, lihatContoh kebijakan IAM untuk Peta redriving Terdistribusi.

Redrivingeksekusi di konsol

Anda dapat redrive memenuhi syarat eksekusi dari Step Functions konsol.

Misalnya, katakan bahwa gambar berikut mewakili grafik alur kerja mesin status Anda.

Grafik alur kerja mesin status yang mencakup status: Lulus, Paralel, Lambda Panggilan, dan Tunggu.

Bayangkan Anda menjalankan mesin status ini. Gambar berikut menunjukkan grafik untuk eksekusi mesin negara.

Grafik eksekusi mesin status gagal. Dalam eksekusi ini, cabang status Paralel bernama Do bilangan kuadrat gagal, menyebabkan kegagalan status Paralel.

Seperti yang ditunjukkan pada gambar ini, langkah LambdaInvoke bernama Do square number di dalam keadaan Parallel telah mengembalikan kesalahan. Hal ini menyebabkan keadaan Paralel gagal. Cabang-cabang yang eksekusinya sedang berlangsung atau tidak dimulai dihentikan dan eksekusi mesin negara 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 kotak Redrivedialog, pilih Redriveeksekusi.

    Tip

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

    • Pilih Pulihkan, lalu pilih Redrivedari kegagalan.

    • Pilih Tindakan, lalu pilih Redrive.

    Perhatikan bahwa redrive menggunakan definisi mesin status yang sama dan ARN. 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 gagal 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 redriven eksekusi. Misalnya, di Ringkasan eksekusi bagian ini, Anda dapat melihat Redrivehitungan, yang mewakili berapa kali eksekusi telah dilakukanredriven. Di bagian Peristiwa, Anda dapat melihat peristiwa eksekusi redrive terkait ditambahkan ke peristiwa upaya eksekusi asli. Misalnya, ExecutionRedriven acara.

Redrivingeksekusi menggunakan API

Anda dapat redrive memenuhi syarat eksekusi menggunakan RedriveExecutionAPI. API ini 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 ke eksekusi mesin status redrive yang tidak berhasil. Ingatlah untuk mengganti teks yang dicetak miring dengan informasi spesifik sumber daya Anda.

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

Memeriksa eksekusi redriven

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

Periksa redriven eksekusi di konsol
  1. Buka konsol Step Functions, lalu pilih mesin status yang sudah ada redriven yang telah Anda eksekusi.

  2. Buka halaman Detail Eksekusi.

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

Periksa redriven eksekusi menggunakan API

Jika Anda redriven memiliki eksekusi mesin status, Anda dapat menggunakan salah satu API berikut untuk melihat detail tentang redriven eksekusi. Ingatlah untuk mengganti teks yang dicetak miring dengan informasi spesifik sumber daya Anda.

  • GetExecutionHistory — Mengembalikan riwayat eksekusi yang ditentukan sebagai daftar acara. API ini 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 berupa mesin status yang terkait dengan eksekusi, input dan output eksekusi, redrive detail eksekusi, 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 eksekusi redriven

Jika redriven eksekusi Anda menjalankan ulang statusStatus tugas,Paralel, atau Peta Sebaris, yang telah Anda tetapkan percobaan ulang, jumlah upaya coba lagi untuk status ini disetel ulang ke 0. Hal ini memungkinkan untuk jumlah maksimum upaya padaredrive. Untuk 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 dicoba ulang. redrive

  2. Pilih redrives tab Retries &.

  3. Pilih di arrow icon sebelah 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 status dalam upaya eksekusi asli dan eksekusi itu. redrives Dalam gambar ini, tiga percobaan ulang dilakukan dalam upaya asli dan redrive eksekusi. Eksekusi berhasil dalam redrive upaya keempat dan mengembalikan output 16.

Mencoba ulang & redrives tab dari status redriven Tugas. Tab ini menunjukkan tiga upaya coba lagi yang dilakukan dalam eksekusi asli dan redrives eksekusi itu. Eksekusi berhasil dalam redrive upaya keempat dan mengembalikan output 16.