

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di Amazon ECS per CloudWatch ascoltare gli eventi Events
<a name="ecs_cwet"></a>

Scopri come configurare una semplice funzione Lambda che ascolta gli eventi delle attività e li scrive in un flusso di log di CloudWatch Logs.

## Prerequisito: configurazione di un cluster di verifica
<a name="cwet_step_1"></a>

Se non disponi di un cluster in esecuzione da cui acquisire eventi, segui la procedura descritta in [Creazione di un cluster Amazon ECS per i carichi di lavoro Fargate](create-cluster-console-v2.md) per crearne uno. Al termine del tutorial, potrai eseguire un processo su questo cluster per verificare la corretta configurazione della funzione Lambda. 

## Fase 1: Creazione della funzione Lambda
<a name="cwet_step_2"></a>

In questa procedura, viene creata una funzione Lambda semplice che funge da destinazione per i messaggi del flusso di eventi di Amazon ECS. 

1. Apri la console all' AWS Lambda indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Scegli **Crea funzione**. 

1. In **Author from scratch** (Crea da zero) effettua le seguenti operazioni:

   1. In **Name (Nome)**, immetti un valore. 

   1. In **Runtime**, scegli la versione di Python, ad esempio, **Python 3.9**.

   1. In **Role (Ruolo)**, scegliere **Create a new role with basic Lambda permissions (Crea un nuovo ruolo con le autorizzazioni Lambda di base)**.

1. Scegli **Crea funzione**.

1. Nella sezione **Function code** (Codice della funzione), modifica il codice di esempio affinché corrisponda all'esempio seguente:

   ```
   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))
   ```

   Si tratta di una funzione Python 3.9 semplice che stampa l'evento inviato da Amazon ECS. Se tutto è configurato correttamente, alla fine di questo tutorial, vedrai che i dettagli dell'evento vengono visualizzati nel flusso di log CloudWatch Logs associato a questa funzione Lambda.

1. Scegli **Save** (Salva).

## Fase 2: Registrazione di una regola di evento
<a name="cwet_step_3"></a>

 Successivamente, crei una regola CloudWatch degli eventi che acquisisce gli eventi delle attività provenienti dai tuoi cluster Amazon ECS. Questa regola acquisisce tutti gli eventi provenienti da tutti i cluster all'interno dell'account in cui è definita. Gli stessi messaggi di attività contengono informazioni sull'origine dell'evento, tra cui il cluster in cui esso risiede, utilizzabile per filtrare e ordinare gli eventi in modo programmatico. 

**Nota**  
Quando usi Console di gestione AWS per creare una regola di evento, la console aggiunge automaticamente le autorizzazioni IAM necessarie per concedere a CloudWatch Events l'autorizzazione a chiamare la tua funzione Lambda. Se stai creando una regola di evento utilizzando il AWS CLI, devi concedere questa autorizzazione in modo esplicito. Per ulteriori informazioni, consulta [Events in Amazon EventBridge e Amazon EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) [Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) nella *Amazon EventBridge User Guide*.

**Come instradare gli eventi alla funzione Lambda**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione, selezionare prima **Events (Eventi)**, quindi **Rules (Regole)** e infine **Create rule (Crea regola)**.

1. In **Event Source** (Origine eventi), scegli **ECS** come origine evento. Di default, questa regola si applica a tutti gli eventi di Amazon ECS per tutti i gruppi Amazon ECS. In alternativa, puoi selezionare eventi specifici o un gruppo specifico di Amazon ECS.

1. In **Targets** (Destinazioni), scegli **Add target** (Aggiungi destinazione), in **Target type** (Tipo di destinazione) scegli **Lambda function** (Funzione Lambda) quindi seleziona la tua funzione Lambda.

1. Scegli **Configura dettagli**.

1. In **Rule definition** (Definizione regola), digita un nome e una descrizione per la regola, quindi seleziona **Create rule** (Crea regola).

## Fase 3: creazione di una definizione di attività
<a name="cwet_step_task-def"></a>

Crea una definizione di attività.

1. Apri la console nella [https://console.aws.amazon.com/ecs/versione 2](https://console.aws.amazon.com/ecs/v2).

1. Nel riquadro di navigazione, scegli **Definizioni di attività**.

1. Scegli **Create new Task Definition** (Crea nuova definizione di attività), **Create new revision with JSON** (Crea nuova revisione con JSON).

1. Copia e incolla la seguente definizione di attività di esempio nella casella, quindi scegli **Save (Salva)**.

   ```
   {
      "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. Scegli **Create** (Crea).

## Fase 4: Test della regola
<a name="cwet_step_4"></a>

 Infine, crei una regola CloudWatch degli eventi che acquisisce gli eventi delle attività provenienti dai tuoi cluster Amazon ECS. Questa regola acquisisce tutti gli eventi provenienti da tutti i cluster all'interno dell'account in cui è definita. Gli stessi messaggi di attività contengono informazioni sull'origine dell'evento, tra cui il cluster in cui esso risiede, utilizzabile per filtrare e ordinare gli eventi in modo programmatico. 

**Per testare la regola**

1. [Apri la console nella versione 2. https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/v2)

1. Scegli **Task definitions** (Definizioni di attività).

1. Scegli **console-sample-app-static**, quindi scegli **Distribuisci**, **Esegui nuova attività**.

1. Per **Cluster**, scegli l'impostazione predefinita, quindi scegli **Deploy** (Implementa).

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione, scegli **Logs** e seleziona il gruppo di log per la tua funzione Lambda (ad esempio**,** *my-function* /aws/lambda/).

1. Seleziona un flusso di log per visualizzare i dati di evento. 