Menggunakan aksi Step Functions API untuk melanjutkan eksekusi baru (disarankan) - AWS Step Functions

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

Menggunakan aksi Step Functions API untuk melanjutkan eksekusi baru (disarankan)

Step Functions dapat memulai eksekusi alur kerja dengan memanggil API sendiri sebagai layanan terintegrasi. Kami menyarankan Anda menggunakan pendekatan ini untuk menghindari melebihi kuota layanan untuk eksekusi jangka panjang.

Langkah 1: Buat mesin status yang sudah berjalan lama

Buat mesin status yang sudah berjalan lama yang ingin Anda mulai dari Task keadaan mesin negara yang berbeda. Untuk tutorial ini, gunakan mesin state yang menggunakan fungsi Lambda.

catatan

Pastikan untuk menyalin nama dan Nama Sumber Daya Amazon dari mesin status ini dalam file teks untuk digunakan nanti.

Langkah 2: Buat mesin status untuk memanggil aksi Step Functions API

Untuk memulai eksekusi alur kerja dari suatu negara Task
  1. Buka Konsol Step Functions dan pilih Buat mesin status.

  2. Dalam kotak dialog Pilih templat, pilih Kosong.

  3. Pilih Pilih. Ini membuka Workflow Studio diMode desain.

  4. Dari tab Tindakan, seret aksi StartExecutionAPI dan letakkan pada status kosong berlabel Seret status pertama di sini.

  5. Pilih StartExecutionstatus dan lakukan hal berikut di tab Konfigurasi diMode desain:

    1. Ubah nama negara menjadiStart nested execution.

    2. Untuk jenis Integrasi, pilih AWS SDK - baru dari daftar dropdown.

    3. Di Parameter API, lakukan hal berikut:

      1. UntukStateMachineArn, ganti contoh Nama Sumber Daya Amazon dengan ARN mesin status Anda. Misalnya, masukkan ARN dari mesin negara yang menggunakan Lambda.

      2. Untuk Input node, ganti teks placeholder yang ada dengan nilai berikut:

        "Comment": "Starting workflow execution using a Step Functions API action"
      3. Pastikan input Anda di Parameter API terlihat mirip dengan yang berikut ini:

        { "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine", "Input": { "Comment": "Starting workflow execution using a Step Functions API action", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }
  6. (Opsional) Pilih Definisi pada Inspector panel untuk melihat definisi alur kerja Anda yang dihasilkan secara otomatis Amazon States Language (ASL).

    Tip

    Anda juga dapat melihat definisi ASL di Editor kode Workflow Studio. Di editor kode, Anda juga dapat mengedit definisi ASL dari alur kerja Anda.

  7. Tentukan nama untuk mesin negara Anda. Untuk melakukan ini, pilih ikon edit di sebelah nama mesin status default MyStateMachine. Kemudian, dalam konfigurasi mesin Negara, tentukan nama di kotak Nama mesin Negara.

    Untuk tutorial ini, masukkan nama ParentStateMachine.

  8. (Opsional) Dalam konfigurasi mesin State, tentukan pengaturan alur kerja lainnya, seperti jenis mesin status dan peran pelaksanaannya.

    Untuk tutorial ini, simpan semua pilihan default di pengaturan mesin State.

    Jika sebelumnya Anda telah membuat peran IAM dengan izin yang benar untuk mesin status dan ingin menggunakannya, di Izin, pilih Pilih peran yang ada, lalu pilih peran dari daftar. Atau pilih Masukkan peran ARN dan kemudian berikan ARN untuk peran IAM itu.

  9. Dalam kotak dialog Konfirmasi pembuatan peran, pilih Konfirmasi untuk melanjutkan.

    Anda juga dapat memilih Lihat pengaturan peran untuk kembali ke konfigurasi mesin Status.

    catatan

    Jika Anda menghapus IAM role yang Step Functions buat, Step Functions tidak dapat membuatnya kembali nanti. Demikian pula, jika Anda mengubah peran (misalnya, dengan menghapus Step Functions dari principal dalam kebijakan IAM), Step Functions tidak dapat memulihkan pengaturan aslinya nanti.

Langkah 3: Perbarui kebijakan IAM

Untuk memastikan mesin status Anda memiliki izin untuk memulai eksekusi mesin status yang menggunakan fungsi Lambda, Anda harus melampirkan kebijakan inline ke peran IAM mesin status Anda. Untuk informasi selengkapnya, lihat Menyematkan kebijakan sebaris dalam Panduan Pengguna IAM.

  1. Pada ParentStateMachinehalaman, pilih ARN peran IAM untuk menavigasi ke halaman Peran IAM untuk mesin status Anda.

  2. Tetapkan izin yang sesuai untuk peran IAM agar dapat memulai eksekusi mesin negara lain. ParentStateMachine Untuk menetapkan izin, lakukan hal berikut:

    1. Pada halaman Peran IAM, pilih Tambahkan izin, lalu pilih Buat kebijakan sebaris.

    2. Di halaman Buat kebijakan, pilih tab JSON.

    3. Ganti teks yang ada dengan kebijakan berikut.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. Pilih Tinjau kebijakan.

    5. Tentukan nama untuk kebijakan tersebut, lalu pilih Buat kebijakan.

Langkah 4: Jalankan mesin negara

Eksekusi mesin status adalah instans tempat Anda menjalankan alur kerja untuk melakukan tugas.

  1. Pada ParentStateMachinehalaman, pilih Mulai eksekusi.

    Kotak dialog Mulai eksekusi ditampilkan.

  2. Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:

    1. (Opsional) Untuk mengidentifikasi eksekusi Anda, Anda dapat menentukan nama untuk itu di Nama kotak. Secara default, Step Functions menghasilkan nama eksekusi unik secara otomatis.

      catatan

      Step Functions memungkinkan Anda membuat nama untuk mesin status, eksekusi, dan aktivitas, serta label yang berisi karakter non-ASCII. Nama-nama non-ASCII ini tidak berfungsi dengan Amazon. CloudWatch Untuk memastikan bahwa Anda dapat melacak CloudWatch metrik, pilih nama yang hanya menggunakan karakter ASCII.

    2. (Opsional) Dalam kotak Input, masukkan nilai input dalam format JSON untuk menjalankan alur kerja Anda.

    3. Pilih Mulai Eksekusi.

    4. Konsol Step Functions mengarahkan Anda ke halaman yang berjudul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.

      Untuk meninjau hasil eksekusi, pilih status individual pada tampilan Grafik, lalu pilih tab individual di Detail langkah panel untuk melihat detail setiap status termasuk input, output, dan definisi masing-masing. Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Rincian Eksekusi, lihatHalaman Detail Eksekusi - Ikhtisar antarmuka.

  3. Buka LambdaStateMachinehalaman dan perhatikan eksekusi baru yang dipicu oleh file ParentStateMachine.