Menjadwalkan Alur Kerja Tanpa Server

dengan AWS Step Functions dan Amazon CloudWatch

Mengotomatiskan cara merespons kejadian operasional untuk sumber daya di akun AWS Anda dapat membantu mengurangi overhead operasional infrastruktur AWS Cloud. Sebagai contoh di dunia nyata, jika Anda seorang teknisi DevOps atau manager IT, Anda mungkin ingin mengotomatiskan tugas ETL, sinkronisasi data, atau keamanan.

Untuk mengatasi tantangan ini, Anda dapat menjalankan alur kerja nirserver pada jadwal berbasis waktu. Amazon CloudWatch Events menyediakan aliran peristiwa sistem hampir secara real-time yang menguraikan perubahan dan notifikasi untuk sumber daya AWS Anda. Untuk aliran ini, Anda dapat membuat aturan untuk merutekan kejadian tertentu ke AWS Step Functions dan memanggil mesin status untuk melakukan pemrosesan lebih lanjut. AWS Step Functions memungkinkan Anda mengoordinasikan beberapa layanan ke alur kerja tanpa server, sehingga Anda dapat membangun dan memperbarui proses otomatis dengan cepat.

Dalam tutorial ini, Anda akan menggunakan Step Functions untuk mengatur alur kerja tanpa server dalam menanggapi kejadian CloudWatch. Pertama, Anda akan membuat mesin status sangat sederhana menggunakan AWS Step Functions. Kemudian, Anda akan menggunakan Amazon CloudWatch Events untuk menyiapkan aturan yang menjalankan mesin status Anda setiap menit. Sementara tutorial ini memanggil alur kerja pada jadwal berbasis waktu, alur kerja ini dapat dihasilkan untuk berintegrasi dengan layanan AWS yang dihasilkan kejadian lainnya.

Anda akan menggunakan AWS Step Functions dan Amazon CloudWatch dalam tutorial ini. Kedua layanan ini berada dalam AWS Tingkat Gratis.

Tutorial ini memerlukan akun AWS

Tidak ada biaya tambahan untuk Step Functions atau CloudWatch. Sumber daya yang Anda buat dalam tutorial ini memenuhi syarat Tingkat Gratis. 

Selengkapnya tentang Tingkat Gratis >>


Langkah 1. Buat peran AWS Identity and Access Management (IAM)

AWS Step Functions dapat menjalankan kode dan mengakses sumber daya AWS lainnya (misal, data yang disimpan dalam bucket Amazon S3). Untuk mempertahankan keamanan, Anda harus memberi Step Functions akses ke sumber daya ini menggunakan AWS Identity and Access Management (IAM).


a. Buka AWS Management Console di jendela browser lain, agar panduan langkah demi langkah ini selalu terbuka. Saat layar muncul, masukkan nama pengguna dan kata sandi untuk memulai. Ketikkan IAM dalam bilah pencarian, lalu pilih IAM untuk membuka konsol layanan.

01a

( klik untuk memperbesar )


b.  Klik Peran, lalu pilih Buat Peran.

01b

( klik untuk memperbesar )


c. Pada halaman Pilih jenis entitas tepercaya, di bawah layanan AWS, pilih Step Functions dari daftar, kemudian Berikutnya: Izin.

01c

( klik untuk memperbesar )


d. Pada halaman Lampirkan kebijakan izin, pilih Berikutnya: Tinjau.

01d

( klik untuk memperbesar )


e. Pada halaman Tinjau, ketik step_functions_basic_execution untuk Nama peran dan klik Buat peran.

01e

( klik untuk memperbesar )


f. Peran IAM Anda telah dibuat.

01f

( klik untuk memperbesar )


Langkah 2. Membuat Mesin Status AWS Step Functions

Dalam langkah ini, Anda akan membuat mesin status yang berjalan secara simpel dan independen menggunakan status Pass. Status Pass hanya meneruskan input ke output, dan tidak benar-benar melakukan pekerjaan apa pun.

Dalam skenario dunia nyata, alur kerja tanpa server Anda dapat melakukan apa pun yang perlu dilakukan. Anda dapat mengoordinasikan beberapa fungsi Lambda untuk menjalankan tugas, membuat keputusan, dan sebagainya. Untuk kepentingan tutorial ini, kami akan membuat alur kerjanya tetap simpel.


a. Buka konsol AWS Step Functions. Step Functions menawarkan berbagai mesin status yang ditetapkan sebelumnya sebagai templat. Untuk tutorial ini, Anda akan membuat mesin status menggunakan templat Hello World. Di halaman Membuat mesin status, pilih Templat, kemudian pilih Hello world.

