

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

# Membuat mesin status Step Functions yang menggunakan Lambda
<a name="tutorial-creating-lambda-state-machine"></a>

Dalam tutorial ini, Anda akan membuat alur kerja satu langkah menggunakan AWS Step Functions untuk memanggil fungsi. AWS Lambda 

**catatan**  
Step Functions didasarkan pada *mesin dan *tugas* negara*. Dalam Step Functions, state machine disebut *alur kerja*, yang merupakan serangkaian langkah yang digerakkan oleh peristiwa. Setiap langkah dalam alur kerja disebut *status*. Misalnya, [status Tugas](state-task.md) mewakili unit kerja yang dilakukan AWS layanan lain, seperti memanggil yang lain Layanan AWS atau API. Contoh menjalankan alur kerja yang melakukan tugas disebut *eksekusi di Step Functions.*  
Untuk informasi lebih lanjut, lihat:  
[Apa itu Step Functions?](welcome.md)
[Mengintegrasikan layanan dengan Step Functions](integrate-services.md)

Lambda sangat cocok untuk `Task` negara bagian, karena fungsi Lambda tanpa *server* dan mudah ditulis. Anda dapat menulis kode di Konsol Manajemen AWS atau editor favorit Anda. AWS menangani detail penyediaan lingkungan komputasi untuk fungsi Anda dan menjalankannya.

## Langkah 1: Membuat fungsi Lambda
<a name="create-lambda-function"></a>

Fungsi Lambda Anda menerima data peristiwa dan mengembalikan pesan ucapan.

**penting**  
Pastikan fungsi Lambda Anda berada di bawah AWS akun yang sama dan Wilayah AWS sebagai mesin status Anda.

1. Buka [konsol Lambda](https://console.aws.amazon.com/lambda/home) dan pilih **Create** Function.

1. Pilih halaman **Buat fungsi**, pilih **Penulis dari scratch**.

1. Untuk **Nama fungsi**, masukkan `HelloFunction`.

1. Simpan pilihan default untuk semua opsi lain, lalu pilih **Buat fungsi**. 

1. Setelah fungsi Lambda Anda dibuat, salin Nama Sumber Daya Amazon (ARN) fungsi yang ditampilkan di sudut kanan atas halaman. Berikut ini adalah contoh ARN:

   ```
   arn:aws:lambda:region:123456789012:function:HelloFunction
   ```

1. Salin kode berikut untuk fungsi Lambda ke bagian **Sumber kode** halaman. ***HelloFunction***

   ```
   export const handler = async(event, context, callback) => {
       callback(null, "Hello from " + event.who + "!");
   };
   ```

   Kode ini menyusun sapaan menggunakan bidang `who` data input, yang disediakan oleh objek `event` yang diteruskan ke fungsi Anda. Anda menambahkan data input untuk fungsi ini nanti, ketika Anda [memulai eksekusi baru](#start-lambda-function). Metode `callback` mengembalikan sapaan gabungan dari fungsi Anda.

1. Pilih **Deploy**.

## Langkah 2: Uji fungsi Lambda
<a name="test-lambda-function"></a>

Uji fungsi Lambda Anda untuk melihatnya beroperasi.

1. Pilih **Uji**.

1. Untuk **Nama peristiwa**, masukkan `HelloEvent`.

1. Ganti data **Event JSON** dengan yang berikut ini.

   ```
   {
       "who": "AWS Step Functions"
   }
   ```

   Entri `"who"` sesuai dengan bidang `event.who` di fungsi Lambda Anda, menyelesaikan sapaan. Anda akan memasukkan data input yang sama ketika Anda menjalankan mesin status Anda.

1. Pilih **Simpan** dan kemudian pilih **Uji**.

1. Untuk meninjau hasil pengujian, di bawah **Hasil eksekusi**, perluas **Detail**. 

## Langkah 3: Buat mesin negara
<a name="create-state-machine-step"></a>

Gunakan konsol Step Functions untuk membuat mesin status yang memanggil fungsi Lambda yang Anda buat [di](#create-lambda-function) Langkah 1.

1. Buka [konsol Step Functions](https://console.aws.amazon.com/states/home), pilih **State Machines** dari menu, lalu pilih **Create state machine**.
**penting**  
Pastikan mesin status Anda berada di bawah AWS akun dan Wilayah yang sama dengan fungsi Lambda yang Anda buat sebelumnya.

1. Pilih **Buat dari kosong**.

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

1. Di [browser States](workflow-studio.md#workflow-studio-components-states) di sebelah kiri, pastikan Anda telah memilih tab **Actions**. Kemudian, seret dan lepas API **AWS Lambda Invoke ke** status kosong berlabel **Seret status pertama** di sini.

1. Di panel [Inspector](workflow-studio.md#workflow-studio-components-formdefinition) di sebelah kanan, konfigurasikan fungsi Lambda:

   1. Di bagian **Parameter API**, pilih [fungsi Lambda yang Anda buat sebelumnya di daftar](#create-lambda-function) dropdown **nama Fungsi**.

   1. Simpan pilihan default di daftar **dropdown Payload**.

1. **(Opsional) Pilih **Definisi** untuk melihat definisi state machine [Amazon States Language](concepts-amazon-states-language.md) (ASL), yang secara otomatis dihasilkan berdasarkan pilihan Anda di tab **Actions** dan panel Inspector.**

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

   Misalnya, masukkan nama**LambdaStateMachine**.
**catatan**  
Nama mesin negara, eksekusi, dan tugas aktivitas tidak boleh melebihi 80 karakter panjangnya. Nama-nama ini harus unik untuk akun dan AWS Wilayah Anda, dan tidak boleh mengandung salah satu dari yang berikut:  
Spasi putih
Karakter wildcard (`? *`)
Karakter tanda kurung (`< > { } [ ]`)
Karakter khusus (`" # % \ ^ | ~ ` $ & , ; : /`)
Karakter kontrol (`\\u0000` - `\\u001f` atau `\\u007f` - `\\u009f`).
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 **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**.

1. Pilih **Buat**.

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 4: Jalankan mesin negara
<a name="start-lambda-function"></a>

Setelah Anda membuat mesin status Anda, Anda dapat menjalankannya.

1. Pada halaman **mesin Negara**, pilih **LambdaStateMachine**.

1. Pilih **Mulai Eksekusi**.

   Kotak dialog **Mulai eksekusi** ditampilkan.

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. Di area **Input**, ganti contoh data eksekusi dengan yang berikut ini.

   ```
   {
       "who" : "AWS Step Functions"
   }
   ```

    `"who"` adalah nama kunci yang fungsi Lambda Anda gunakan untuk mendapatkan nama orang untuk menyapa.

1. Pilih **Mulai Eksekusi**.

   Eksekusi state machine Anda dimulai, dan halaman baru yang menunjukkan eksekusi yang sedang berjalan ditampilkan.

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).

**catatan**  
Anda juga dapat meneruskan muatan saat memanggil Lambda dari mesin negara. Untuk informasi selengkapnya dan contoh tentang memanggil Lambda dengan meneruskan payload di lapangan, lihat`Parameters`. [Memanggil AWS Lambda fungsi dengan Step Functions](connect-lambda.md)