

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)
<a name="tutorial-continue-new"></a>

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](service-quotas.md)

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 tindakan `StartExecution` API dari `Task` status Anda dan meneruskan parameter yang diperlukan.

Step Functions dapat memulai eksekusi alur kerja dengan memanggil API sendiri sebagai layanan [terintegrasi](integrate-services.md). Kami menyarankan Anda menggunakan pendekatan ini untuk menghindari melebihi kuota layanan untuk eksekusi jangka panjang.

## Langkah 1: Buat mesin status yang sudah berjalan lama
<a name="use-sfn-api-create-called-state-machine"></a>

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](tutorial-creating-lambda-state-machine.md).

**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
<a name="use-sfn-api-create-caller-state-machine"></a>

**Untuk memulai eksekusi alur kerja dari suatu negara `Task`**

1. Buka [konsol Step Functions](https://console.aws.amazon.com/states/home), pilih **State Machines** dari menu, lalu pilih **Create state machine**.

1. Pilih **Buat dari kosong**.

1. Beri nama mesin status Anda, lalu pilih **Lanjutkan** untuk mengedit mesin status Anda di Workflow Studio.

1. Dari tab **Tindakan**, seret aksi **StartExecution**API dan letakkan pada status kosong berlabel **Seret status pertama** di sini.

1. Pilih **StartExecution**status dan lakukan hal berikut di tab **Konfigurasi** di[Mode desain](workflow-studio.md#wfs-interface-design-mode):

   1. Ubah nama negara menjadi**Start nested execution**.

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

   1. Di **Parameter API**, lakukan hal berikut:

      1. Untuk`StateMachineArn`, ganti contoh Nama Sumber Daya Amazon dengan ARN mesin status Anda. Misalnya, masukkan ARN dari [mesin negara yang menggunakan Lambda](tutorial-creating-lambda-state-machine.md).

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

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. 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"
           }
         ```

1. (Opsional) Pilih **Definisi** pada [Panel Inspector](workflow-studio.md#workflow-studio-components-formdefinition) panel untuk melihat definisi alur kerja Anda yang dihasilkan secara otomatis [Amazon States Language](concepts-amazon-states-language.md) (ASL).
**Tip**  
Anda juga dapat melihat definisi ASL di [Editor kode](workflow-studio.md#wfs-interface-code-editor) Workflow Studio. Di editor kode, Anda juga dapat mengedit definisi ASL dari alur kerja Anda.

1. 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**.

1. (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](procedure-create-iam-role.md) 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.

1. 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
<a name="use-sfn-api-update-policy-start-execution"></a>

Untuk memastikan mesin status Anda memiliki izin untuk memulai eksekusi [mesin status yang menggunakan fungsi Lambda](tutorial-creating-lambda-state-machine.md), Anda harus melampirkan kebijakan inline ke peran IAM mesin status Anda. Untuk informasi selengkapnya, lihat [Menyematkan kebijakan sebaris](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console) dalam *Panduan Pengguna IAM*.

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

1. 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**.

   1. Di halaman **Buat kebijakan**, pilih tab **JSON**.

   1. Ganti teks yang ada dengan kebijakan berikut.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. Pilih **Tinjau kebijakan**.

   1. Tentukan nama untuk kebijakan tersebut, lalu pilih **Buat kebijakan**.

## Langkah 4: Jalankan mesin negara
<a name="use-sfn-api-start-execution"></a>

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

1. Pada **ParentStateMachine**halaman, pilih **Mulai eksekusi**.

   Kotak dialog **Mulai eksekusi** ditampilkan.

1. Dalam kotak dialog **Mulai eksekusi**, lakukan hal berikut:

   1. (Opsional) Masukkan nama eksekusi khusus untuk mengganti default yang dihasilkan.
**Nama dan pencatatan non-ASCII**  
Step Functions menerima nama untuk mesin negara, eksekusi, aktivitas, dan label yang berisi karakter non-ASCII. Karena karakter seperti itu akan CloudWatch mencegah Amazon mencatat data, sebaiknya gunakan hanya karakter ASCII sehingga Anda dapat melacak metrik Step Functions.

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

   1. Pilih **Mulai Eksekusi**.

   1. 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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*, lihat[Ikhtisar detail eksekusi](concepts-view-execution-details.md#exec-details-interface-overview).

1. Buka **LambdaStateMachine**halaman dan perhatikan eksekusi baru yang dipicu oleh file **ParentStateMachine**.