Come posso risolvere l'errore "ResourceInitializationError: failed to validate logger args" (ResourceInitializationError: impossibile convalidare gli argomenti del logger) in Amazon ECS?

Ultimo aggiornamento: 31/01/2023

Quando eseguo un'attività in Amazon Elastic Container Service (Amazon ECS), ricevo un errore "ResourceInitializationError: failed to validate logger args" (ResourceInitializationError: impossibile convalidare gli argomenti del logger).

Breve descrizione

Quando un'attività Amazon ECS non riesce a trovare un gruppo di log di Amazon CloudWatch definito nell'attività definitionAmazon, Amazon ECS restituisce un errore ResourceInitialization. Viene visualizzato il seguente errore: 

"ResourceInitializationError: failed to validate logger args: create stream has been retried 1 times: failed to create Cloudwatch log stream: ResourceNotFoundException: The specified log group does not exist. : exit status 1" (ResourceInitializationError: impossibile convalidare gli argomenti del logger: il flusso di creazione è stato provato 1 volta: impossibile creare il flusso di log Cloudwatch: ResourceNotFoundException: il gruppo di log specificato non esiste. : codice di uscita 1)

Per risolvere l'errore, crea un nuovo gruppo di log per l'attività.

Risoluzione

Per risolvere l'errore ResourceInitialization, rivedi le seguenti soluzioni per creare un nuovo gruppo di log per l'attività.

Se non sai quale gruppo di log è definito nella definizione dell'attività e restituisce un errore, emetti il comando seguente:

aws ecs describe-task-definition --task-definition nginx-fargate:3 | jq -r .taskDefinition.containerDefinitions[].logConfiguration

L'output descrive l'attività che è necessario creare nuovamente in CloudWatch.

Creazione di un gruppo di log di CloudWatch nella console

1.    Apri la console CloudWatch.

2.    Dalla barra di navigazione, scegli la regione in cui si trova il cluster Amazon ECS.

3.    Nel pannello di navigazione a sinistra, scegli Logs (Log), quindi seleziona Log groups (Gruppi di log).

4.    Nella finestra Log groups (Gruppi di log), seleziona Create log group (Crea gruppo di log).

Creazione di un gruppo di log di CloudWatch utilizzando AWS CLI

 

Crea un gruppo di log di CloudWatch utilizzando il comando create-log-group nell'interfaccia della linea di comando AWS (AWS CLI). Il seguente comando di esempio crea un gruppo di log denominato mylogs:

Nota: se ricevi degli errori durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

 

aws logs create-log-group --log-group-name mylogs

Utilizzo della funzione di configurazione automatica in Amazon ECS

L'opzione di configurazione automatica crea un gruppo di log per tuo conto utilizzando il nome della famiglia di definizioni di attività con ecs come prefisso. L'esempio seguente specifica una configurazione di log nella tua definizione dell'attività:

{
  "containerDefinitions": [
    {
      "logConfiguration": {
        "logDriver": "awslogs",
         "options": {
           "awslogs-group": "/ecs/task_definition_familyname ",
           "awslogs-region": "eu-west-1",
           "awslogs-stream-prefix": "ecs"
    }
  }
}

Puoi anche creare un gruppo di log personalizzato con la seguente procedura:

1.    Specifica le opzioni di configurazione dei log.

2.    Aggiungi la chiave awslogs-create-group con il valore true. Questa operazione crea il gruppo di log per tuo conto.

L'esempio seguente specifica una configurazione di log nella tua definizione dell'atti.vità con options impostato:

{
  "containerDefinitions": [
    {
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "example_container",
          "awslogs-region": "eu-west-1",
          "awslogs-create-group": "true",
          "awslogs-stream-prefix": "example"
    }
  }
}

Nota: la policy gestita da AWS Identity and Access Management (IAM) AmazonECSTaskExecutionRolePolicy non include le autorizzazioni logs:CreateLogGroup. Per utilizzare l'opzione awslogs-create-group, aggiungi logs:CreateLogGroup come policy IAM in linea.


Questo articolo è stato utile?


Hai bisogno della fattura o di supporto tecnico?