Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi Amazon ECS untuk mendengarkan acara Acara CloudWatch
Pelajari cara menyiapkan fungsi Lambda sederhana yang mendengarkan peristiwa tugas dan menuliskannya ke aliran CloudWatch log Log.
Prasyarat: Atur klaster pengujian
Jika Anda tidak memiliki klaster yang berjalan untuk menangkap peristiwa, ikuti langkah-langkah dalam Membuat cluster Amazon ECS untuk jenis peluncuran Fargate untuk membuat klaster. Di akhir tutorial ini, Anda menjalankan tugas di cluster ini untuk menguji apakah Anda telah mengonfigurasi fungsi Lambda Anda dengan benar.
Langkah 1: Buat fungsi Lambda
Dalam prosedur ini, Anda membuat fungsi Lambda sederhana untuk berfungsi sebagai target pesan aliran acara Amazon ECS.
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Pilih Buat fungsi.
-
Pada layar Tulis dari awal, lakukan hal berikut:
-
Untuk Nama, masukkan nilai.
-
Untuk Runtime, pilih versi Python Anda, misalnya, Python 3.9.
-
Untuk Peran, pilih Buat peran baru dengan izin Lambda dasar.
-
-
Pilih Buat fungsi.
-
Di bagian Kode fungsi, edit kode sampel untuk mencocokkan contoh berikut:
import json def lambda_handler(event, context): if event["source"] != "aws.ecs": raise ValueError("Function only supports input from events with a source type of: aws.ecs") print('Here is the event:') print(json.dumps(event))
Ini adalah fungsi Python 3.9 sederhana yang mencetak acara yang dikirim oleh Amazon ECS. Jika semuanya dikonfigurasi dengan benar, di akhir tutorial ini, Anda melihat bahwa detail peristiwa muncul di aliran CloudWatch log Log yang terkait dengan fungsi Lambda ini.
-
Pilih Simpan.
Langkah 2: Mendaftarkan aturan peristiwa
Selanjutnya, Anda membuat aturan CloudWatch acara Acara yang menangkap peristiwa tugas yang berasal dari kluster Amazon ECS Anda. Aturan ini menangkap semua peristiwa dari semua klaster dalam akun yang ditentukan. Pesan tugas sendiri berisi informasi sumber peristiwa, termasuk klaster tempat klaster berada, yang dapat Anda gunakan untuk memfilter dan mengurutkan peristiwa secara terprogram.
catatan
Saat Anda menggunakan aturan AWS Management Console untuk membuat acara, konsol secara otomatis menambahkan izin IAM yang diperlukan untuk memberikan izin CloudWatch Acara untuk memanggil fungsi Lambda Anda. Jika Anda membuat aturan acara menggunakan AWS CLI, Anda harus memberikan izin ini secara eksplisit. Untuk informasi selengkapnya, lihat Peristiwa di Amazon EventBridge dan pola EventBridge acara Amazon di Panduan EventBridge Pengguna Amazon.
Untuk merutekan acara ke fungsi Lambda Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi, pilih Peristiwa, Aturan, Buat aturan.
-
Untuk Sumber Peristiwa, pilih ECS sebagai sumber peristiwa. Secara default, aturan ini berlaku untuk semua peristiwa Amazon ECS untuk semua grup Amazon ECS Anda. Atau, Anda dapat memilih acara tertentu atau grup Amazon ECS tertentu.
-
Untuk Target, pilih Tambah target, untuk jenis Target, pilih fungsi Lambda, lalu pilih fungsi Lambda Anda.
-
Pilih Konfigurasikan detail.
-
Untuk Definisi aturan, tuliskan nama dan deskripsi untuk aturan Anda dan pilih Buat aturan.
Langkah 3: Membuat sebuah penetapan tugas
Buat definisi tugas.
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Di panel navigasi, pilih Ketentuan Tugas.
-
Pilih Buat Definisi Tugas baru, Buat revisi baru dengan JSON.
-
Salin dan tempel contoh ketentuan tugas berikut ke dalam kotak dan kemudian pilih Simpan.
{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": [ "sh", "-c" ], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ] } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::
012345678910
:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "requiresCompatibilities": [ "FARGATE" ] } -
Pilih Buat.
Langkah 4: Uji aturan Anda
Terakhir, Anda membuat aturan CloudWatch acara Acara yang menangkap peristiwa tugas yang berasal dari kluster Amazon ECS Anda. Aturan ini menangkap semua peristiwa dari semua klaster dalam akun yang ditentukan. Pesan tugas berisi informasi tentang sumber peristiwa, termasuk klaster tempat klaster berada, yang dapat Anda gunakan untuk memfilter dan mengurutkan peristiwa secara terprogram.
Menguji aturan Anda
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Pilih Definisi tugas.
-
Pilih console-sample-app-static, lalu pilih Deploy, Run new task.
-
Untuk Cluster, pilih default, lalu pilih Deploy.
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Pada panel navigasi, pilih Log dan pilih grup log untuk fungsi Lambda Anda (misalnya,
my-function
/aws/lambda/). -
Pilih stream log untuk melihat data peristiwa.