Tutorial: JadwalAWS LambdaFungsi Menggunakan CloudWatch Events - Amazon CloudWatch Peristiwa

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

Tutorial: JadwalAWS LambdaFungsi Menggunakan CloudWatch Events

catatan

Amazon EventBridge adalah cara pilihan untuk mengelola peristiwa Anda. CloudWatch Events dan EventBridge adalah layanan dan API dasar yang sama, tetapi EventBridge menyediakan lebih banyak fitur. Perubahan yang Anda buat di CloudWatch atau EventBridge akan muncul di setiap konsol. Untuk informasi selengkapnya, lihat Amazon EventBridge.

Anda dapat mengatur Aturan untuk menjalankanAWS Lambdaberfungsi pada jadwal. Tutorial ini menunjukkan cara menggunakan AWS Management Console atau AWS CLI atau membuat aturan. Jika Anda ingin menggunakan AWS CLI tapi belum menginstalnya, lihat Panduan Pengguna AWS Command Line Interface.

CloudWatch Events tidak memberikan presisi tingkat kedua dalam ekspresi jadwal. Resolusi terbaik untuk penggunaan ekspresi cron adalah satu menit. Karena CloudWatch Events dan layanan target terdistribusi, dapat terjadi penundaan beberapa detik antara waktu aturan yang dijadwalkan dipicu dan waktu layanan target menjalankan sumber daya target. Aturan terjadwal Anda akan dipicu di menit itu tetapi tidak persis pada detik ke-0.

Langkah 1: BuatAWS LambdaFungsi

Buat fungsi Lambda untuk mencatat peristiwa yang dijadwalkan. Anda menetapkan fungsi ini saat membuat aturan Anda.

Untuk membuat fungsi Lambda

  1. Buka AWS Lambda konsol tersebut di https://console.aws.amazon.com/lambda/.

  2. Jika Anda baru mengenal Lambda, Anda akan melihat halaman selamat datang. Pilih Mulai Sekarang. Atau, pilih Buat fungsi Lambda.

  3. Pada halaman Pilih cetak biru, ketik hello untuk filter, lalu pilih cetak biru hello-world.

  4. Pada halaman Mengonfigurasi pemicu, pilih Selanjutnya.

  5. Pada halaman Konfigurasi fungsi, lakukan hal berikut:

    1. Ketik nama dan deskripsi untuk fungsi Lambda. Misalnya, beri nama fungsi “LogScheduledEvent”.

    2. Edit kode sampel untuk fungsi Lambda. Misalnya:

      'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. Untuk Peran, pilih Pilih peran yang ada. Untuk Peran yang ada, pilih peran eksekusi dasar Anda. Atau, buat peran eksekusi dasar.

    4. Pilih Selanjutnya.

  6. Pada halaman Peninjauan, pilih Buat fungsi.

Langkah 2: Buat aturan

Buat aturan untuk menjalankan fungsi Lambda sesuai jadwal.

Untuk membuat aturan menggunakan konsol

  1. Buka konsol CloudWatch di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Peristiwa, Buat aturan.

  3. Untuk Sumber Peristiwa, lakukan hal berikut:

    1. Pilih Jadwal.

    2. Pilih Nilai tetap dan tentukan interval jadwal (misalnya, 5 menit).

  4. UntukTarget, pilih Menambahkan target, Fungsi Lambda.

  5. Untuk Fungsi, pilih fungsi Lambda yang Anda buat.

  6. Pilih Konfigurasi detail.

  7. Untuk Definisi aturanIT, ketikkan nama dan deskripsi untuk aturan.

  8. Pilih Buat aturan.

Jika mau, Anda dapat membuat aturan menggunakan AWS CLI. Pertama, Anda harus memberikan izin aturan untuk mengaktifkan fungsi Lambda Anda. Kemudian Anda dapat membuat aturan dan menambahkan fungsi Lambda sebagai target.

Untuk membuat topik menggunakan AWS CLI

  1. Gunakan perintah berikut put-aturan untuk membuat aturan yang terpicu otomatis sesuai jadwal:

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

    Ketika aturan ini terpicu, akan dihasilkan sebuah peristiwa yang berfungsi sebagai input untuk target aturan ini. 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. Gunakan perintah berikut add-permission untuk memercayakan prinsipal layanan CloudWatch Events (events.amazonaws.com) dan izin lingkup pada aturan dengan Amazon Resource Name (ARN) yang ditentukan:

    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. Gunakan perintah berikut put-targets untuk menambahkan fungsi Lambda yang Anda buat untuk aturan ini supaya fungsi ini berjalan setiap lima menit:

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

    Buat file targets.json dengan isi sebagai berikut:

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]

Langkah 3: Verifikasi Aturan

Setidaknya lima menit setelah menyelesaikan Langkah 2, Anda dapat memverifikasi bahwa fungsi Lambda Anda telah dipanggil.

Menguji aturan Anda

  1. Buka konsol CloudWatch di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Peristiwa, Aturan, lalu pilih nama aturan yang Anda buat, dan kemudian pilih Tampilkan metrik untuk aturan tersebut.

  3. Untuk melihat output dari fungsi Lambda Anda, lakukan hal berikut:

    1. Di panel navigasi, pilih Log.

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

    3. Pilih nama aliran catatan untuk menampilkan data yang disediakan oleh fungsi untuk instans yang Anda luncurkan.

  4. (Opsional) Setelah selesai, Anda dapat menonaktifkan aturan.

    1. Buka konsol CloudWatch di https://console.aws.amazon.com/cloudwatch/.

    2. Di panel navigasi, pilih Peristiwa, Aturan.

    3. Pilih aturan kemudian pilih Tindakan, Nonaktifkan.

    4. Ketika dimintai konfirmasi, pilih Nonaktifkan.