Ringkasan AWS Step Functions

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?



  1. Orkestrasi Lambda Functions



    gambar

  2. Percabangan



    gambar

  3. Penanganan pengecualian (Coba Lagi atau Tangkap)



    gambar

  4. Partisipasi manusia dalam proses tersebut



    gambar

  5. Paralelisme



    gambar



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



  1. Akun AWS
  2. Buka layanan Step Functions di akun AWS


Jadi berikut ini yang kami lakukan:



  1. Pergi ke "Buat Fungsi Langkah"
  2. Define state machine = Penulis dengan potongan kode
  3. Jenis = Standar
  4. 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:



gambar

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:



gambar



Tautan ke sumber:



https://docs.aws.amazon.com/step-functions/



All Articles