02c

( klik untuk memperbesar )


b. Di bagian Detail, masukkan Nama mesin status sebagai ScheduledWorkflow, kemudian di bagian Peran IAM, pilih Saya akan menggunakan peran yang sudah ada. Di bagian Peran IAM yang sudah ada, pilih peran IAM yang Anda buat, step_functions_basic_execution.

02d

( klik untuk memperbesar )


c. Step Functions akan mengisi nama mesin status secara otomatis. Step Functions juga akan mengisi panel Definisi mesin status dengan deskripsi Bahasa Status Amazon mesin status. Untuk informasi selengkapnya mengenai cara menentukan mesin status, lihat Struktur Mesin Status.

Mari buat beberapa modifikasi simpel ke mesin status Anda:

Pada baris 2 dan 5, ganti “HelloWorld” dengan “Do Something”
Pada baris 7, ganti “Hello World!” dengan “Work complete!”

Kemudian, klik tombol segarkan di samping alur kerja visual untuk memperbarui diagram mesin status untuk merefleksikan perubahan.

02e

( klik untuk memperbesar )


d. Pilih Buat mesin status. Mesin status Anda kini siap dieksekusi.

02f

( klik untuk memperbesar )


Langkah 3. Buat Aturan Amazon CloudWatch Events

Kini Anda telah membuat mesin status, Anda dapat membuat aturan Amazon CloudWatch Events yang menjalankan mesin status Anda sesuai dengan jadwal. Amazon CloudWatch Events memberikan aliran kejadian sistem yang hampir real-time yang mendeskripsikan perubahan di sumber daya Amazon Web Services (AWS). Menggunakan aturan simpel yang dapat Anda siapkan dengan cepat, Anda dapat menyesuaikan kejadian dan merutekannya ke satu atau lebih fungsi target atau aliran.


a. Buka tab browser lainnya. Buka konsol CloudWatch Events dengan memasukkan CloudWatch di bilah pencarian.

03a

( klik untuk memperbesar )


b. Pilih Kejadian, lalu pilih Buat aturan.  

03b

( klik untuk memperbesar )


c. Lalu halaman Langkah 1: Buat aturan ditampilkan. Di bagian Sumber kejadian, pilih Jadwal. Di bagian Nilai tetap masukkan 1 dan biarkan unit “Menit” dipilih.

03c

( klik untuk memperbesar )


d. Di bagian Target, pilih Tambah target. Pilih status mesin Step Functions dari daftar, lalu pilih mesin status ScheduledWorkflow.

Pilih Konfigurasikan input lalu pilih Kejadian yang cocok. Hal ini akan meneruskan detail CloudWatch Events sebagai input ke Step Functions setiap kali mengeksekusi instans dari mesin status Anda.

Pilih Buat peran baru untuk sumber daya spesifik ini, lalu klik klik Konfigurasikan detail.

03d

( klik untuk memperbesar )


e. Halaman Langkah 2: Konfigurasikan detail aturan ditampilkan. Masukkan execute_state_machine sebagai Nama aturan Anda, biarkan Diaktifkan untuk Status dicentang, lalu pilih Buat aturan.

Aturan dibuat dan halaman Aturan ditampilkan, cantumkan semua aturan CloudWatch Events.

Eksekusi baru mesin status Anda kini akan mengeksekusi setiap menit.

03e

( klik untuk memperbesar )


Langkah 4. Menyesuaikan cara Mesin Status Menangani Input dan Output

Berikutnya, Anda akan menyesuaikan bagaimana mesin status menangani input dan output. Memahami bagaimana informasi mengalir dari status ke status, dan mempelajari cara memfilter dan memanipulasi data ini, akan membantu Anda mendesain dan menerapkan alur kerja secara efektif di AWS Step Functions.


a. Kembali di konsol Step Functions, mesin status ScheduledWorkflow Anda akan tetap ditampilkan. Klik Edit.

04a

( klik untuk memperbesar )


b. Di jendela Definisi mesin status, buka baris 7 mesin status Anda. Bidang Hasil dalam status Pass menentukan output yang harus diteruskan ke status berikutnya. Karena mesin status Anda hanya memiliki satu status, pesan "Work complete" akan diteruskan ke kondisi akhir alur kerja Anda.

Anda mungkin ingat bahwa status Pass Step Functions hanya meneruskan inputnya ke outputnya. Anda bisa menggunakan bidang ResultPath untuk mengubah output suatu status. Misalnya, Anda dapat mengganti input status dengan hasil yang dihasilkannya (misalnya, output dari fungsi Lambda status Tugas).

