Lanjutkan alur kerja yang berjalan lama menggunakan Step Functions API (disarankan) - AWS Step Functions

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

Lanjutkan alur kerja yang berjalan lama menggunakan Step Functions API (disarankan)

AWS Step Functions dirancang untuk menjalankan alur kerja dengan durasi dan jumlah langkah yang terbatas. Eksekusi alur kerja standar memiliki durasi maksimum satu tahun dan 25.000 acara (lihat). Kuota layanan Step Functions

Untuk eksekusi yang berjalan lama, Anda dapat menghindari mencapai kuota keras dengan memulai eksekusi alur kerja baru dari status. Task Anda perlu memecah alur kerja Anda menjadi mesin status yang lebih kecil yang melanjutkan pekerjaan yang sedang berlangsung dalam eksekusi baru.

Untuk memulai eksekusi alur kerja baru, Anda akan memanggil StartExecution API tindakan dari Task negara Anda dan meneruskan parameter yang diperlukan.

Step Functions dapat memulai eksekusi alur kerja dengan memanggilnya sendiri API 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 API tindakan Step Functions

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 untuk membuka Workflow Studio diMode desain.

  4. Dari tab Tindakan, seret StartExecutionAPItindakan dan jatuhkan 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 tipe Integrasi, pilih AWS SDK- baru dari daftar dropdown.

    3. Dalam APIParameter, lakukan hal berikut:

      1. UntukStateMachineArn, ganti contoh Nama Sumber Daya Amazon dengan mesin status Anda. ARN Misalnya, masukkan mesin ARN 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 APIParameter 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 Panel Inspector panel untuk melihat definisi Amazon States Language (ASL) yang dihasilkan secara otomatis dari alur kerja Anda.

    Tip

    Anda juga dapat melihat ASL definisi di Editor kode Workflow Studio. Di editor kode, Anda juga dapat mengedit ASL definisi 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 IAM peran 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 IAM peran ARN untuk 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 peran yang dibuat Step Functions, Step Functions tidak dapat membuatnya kembali nanti. Demikian pula, jika Anda mengubah peran (misalnya, dengan menghapus Step Functions dari prinsipal dalam IAM kebijakan), Step Functions tidak dapat memulihkan pengaturan aslinya nanti.

Langkah 3: Perbarui IAM kebijakan

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

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

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

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

    2. Pada halaman Buat kebijakan, pilih JSONtab.

    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) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.

      Non- ASCII nama dan logging

      Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi ASCII non-karakter. Karena karakter seperti itu tidak akan berfungsi dengan Amazon CloudWatch, kami sarankan hanya menggunakan ASCII karakter sehingga Anda dapat melacak metrik. CloudWatch

    2. (Opsional) Dalam kotak Input, masukkan nilai input dalam JSON format 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, lihatIkhtisar detail eksekusi.

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