Mulai Eksekusi Alur Kerja dari Status Tugas. - AWS Step Functions

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

Mulai Eksekusi Alur Kerja dari Status Tugas.

AWS Step Functions dapat memulai eksekusi alur kerja secara langsung dari status Task mesin status. Hal ini mengizinkan Anda memecah alur kerja Anda menjadi mesin status yang lebih kecil, dan untuk memulai eksekusi dari mesin-mesin status lainnya. Dengan memulai eksekusi alur kerja baru ini, Anda dapat:

  • Pisahkan alur kerja tingkat yang lebih tinggi dari tingkat yang lebih rendah, alur kerja khusus tugas.

  • Hindari elemen berulang dengan memanggil mesin status terpisah beberapa kali.

  • Buat pustaka alur kerja modular yang dapat digunakan kembali untuk pengembangan yang lebih cepat.

  • Kurangi kompleksitas dan buat lebih mudah untuk mengedit dan memecahkan masalah mesin status.

Step Functions dapat memulai eksekusi alur kerja ini dengan memanggil API sendiri sebagai layanan terpadu. Cukup panggil StartExecutiontindakan API dari status Task dan teruskan parameter yang diperlukan. Anda dapat memanggil API Step Functions menggunakan salah satu pola integrasi layanan.

Tip

Untuk menerapkan contoh alur kerja bertingkat ke AndaAkun AWS, lihat Modul 13 - Alur Kerja Ekspres Bertingkat.

Untuk memulai eksekusi baru dari mesin negara, gunakan Task status yang mirip dengan contoh berikut:

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input":{ "Comment":"Hello world!" }, }, "Retry":[ { "ErrorEquals":[ "StepFunctions.ExecutionLimitExceeded" ] } ], "End":true }

Status Task ini akan memulai eksekusi baru dari mesin status HelloWorld, dan akan meneruskan komentar JSON sebagai input.

catatan

Kuota tindakan API StartExecution dapat membatasi jumlah eksekusi yang dapat Anda mulai. Gunakan opsi Retry pada StepFunctions.ExecutionLimitExceeded untuk memastikan eksekusi Anda dimulai. Lihat hal-hal berikut.

Kaitkan Eksekusi Alur Kerja

Untuk mengaitkan eksekusi alur kerja yang dimulai dengan eksekusi yang memulainya, teruskan ID eksekusi dari objek konteks ke input eksekusi. Anda dapat mengakses ID dari objek konteks dari status Task Anda dalam eksekusi yang berjalan. Teruskan ID eksekusi dengan menambahkan .$ ke nama parameter, dan mereferensikan ID dalam objek konteks dengan $$.Execution.Id.

"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"

Anda dapat menggunakan parameter khusus bernama AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID ketika Anda memulai eksekusi. Jika disertakan, asosiasi ini menyediakan tautan di bagian Detail langkah dari konsol Step Functions. Jika tersedia, Anda dapat dengan mudah melacak eksekusi alur kerja Anda dari memulai eksekusi hingga eksekusi alur kerja yang dimulai. Menggunakan contoh sebelumnya, kaitkan ID eksekusi dengan eksekusi yang dimulai dari mesin status HelloWorld, sebagai berikut.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input": { "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } }, "End":true }

Untuk informasi selengkapnya, lihat yang berikut: