Teori
Apa Fungsi Langkah?
Dari AWS Docs: Step Functions adalah layanan orkestrasi tanpa server yang memungkinkan Anda menggabungkan fungsi AWS Lambda dan layanan AWS lainnya untuk membuat aplikasi bisnis penting. Dengan konsol grafis Step Functions, Anda melihat alur kerja aplikasi Anda sebagai rangkaian langkah yang digerakkan oleh peristiwa. Fungsi Langkah didasarkan pada mesin dan tugas negara. Mesin negara adalah alur kerja. Tugas adalah keadaan dalam alur kerja yang merupakan unit pekerjaan yang dilakukan oleh layanan AWS lain. Setiap langkah alur kerja adalah status.
Dengan kontrol Fungsi Langkah bawaan, Anda memeriksa status setiap langkah dalam alur kerja Anda untuk memastikan aplikasi Anda berjalan dalam urutan yang benar dan seperti yang diharapkan. Bergantung pada kasus penggunaan Anda, Step Functions dapat memanggil layanan AWS seperti Lambda untuk melakukan tugas. Anda dapat membuat alur kerja untuk memproses dan menerbitkan model pembelajaran mesin. Anda dapat menggunakan Fungsi Langkah untuk mengelola layanan AWS seperti AWS Glue untuk membuat alur kerja Ekstrak, Transformasi, dan Muat (ETL). Anda juga dapat membuat alur kerja otomatis yang panjang untuk aplikasi yang memerlukan interaksi manusia.
Atau, dengan kata sederhana, layanan untuk mengelola proses Anda.
Apa kasus penggunaan yang mungkin untuk Fungsi Langkah?
- Orkestrasi Lambda Functions
- Percabangan
- Penanganan pengecualian (Coba Lagi atau Tangkap)
- Partisipasi manusia dalam proses tersebut
- Paralelisme
Jenis proses dalam Fungsi Langkah
- Standar - diperlukan untuk proses yang berjalan dalam waktu lama, memiliki dukungan luas untuk layanan dan opsi interaksi
- Ekspres - diperlukan untuk proses yang berjalan cepat (5 menit), menghemat ~ 20 kali per juta proses yang dijalankan. Memiliki lebih sedikit integrasi dengan layanan AWS
Jenis Integrasi dengan Layanan AWS
Minta tanggapan (default) - Memanggil layanan dan mengizinkan Fungsi Langkah untuk beralih ke status berikutnya setelah menerima tanggapan HTTP.
Jalankan pekerjaan (.sync) - memanggil layanan dan menunggu pekerjaan selesai.
Tunggu callback dengan token tugas (.waitForTaskToken) - memanggil layanan dengan token tugas dan menunggu token tugas kembali menggunakan callback.
Perbandingan Integrasi dengan Layanan AWS dalam Jenis Standar dan Ekspres
Integrasi Layanan yang Didukung untuk Standar
| Layanan | Respon permintaan | Jalankan Pekerjaan (.sync) | Tunggu Callback (.waitForTaskToken) |
|---|---|---|---|
| Lambda | ✓ | ✓ | |
| AWS Batch | ✓ | ✓ | |
| DynamoDB | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ✓ | ✓ |
| Amazon SNS | ✓ | ✓ | |
| Amazon SQS | ✓ | ✓ | |
| Lem AWS | ✓ | ✓ | |
| SageMaker | ✓ | ✓ | |
| Amazon EMR | ✓ | ✓ | |
| CodeBuild | ✓ | ✓ | |
| Fungsi Langkah AWS | ✓ | ✓ | ✓ |
Integrasi Layanan yang Didukung untuk Express
| Layanan | Respon permintaan | Jalankan Pekerjaan (.sync) | Tunggu Callback (.waitForTaskToken) |
|---|---|---|---|
| Lambda | ✓ | ||
| AWS Batch | ✓ | ||
| DynamoDB | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ||
| Amazon SNS | ✓ | ||
| Amazon SQS | ✓ | ||
| Lem AWS | ✓ | ||
| SageMaker | ✓ | ||
| Amazon EMR | ✓ | ||
| CodeBuild | ✓ | ||
| Fungsi Langkah | ✓ | ✓ |
Cukup teori, mari kita pergi sebagai contoh.
Contoh teoritis
Untuk mendapatkan setidaknya gambaran tentang seperti apa layanan itu, pertimbangkan contoh Hello world.
Prasyarat
- Akun AWS
- Buka layanan Step Functions di akun AWS
Jadi berikut ini yang kami lakukan:
- Pergi ke "Buat Fungsi Langkah"
- Define state machine = Penulis dengan potongan kode
- Jenis = Standar
- Definisi =
{ "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "Result": "Hello", "Next": "World" }, "World": { "Type": "Pass", "Result": "World", "End": true } } }
Klik Mulai eksekusi. Sisipan dapat dihilangkan. Anda akan melihat diagram seperti ini:
Selamat, Anda telah membuat Fungsi Langkah yang paling sederhana.
Alih-alih kesimpulan
Jika topik ini menarik, di bagian selanjutnya kita akan membuat Fungsi Langkah dengan integrasi AWS Lambda + SQS + SNS, seperti yang ditunjukkan pada diagram:
Tautan ke sumber:
https://docs.aws.amazon.com/step-functions/