RedrivingPeta Berjalan - AWS Step Functions

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

RedrivingPeta Berjalan

Anda dapat memulai ulang eksekusi alur kerja anak yang gagal di Map Run oleh alur kerja induk redrivingAnda. Alur kerja redriven induk redrives semua status 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 peristiwa tidak berisi peristiwa untuk suatu MapStateExited MapStateEntered peristiwa, Anda dapat redrive menjalankan 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,ResultWriter, atau keduanya. Jika Map Run tidak dimulai dalam upaya eksekusi asli alur kerja induk, alur kerja induk redriving akan memulai Map Run untuk pertama kalinya. Untuk mengembalikan ini, 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 untuk memulai menjalankan Map Run baru yang akan gagal lagi. Untuk informasi tentang izin yang mungkin Anda perlukan, lihatKebijakan IAM untuk menggunakan status Peta Terdistribusi.

Redrivekelayakan untuk alur kerja anak dalam Map Run

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

  • Anda belum melampaui batas keras 1000 redrives dari Map Run yang diberikan. Jika Anda telah melampaui batas ini, Anda akan menerima States.Runtime kesalahan.

  • Alur kerja induk adalahredrivable. Jika alur kerja induk tidakredrivable, Anda tidak redrive dapat mengeksekusi alur kerja anak di Map Run. Untuk informasi selengkapnya tentang redrive kelayakan alur kerja, lihat. Redrivekelayakan 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. Redrivekelayakan 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 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, jika Anda mengonfigurasinya untuk mengekspor hasil.

Dalam kasus ini, Map Run yang sedang berjalan menyelesaikan operasinya sebelum mencoba. redrive

Perilaku eksekusi redrive alur kerja anak

Eksekusi alur kerja redriven 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 API. StartExecution Status pertama ItemProcessor dijalankan terlebih dahulu. Semua eksekusi alur kerja anak yang gagal, habis waktu, atau dibatalkan dalam upaya eksekusi asli redriven menggunakan tindakan API. RedriveExecution Alur kerja anak ini redriven berasal dari keadaan terakhir ItemProcessor yang mengakibatkan eksekusi mereka gagal.

Eksekusi yang gagal selalu bisa terjadi. redriven Ini karena eksekusi alur kerja anak Express selalu dimulai sebagai eksekusi baru menggunakan tindakan StartExecution API.

Eksekusi alur kerja anak standar yang tidak berhasil tidak selalu dapat dilakukan. redriven Jika eksekusi tidakredrivable, itu tidak akan dicoba lagi. Kesalahan atau output terakhir dari eksekusi bersifat permanen. Ini dimungkinkan ketika eksekusi melebihi 25.000 peristiwa sejarah, atau redrivable periode 14 hari telah kedaluwarsa.

Eksekusi alur kerja anak standar mungkin tidak terjadi 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 ARN eksekusi yang sama dengan upaya eksekusi asli, tetapi Anda tidak dapat mengidentifikasi individu mereka dengan jelas. redrives Eksekusi alur kerja anak standar menggunakan ARN eksekusi yang sama dengan upaya eksekusi asli. Anda dapat dengan jelas mengidentifikasi individu redrives di konsol dan menggunakan API, seperti GetExecutionHistorydan DescribeExecution. Untuk informasi selengkapnya, lihat Memeriksa eksekusi redriven.

Jika Anda redriven memiliki Map Run, dan telah mencapai batas konkurensinya, eksekusi alur kerja anak di Map Run itu bertransisi ke status tertunda. Status eksekusi Map Run juga bertransisi ke redrive status Pending. Sampai batas konkurensi yang ditentukan dapat memungkinkan lebih banyak eksekusi alur kerja anak berjalan, eksekusi tetap dalam status Pending. redrive

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 eksekusi atau dibatalkan, jumlah eksekusi alur kerja anak dalam redrive status Tertunda diatur ulang ke 0.

Skenario input yang digunakan pada Map Run redrive

Bergantung pada cara Anda memberikan masukan ke Peta Terdistribusi dalam upaya eksekusi asli, 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. redrivenMap Run menggunakan input yang sama.
Input diteruskan menggunakan ItemReader dan Map Run tidak memulai eksekusi alur kerja anak karena salah satu kondisi berikut benar:
redrivenMap Run menggunakan input di bucket Amazon S3.
Masukan diteruskan menggunakan ItemReader. Map Run gagal setelah memulai atau mencoba memulai eksekusi alur kerja anak. redrivenMap Run menggunakan input yang sama yang disediakan dalam upaya eksekusi asli.

Izin IAM untuk redrive Map Run

Step Functions membutuhkan izin redrive yang sesuai untuk Map Run. Contoh kebijakan IAM berikut memberikan hak istimewa paling sedikit yang diperlukan untuk mesin status Anda untuk Map Run. redriving 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/myMapRunLabel:*" } ] }

RedrivingPeta 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.

Grafik eksekusi mesin status gagal yang disebabkan oleh Map Run yang gagal.
Ke redrive Map Run dari konsol
  1. Buka konsol Step Functions, lalu pilih mesin status yang ada yang berisi Peta Terdistribusi yang gagal dieksekusi.

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

  3. Pilih Redrive.

  4. Di kotak Redrivedialog, pilih Redriveeksekusi.

    Tip

    Anda juga dapat menjalankan redrive peta dari halaman Rincian Eksekusi atau Rincian Jalankan Peta.

    Jika Anda berada di halaman Detail Eksekusi, lakukan salah satu hal redrive berikut untuk eksekusi:

    • Pilih Pulihkan, lalu pilih Redrivedari kegagalan.

    • Pilih Tindakan, lalu pilih Redrive.

    Jika Anda berada di halaman Map Run Details, pilih Recover, lalu pilih Redrivedari kegagalan.

    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 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.

  5. Dari halaman Detail Eksekusi, pilih Map Run untuk melihat detail redriven Map Run.

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

Setelah Map Run, Anda dapat memeriksa redrive detailnya di konsol atau menggunakan tindakan DescribeExecutionAPI GetExecutionHistorydan. redriven Untuk informasi selengkapnya tentang memeriksa redriven eksekusi, lihatMemeriksa eksekusi redriven.

RedrivingPeta Jalankan menggunakan API

Anda dapat redrive menjalankan Map Run yang memenuhi syarat menggunakan RedriveExecutionAPI pada alur kerja induk. API ini memulai ulang eksekusi alur kerja anak yang gagal di Map Run.

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

Setelah Map Run, Anda dapat memeriksa redrive detailnya di konsol atau menggunakan tindakan DescribeMapRunAPI. redriven Untuk memeriksa redrive detail eksekusi alur kerja Standar di Map Run, Anda dapat menggunakan tindakan GetExecutionHistoryatau DescribeExecutionAPI. Untuk informasi selengkapnya tentang memeriksa redriven eksekusi, lihatMemeriksa eksekusi redriven.

Anda dapat memeriksa redrive detail eksekusi alur kerja Express di Map Run di konsol Step Functions jika Anda mengaktifkan logging pada alur kerja induk. Untuk informasi selengkapnya, lihat Logging menggunakanCloudWatchLog.