Untuk menggabungkan input keadaan dengan hasilnya, tambahkan baris baru setelah baris 7 dan ketik:

"ResultPath": "$.taskresult",

Ini akan menggabungkan detail Acara CloudWatch yang menjalankan eksekusi mesin status dengan output dari status Pass, dalam hal ini, "Work complete!". Untuk informasi selengkapnya, lihat Pemrosesan Input dan Output di Step Functions.

04b

( klik untuk memperbesar )


c. Klik Simpan.

04c

( klik untuk memperbesar )


Langkah 5. Konfirmasikan Alur Kerja Berfungsi Sesuai Perkiraan Anda

Sekarang Anda telah mengaktifkan aturan CloudWatch Events Anda, CloudWatch memicu eksekusi alur kerja mesin status Anda setiap menit. Pada langkah ini, Anda akan mengamati eksekusi tersebut dan memverifikasi bahwa detail CloudWatch Events sedang ditangkap oleh Step Functions.


a. Kembali di konsol Step Functions, klik di ScheduledWorkflow di breadcrumb di bagian atas halaman.

05a

( klik untuk memperbesar )


b. Di bagian Eksekusi, Anda dapat mengamati eksekusi yang diaktifkan oleh CloudWatch Events. Anda dapat mengklik tombol segarkan untuk memperbarui jendela guna mengamati eksekusi baru dari mesin status Anda yang muncul. Tunggu beberapa menit untuk memungkinkan sedikitnya dua instans alur kerja Anda untuk dipicu.

05b

( klik untuk memperbesar )


c. Klik kanan pada salah satu eksekusi dan buka tautan di tab browser baru. Ulangi untuk eksekusi yang berbeda dari mesin status Anda.

Di setiap tab, klik status “Do Something” di panel alur kerja Visual untuk mengisi panel Detail langkah di sebelah kanan.

Dengan mengeklik Input, Anda dapat melihat detail kejadian yang cocok dari CloudWatch. Perhatikan bahwa perbedaan kejadian, seperti kolom “id” dan “waktu”.

05c

( klik untuk memperbesar )


d. Di setiap tab, perluas Output di bagian panel Detail langkah. Anda dapat melihat bahwa input dikombinasikan dengan output status "Do Something".

05d

( klik untuk memperbesar )


Langkah 6. Hentikan Sumber Daya Anda

Dalam langkah ini, Anda akan menghentikan sumber daya yang terkait dengan AWS Step Functions dan Amazon CloudWatch.

Penting: Menghentikan sumber daya yang tidak digunakan secara aktif mengurangi biaya dan merupakan praktik terbaik. Tidak menghentikan sumber daya Anda dapat menimbulkan biaya.


a. Tutup tab untuk eksekusi mesin status individu. Di bagian atas jendela Step Functions, klik pada Mesin status.

06a

( klik untuk memperbesar )


b. Di jendela Mesin status, klik pada mesin status yang Anda buat untuk tutorial ini, lalu pilih Hapus. Konfirmasikan tindakan dengan memilih Hapus mesin status di kotak dialog. Mesin status Anda akan dihapus dalam beberapa menit setelah Step Functions mengonfirmasi bahwa setiap proses eksekusi telah selesai.

06b

( klik untuk memperbesar )


c. Berikutnya, Anda akan menghapus aturan Amazon CloudWatch Events. Di konsol CloudWatch, klik Tindakan lalu klik Hapus. Konfirmasikan penghapusan dengan mengeklik Hapus lagi.

06c

( klik untuk memperbesar )


d. Klik Layanan, lalu masukkan IAM di bilah pencarian untuk membuka konsol IAM.

06d

( klik untuk memperbesar )


e. Klik Peran.

06e

( klik untuk memperbesar )


f. Pilih kedua peran IAM yang Anda buat untuk tutorial ini, kemudian klik Hapus peran. Konfirmasikan penghapusan dengan mengeklik Ya, Hapus pada kotak dialog.

Kini Anda dapat keluar dari AWS Management Console.

06f

( klik untuk memperbesar )


Selamat!

Anda telah berhasil menjadwalkan alur kerja tanpa server untuk berjalan setiap menit.
AWS Step Functions memungkinkan Anda menginspeksi dan mengaudit eksekusi berulang untuk mengonfirmasi bahwa mereka dieksekusi secara konsisten. Dengan mengombinasikan AWS Step Functions dengan Amazon CloudWatch Events, Anda dapat mengotomatiskan tugas harian, mingguan, dan bulanan, atau memicu eksekusi alur kerja Step Functions ketika kondisi tertentu terpenuhi.