Configurazione di Amazon ECS per ascoltare CloudWatch gli eventi Events - Amazon Elastic Container Service

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 ascoltare CloudWatch gli eventi Events

Scopri come configurare una semplice funzione Lambda che ascolti e scriva gli eventi di processo in un flusso di CloudWatch log Logs.

Prerequisito: configurazione di un cluster di verifica

Se non disponi di un cluster in esecuzione da cui acquisire eventi, segui la procedura descritta in Creazione di un ECS cluster Amazon per il tipo di avvio Fargate 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

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

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

  2. Scegli Crea funzione.

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

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

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

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

  4. Scegli Crea funzione.

  5. 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, al termine di questo tutorial saranno visualizzati i dettagli dell'evento nel flusso di log di CloudWatch Logs associato a questa funzione Lambda.

  6. Seleziona Salva.

Fase 2: Registrazione di una regola di evento

Successivamente, crea una regola di evento CloudWatch Events che acquisisca eventi di processo provenienti dai ECS cluster di Amazon. 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 utilizzi la AWS Management Console per creare una regola di evento, la console aggiunge automaticamente le IAM autorizzazioni necessarie per concedere l'autorizzazione CloudWatch Events per richiamare la funzione Lambda. Se crei una regola di evento utilizzando la AWS CLI, dovrai concedere tali autorizzazioni in modo esplicito. Per ulteriori informazioni, consulta Events in Amazon EventBridge e Amazon EventBridge Event Patterns 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/.

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

  3. Per Origine evento, scegli ECScome origine dell'evento. Di default, questa regola si applica a tutti ECS gli eventi di Amazon per tutti i ECS gruppi Amazon. In alternativa, puoi selezionare eventi specifici o un ECS gruppo specifico di Amazon.

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

  5. Scegli Configura dettagli.

  6. 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à

Crea una definizione di attività.

  1. Apri la console nella https://console.aws.amazon.com/ecs/versione 2.

  2. Nel riquadro di navigazione, scegli Definizioni di attività.

  3. Scegli Crea nuova definizione di attività, Crea nuova revisione con. JSON

  4. Copia e incolla la seguente definizione di attività di esempio nella casella, quindi scegli Salva.

    { "containerDefinitions": [ { "entryPoint": [ "sh", "-c" ], "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ], "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\"" ], "cpu": 10, "memory": 300, "image": "httpd:2.4", "name": "simple-app" } ], "family": "console-sample-app-static" }
  5. Scegli Create (Crea) .

Fase 4: Test della regola

Infine, crea una regola di evento CloudWatch Events che acquisisca eventi di processo provenienti dai ECS cluster di Amazon. 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/

  2. Scegli Task definitions (Definizioni di attività).

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

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

  5. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  6. Nel pannello di navigazione, scegli Log, quindi seleziona il gruppo di log della funzione Lambda (ad esempio, /aws/lambda/).my-function).

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