Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Redriving Peta Berjalan di eksekusi Step Functions
Anda dapat memulai ulang eksekusi alur kerja anak yang gagal di Map Run by redrivingalur kerja orang tua Anda. A redriven alur kerja induk redrives semua negara yang gagal, termasuk Peta Terdistribusi. Alur kerja induk akan mengembalikan status yang tidak berhasil jika tidak ada <stateType>Exited
peristiwa yang terkait dengan peristiwa untuk status saat alur kerja induk menyelesaikan eksekusinya. <stateType>Entered
Misalnya, jika riwayat acara tidak berisi MapStateExited
acara untuk suatu MapStateEntered
acara, Anda dapat redrive alur kerja induk ke redrive semua eksekusi alur kerja anak yang gagal di Map Run.
Map Run tidak dimulai atau gagal dalam upaya eksekusi asli ketika mesin status tidak memiliki izin yang diperlukan untuk mengaksesItemReader (Peta),ResultWriter (Peta), atau keduanya. Jika Map Run tidak dimulai dalam upaya eksekusi asli alur kerja induk, redriving alur kerja induk memulai Map Run untuk pertama kalinya. Untuk mengatasinya, tambahkan izin yang diperlukan ke peran mesin status Anda, lalu redrive alur kerja induk. Jika Anda redrive alur kerja induk tanpa menambahkan izin yang diperlukan, ia mencoba memulai proses Map Run baru yang akan gagal lagi. Untuk informasi tentang izin yang mungkin Anda perlukan, lihatIAMkebijakan untuk menggunakan status Peta Terdistribusi.
Topik
Redrive kelayakan untuk alur kerja anak dalam Map Run
Anda bisa redrive eksekusi alur kerja anak yang gagal di Map Run jika kondisi berikut terpenuhi:
-
Anda memulai eksekusi alur kerja induk pada atau setelah 15 November 2023. Eksekusi yang Anda mulai sebelum tanggal ini tidak memenuhi syarat redrive.
-
Anda belum melebihi batas keras 1000 redrives dari Map Run yang diberikan. Jika Anda telah melampaui batas ini, Anda akan menerima
States.Runtime
kesalahan. -
Alur kerja induk adalah redrivable. Jika alur kerja induk tidak redrivable, Anda tidak bisa redrive eksekusi alur kerja anak di Map Run. Untuk informasi lebih lanjut tentang redrive kelayakan alur kerja, lihat. Redrive kelayakan untuk eksekusi yang gagal
-
Eksekusi alur kerja anak dari tipe Standard di Map Run Anda belum melebihi batas riwayat peristiwa eksekusi 25.000. Eksekusi alur kerja anak yang telah melampaui batas riwayat peristiwa dihitung terhadap ambang kegagalan yang ditoleransi dan dianggap gagal. Untuk informasi lebih lanjut tentang redrive kelayakan eksekusi, lihat. Redrive kelayakan untuk eksekusi yang gagal
Map Run baru dimulai dan Map Run yang ada tidak redriven dalam kasus berikut meskipun Map Run gagal dalam upaya eksekusi asli:
-
Map Run gagal karena
States.DataLimitExceeded
kesalahan. -
Map Run gagal karena kesalahan interpolasi JSON data,.
States.Runtime
Misalnya, Anda memilih JSON node yang tidak ada di. Memfilter output status menggunakan OutputPath
Map Run dapat terus berjalan bahkan setelah alur kerja induk berhenti atau habis waktu. Dalam skenario ini, redrive tidak terjadi segera:
-
Map Run mungkin masih membatalkan eksekusi alur kerja anak yang sedang berlangsung dari tipe Standar, atau menunggu eksekusi alur kerja anak tipe Express untuk menyelesaikan eksekusinya.
-
Map Run mungkin masih menulis hasil keResultWriter (Peta), jika Anda mengonfigurasinya untuk mengekspor hasil.
Dalam kasus ini, Map Run yang sedang berjalan menyelesaikan operasinya sebelum mencoba redrive.
Eksekusi alur kerja anak redrive tingkah laku
Bagian redriven eksekusi alur kerja anak di Map Run menunjukkan perilaku seperti yang dijelaskan dalam tabel berikut.
Alur kerja anak ekspres | Alur kerja anak standar |
---|---|
Semua eksekusi alur kerja anak yang gagal atau habis waktu dalam upaya eksekusi asli dimulai menggunakan tindakan. StartExecutionAPI Status pertama ItemProcessor dijalankan terlebih dahulu. | Semua eksekusi alur kerja anak yang gagal, habis waktu, atau dibatalkan dalam upaya eksekusi asli redriven menggunakan RedriveExecutionAPItindakan. Alur kerja anak ini adalah redriven dari keadaan terakhir ItemProcessor yang mengakibatkan eksekusi mereka gagal. |
Eksekusi yang gagal selalu bisa redriven. Ini karena eksekusi alur kerja anak Express selalu dimulai sebagai eksekusi baru menggunakan tindakan. StartExecution API |
Eksekusi alur kerja anak standar yang gagal tidak selalu bisa redriven. Jika eksekusi tidak redrivable, itu tidak akan dicoba lagi. Kesalahan atau output terakhir dari eksekusi bersifat permanen. Ini dimungkinkan ketika eksekusi melebihi 25.000 peristiwa sejarah, atau redrivable jangka waktu 14 hari telah kedaluwarsa. Eksekusi alur kerja anak Standar mungkin tidak redrivable jika eksekusi alur kerja induk telah ditutup dalam 14 hari, tetapi eksekusi alur kerja anak ditutup lebih awal dari 14 hari. |
Eksekusi alur kerja anak ekspres menggunakan eksekusi yang sama dengan upaya eksekusi ARN asli, tetapi Anda tidak dapat mengidentifikasi individu mereka dengan jelas redrives. | Eksekusi alur kerja anak standar menggunakan eksekusi yang sama dengan ARN upaya eksekusi asli. Anda dapat dengan jelas mengidentifikasi individu redrives di konsol dan menggunakanAPIs, seperti GetExecutionHistorydan DescribeExecution. Untuk informasi selengkapnya, lihat Memeriksa redriven eksekusi. |
Jika Anda sudah redriven Map Run, dan telah mencapai batas konkurensi, eksekusi alur kerja anak dalam transisi Map Run ke status tertunda. Status eksekusi Map Run juga bertransisi ke Pending redrivenegara. Sampai batas konkurensi yang ditentukan dapat memungkinkan lebih banyak eksekusi alur kerja anak berjalan, eksekusi tetap berada di Pending redrivenegara.
Misalnya, katakan bahwa batas konkurensi Peta Terdistribusi dalam alur kerja Anda adalah 3000, dan jumlah alur kerja anak yang akan dijalankan ulang adalah 6000. Hal ini menyebabkan 3000 alur kerja anak berjalan secara paralel sementara 3000 alur kerja sisanya tetap berada dalam status redrive Pending. Setelah batch pertama dari 3000 alur kerja anak menyelesaikan eksekusi mereka, 3000 alur kerja anak yang tersisa dijalankan.
Ketika Map Run telah menyelesaikan eksekusinya atau dibatalkan, jumlah eksekusi alur kerja anak di Pending redrivestatus diatur ulang ke 0.
Skenario input yang digunakan pada Map Run redrive
Bergantung pada bagaimana Anda memberikan masukan ke Peta Terdistribusi dalam upaya eksekusi asli, a redriven Map Run akan menggunakan input seperti yang dijelaskan dalam tabel berikut.
Masukan dalam upaya eksekusi asli | Masukan yang digunakan pada Map Run redrive |
---|---|
Masukan diteruskan dari status sebelumnya atau input eksekusi. | Bagian redriven Map Run menggunakan input yang sama. |
Input diteruskan menggunakan ItemReader (Peta) dan Map Run tidak memulai eksekusi alur kerja anak karena salah satu kondisi berikut benar:
|
Bagian redriven Map Run menggunakan input di bucket Amazon S3. |
Masukan diteruskan menggunakan ItemReader. Map Run gagal setelah memulai atau mencoba memulai eksekusi alur kerja anak. | Bagian redriven Map Run menggunakan input yang sama yang disediakan dalam upaya eksekusi asli. |
IAMizin untuk redrive Peta Jalankan
Step Functions membutuhkan izin yang sesuai untuk redrive Lari Peta. Contoh IAM kebijakan berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mesin negara Anda redriving Lari Peta. 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
/myMapRunLabel
:*" } ] }
Redriving Peta Jalankan di konsol
Gambar berikut menunjukkan grafik eksekusi mesin negara yang berisi Peta Terdistribusi. Eksekusi ini gagal karena Map Run gagal. Untuk redrive Map Run, Anda harus redrive alur kerja induk.
Untuk redrive Peta Jalankan dari konsol
-
Buka konsol Step Functions
, lalu pilih mesin status yang ada yang berisi Peta Terdistribusi yang gagal dieksekusi. -
Pada halaman detail mesin status, di bawah Eksekusi, pilih instance eksekusi gagal dari mesin status ini.
-
Pilih Redrive.
-
Di Redrivekotak dialog, pilih Redrive eksekusi.
Tip
Anda juga bisa redrive Peta Jalankan dari halaman Rincian Eksekusi atau Rincian Jalankan Peta.
Jika Anda berada di halaman Detail Eksekusi, lakukan salah satu hal berikut untuk redrive eksekusi:
-
Pilih Recover, lalu pilih Redrive dari kegagalan.
-
Pilih Tindakan, lalu pilih Redrive.
Jika Anda berada di halaman Run Map Run Details, pilih Recover, lalu pilih Redrive dari kegagalan.
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 Peta Terdistribusi bernama Map dan langkah input Proses di dalamnya. Setelah memulai ulang eksekusi alur kerja anak yang gagal dari Map Run, redrive akan melanjutkan eksekusi untuk langkah Selesai.
-
-
Dari halaman Detail Eksekusi, pilih Map Run untuk melihat detail redriven Peta Jalankan.
Di halaman ini, Anda dapat melihat hasil redriven eksekusi. Misalnya, di Ringkasan eksekusi Map Run bagian ini, Anda dapat melihat Redrive count, yang mewakili berapa kali Map Run telah redriven. Di bagian Acara, Anda dapat melihat redrive peristiwa eksekusi terkait ditambahkan ke peristiwa upaya eksekusi asli. Misalnya,
MapRunRedriven
acara.
Setelah Anda redriven Map Run, Anda dapat memeriksa redrive detail di konsol atau menggunakan GetExecutionHistorydan DescribeExecutionAPItindakan. Untuk informasi lebih lanjut tentang memeriksa redriven eksekusi, lihatMemeriksa redriven eksekusi.
Redriving Peta Jalankan menggunakan API
Anda bisa redrive Map Run yang memenuhi syarat menggunakan RedriveExecutionAPIpada alur kerja induk. Ini API memulai ulang eksekusi alur kerja anak yang gagal di Map Run.
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
Setelah Anda memiliki redriven Map Run, Anda dapat memeriksa redrive detail di konsol atau menggunakan DescribeMapRunAPItindakan. Untuk memeriksa redrive rincian eksekusi alur kerja Standar dalam Map Run, Anda dapat menggunakan GetExecutionHistoryatau DescribeExecutionAPItindakan. Untuk informasi lebih lanjut tentang memeriksa redriven eksekusi, lihatMemeriksa redriven eksekusi.
Anda dapat memeriksa redrive rincian eksekusi alur kerja Express di Map Run pada konsol Step Functions