Mulai yang baru AWS Step Functions state machine dari eksekusi yang sedang berjalan - AWS Step Functions

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

Mulai yang baru AWS Step Functions state machine dari eksekusi yang sedang berjalan

Step Functions terintegrasi dengan sendiri API sebagai integrasi layanan. Pelajari cara menggunakan Step Functions untuk memulai eksekusi baru mesin status langsung dari status tugas eksekusi yang sedang berjalan. Saat membangun alur kerja baru, gunakan eksekusi alur kerja yang di-nest untuk mengurangi kompleksitas alur kerja utama Anda dan untuk menggunakan kembali proses umum.

Fitur utama integrasi Step Functions yang Dioptimalkan

Perhatikan bahwa tidak ada pengoptimalan untuk pola Minta Respons atau Tunggu Callback dengan Task Token integrasi.

Untuk informasi selengkapnya, lihat berikut ini:

Step Functions yang Didukung APIs

Contoh Alur Kerja

Berikut ini mencakup status Task yang memulai eksekusi mesin status lain dan menunggunya selesai.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Berikut ini mencakup status Task yang memulai eksekusi mesin status lain.

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

Berikut ini mencakup status Task yang mengimplementasikan pola integrasi layanan callback.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Untuk mengaitkan eksekusi alur kerja yang di-nest dengan eksekusi induk yang memulainya, teruskan parameter khusus bernama yang mencakup ID eksekusi yang ditarik dari objek konteks. Ketika memulai eksekusi yang di-nest, gunakan parameter bernama AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID. Teruskan ID eksekusi dengan menambahkan .$ ke nama parameter, dan referensi ID dalam objek konteks dengan $$.Execution.Id. Untuk informasi selengkapnya, lihat Mengakses Obyek Konteks.

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

Mesin status yang di-nest mengembalikan hal berikut:

Sumber Daya Output
startExecution.sinkronisasi String
startExecution.sinkronisasi: 2 JSON

Keduanya akan menunggu mesin status yang di-nest selesai, tetapi mengembalikan format Output yang berbeda. Misalnya, jika Anda membuat fungsi Lambda yang mengembalikan objek { "MyKey": "MyValue" }, Anda akan mendapatkan respons berikut:

Untuk startExecution .sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

Untuk startExecution .sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

Mengkonfigurasi IAM izin untuk mesin status bersarang

Mesin status induk menentukan apakah mesin status anak telah menyelesaikan eksekusi menggunakan polling dan peristiwa. Polling memerlukan izin untuk states:DescribeExecution sementara peristiwa yang dikirim EventBridge ke Step Functions memerlukan izin untukevents:PutTargets,events:PutRule, dan. events:DescribeRule Jika izin ini hilang dari IAM peran Anda, mungkin ada penundaan sebelum mesin status induk mengetahui penyelesaian eksekusi mesin status anak.

Untuk mesin status yang StartExecution meminta eksekusi alur kerja bertingkat tunggal, gunakan IAM kebijakan yang membatasi izin ke mesin status tersebut.

Untuk informasi selengkapnya, lihat IAMizin untuk Step Functions.

IAMkebijakan untuk memanggil alur kerja Step Functions bersarang

Untuk mesin status yang StartExecution meminta eksekusi alur kerja bertingkat tunggal, gunakan IAM kebijakan yang membatasi izin ke mesin status tersebut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

Untuk informasi selengkapnya, lihat berikut ini:

Synchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
Asynchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

Untuk informasi selengkapnya tentang eksekusi alur kerja bersarang, lihat Mulai eksekusi alur kerja dari status tugas di Step Functions.