

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
<a name="ecs_cwet"></a>

Pelajari cara menyiapkan fungsi Lambda sederhana yang mendengarkan peristiwa tugas dan menuliskannya ke aliran CloudWatch log Log.

## Prasyarat: Atur klaster pengujian
<a name="cwet_step_1"></a>

Jika Anda tidak memiliki klaster yang berjalan untuk menangkap peristiwa, ikuti langkah-langkah dalam [Membuat cluster Amazon ECS untuk beban kerja Fargate](create-cluster-console-v2.md) 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
<a name="cwet_step_2"></a>

Dalam prosedur ini, Anda membuat fungsi Lambda sederhana untuk berfungsi sebagai target pesan aliran acara Amazon ECS. 

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Pilih **Buat fungsi**. 

1. Pada layar **Tulis dari awal**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nilai. 

   1. Untuk **Runtime**, pilih versi Python Anda, misalnya, **Python** 3.9.

   1. Untuk **Peran**, pilih **Buat peran baru dengan izin Lambda dasar**.

1. Pilih **Buat fungsi**.

1. 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.

1. Pilih **Simpan**.

## Langkah 2: Mendaftarkan aturan peristiwa
<a name="cwet_step_3"></a>

 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 Konsol Manajemen AWS 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) [dan pola EventBridge acara](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) *Amazon di Panduan EventBridge Pengguna Amazon*.

**Untuk merutekan acara ke fungsi Lambda Anda**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi, pilih **Peristiwa**, **Aturan**, **Buat aturan**.

1. 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.

1. Untuk **Target**, pilih **Tambah target**, untuk **jenis Target**, pilih fungsi **Lambda, lalu pilih fungsi** Lambda Anda.

1. Pilih **Konfigurasikan detail**.

1. Untuk **Definisi aturan**, tuliskan nama dan deskripsi untuk aturan Anda dan pilih **Buat aturan**.

## Langkah 3: Membuat sebuah penetapan tugas
<a name="cwet_step_task-def"></a>

Buat definisi tugas.

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Di panel navigasi, pilih **Ketentuan Tugas**.

1. Pilih **Buat Definisi Tugas baru**, **Buat revisi baru dengan JSON**.

1. 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": "public.ecr.aws/docker/library/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" 
       ]
   }
   ```

1. Pilih **Buat**.

## Langkah 4: Uji aturan Anda
<a name="cwet_step_4"></a>

 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**

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pilih **Definisi tugas**.

1. Pilih **console-sample-app-static**, lalu pilih **Deploy**, **Run new task**.

1. Untuk **Cluster**, pilih default, lalu pilih **Deploy**.

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pada panel navigasi, pilih **Log dan pilih grup log** untuk fungsi Lambda Anda (misalnya**,** *my-function* /aws/lambda/).

1. Pilih stream log untuk melihat data peristiwa. 