Tutorial: Buat aturan EventBridge terjadwal untuk AWS Lambda fungsi - Amazon EventBridge

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

Tutorial: Buat aturan EventBridge terjadwal untuk AWS Lambda fungsi

Anda dapat mengatur aturan untuk menjalankan AWS Lambda fungsi pada jadwal. Tutorial ini menunjukkan cara menggunakan AWS Management Console atau AWS CLI untuk membuat aturan. Jika Anda ingin menggunakan AWS CLI tetapi belum menginstalnya, lihat Menginstal, memperbarui, dan menghapus instalasi AWS CLI versi 2.

Untuk jadwal, EventBridge tidak memberikan presisi tingkat kedua dalam ekspresi jadwal. Resolusi terbaik yang menggunakan ekspresi cron adalah satu menit. Karena sifat terdistribusi EventBridge dan layanan target, mungkin ada penundaan beberapa detik antara waktu aturan terjadwal dipicu dan waktu layanan target menjalankan sumber daya target.

Langkah 1: Membuat fungsi Lambda

Buat fungsi Lambda untuk mencatat peristiwa yang dijadwalkan.

Untuk membuat fungsi Lambda
  1. Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Pilih Buat fungsi.

  3. Pilih Tulis dari scratch.

  4. Masukkan nama dan deskripsi untuk fungsi Lambda. Misalnya, beri nama fungsi tersebut LogScheduledEvent.

  5. Tinggalkan sisa pilihan sebagai default dan pilih Buat fungsi.

  6. Pada tab Kode dari halaman fungsi, klik dua kali index.js.

  7. Ganti kode yang ada dengan kode berikut.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Pilih Deploy.

Langkah 2: Buat Aturan

Buat aturan untuk menjalankan fungsi Lambda yang Anda buat pada langkah 1 pada jadwal.

Anda dapat menggunakan konsol atau AWS CLI untuk membuat aturan. Untuk menggunakan AWS CLI, Anda terlebih dahulu memberikan izin aturan untuk menjalankan fungsi Lambda Anda. Kemudian Anda dapat membuat aturan dan menambahkan fungsi Lambda sebagai target.

Untuk membuat aturan (konsol)
  1. Buka EventBridge konsol Amazon di https://console.aws.amazon.com/events/.

  2. Di panel navigasi, pilih Aturan.

  3. Pilih Buat aturan.

  4. Masukkan nama dan deskripsi untuk aturan.

    Aturan tidak boleh memiliki nama yang sama dengan aturan lain di Wilayah yang sama dan di bus kejadian yang sama.

  5. Untuk bus acara, pilih bus acara yang ingin Anda kaitkan dengan aturan ini. Jika Anda ingin aturan ini cocok dengan acara yang berasal dari akun Anda, pilih bus acara AWS default. Saat layanan AWS di akun Anda menghasilkan kejadian, layanan tersebut akan selalu masuk ke bus kejadian default akun Anda.

  6. Untuk jenis Aturan, pilih Jadwal.

  7. Pilih Selanjutnya.

  8. Untuk pola Jadwal, pilih Jadwal yang berjalan dengan tarif reguler, seperti setiap 10 menit. dan masuk 5 dan pilih Menit dari daftar drop-down.

  9. Pilih Selanjutnya.

  10. Untuk Jenis target, pilih Layanan AWS .

  11. Untuk Pilih target, pilih fungsi Lambda dari daftar drop-down.

  12. Untuk Fungsi, pilih fungsi Lambda yang Anda buat di bagian Langkah 1: Buat fungsi Lambda. Dalam contoh ini, pilihLogScheduledEvent.

  13. Pilih Selanjutnya.

  14. Pilih Selanjutnya.

  15. Tinjau detail aturan dan pilih Buat aturan.

Untuk membuat aturan (AWS CLI)
  1. Untuk membuat aturan yang berjalan pada jadwal, gunakan put-rule perintah.

    aws events put-rule \ --name my-scheduled-rule \ --schedule-expression 'rate(5 minutes)'

    Ketika aturan ini berjalan, itu membuat sebuah peristiwa dan kemudian mengirimkannya ke target. Berikut ini adalah contoh peristiwa.

    { "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
  2. Untuk memberikan izin EventBridge service principal (events.amazonaws.com) untuk menjalankan aturan, gunakan add-permission perintah.

    aws lambda add-permission \ --function-name LogScheduledEvent \ --statement-id my-scheduled-event \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule
  3. Buat file targets.json dengan konten berikut.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]
  4. Untuk menambahkan fungsi Lambda yang Anda buat di langkah 1 ke aturan, gunakanput-targets perintah.

    aws events put-targets --rule my-scheduled-rule --targets file://targets.json

Langkah 3: Verifikasi aturan

Tunggu setidaknya lima menit setelah menyelesaikan langkah 2, lalu Anda dapat memverifikasi bahwa fungsi Lambda Anda dipanggil.

Lihat output dari fungsi Lambda Anda
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Log.

  3. Pilih nama grup catatan untuk fungsi Lambda Anda (/aws/lambda/function-name).

  4. Pilih nama aliran log untuk melihat data yang disediakan oleh fungsi untuk instans yang Anda luncurkan.

Langkah 4: Konfirmasikan keberhasilan

Jika Anda melihat peristiwa Lambda di CloudWatch log, Anda telah berhasil menyelesaikan tutorial ini. Jika peristiwa tidak ada di CloudWatch log Anda, mulailah pemecahan masalah dengan memverifikasi aturan berhasil dibuat dan, jika aturan terlihat benar, verifikasi kode fungsi Lambda Anda sudah benar.

Langkah 5: Membersihkan sumber daya Anda

Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus AWS sumber daya yang tidak lagi Anda gunakan, Anda mencegah tagihan yang tidak perlu ke AWS akun Anda.

Untuk menghapus EventBridge aturan
  1. Buka halaman Aturan EventBridge konsol.

  2. Pilih aturan yang Anda buat.

  3. Pilih Hapus.

  4. Pilih Hapus.

Untuk menghapus fungsi Lambda
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi yang Anda buat.

  3. Pilih Tindakan, Hapus.

  4. Pilih Hapus.