Mulai eksekusi alur kerja dari status tugas 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.

Mulai eksekusi alur kerja dari status tugas di Step Functions

AWS Step Functions dapat memulai eksekusi alur kerja langsung dari Task keadaan mesin negara. 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 memanggilnya sendiri API sebagai layanan terintegrasi. Cukup panggil StartExecution API tindakan dari Task negara Anda dan berikan parameter yang diperlukan. Anda dapat memanggil Step Functions API menggunakan salah satu pola integrasi layanan.

Tip

Untuk menerapkan contoh alur kerja bersarang ke Akun AWS, lihat Modul 13 - Alur Kerja Ekspres Bersarang.

Untuk memulai eksekusi baru 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 }

TaskStatus ini akan memulai eksekusi baru dari mesin HelloWorld negara, dan akan memberikan JSON komentar sebagai input.

catatan

Kuota StartExecution API tindakan 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 informasi berikut: