Como resolvo o erro "ResourceInitializationError: failed to validate logger args"“ (ErroInicializaçãoRecursoInicialização: falha ao validar argumentos do logger) no Amazon ECS?

Última atualização: 22/07/2022

Ao executar uma tarefa no Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro: "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" (ErroInicializaçãoRecurso: falha ao validar argumentos do logger: criar fluxo foi repetido 1 vez: falha ao criar fluxo de logs do Cloudwatch: ExceçãoRecursoNãoLocalizado: O grupo de logs especificado não existe.: status de saída 1). Como resolvo esse erro?

Breve descrição

O Amazon ECS retorna um erro ResourceInitialization (InicializaçãoRecurso) quando a tarefa do Amazon ECS não consegue encontrar o grupo de logs do Amazon CloudWatch definido na definição de tarefas. Para resolver o erro, crie um novo grupo de logs para a tarefa.

Resolução

Para resolver o erro ResourceInitialization (InicializaçãoRecurso), escolha uma dessas soluções para criar um novo grupo de logs para a tarefa.

Criar um grupo de logs do CloudWatch no console

  1. Abra o console do CloudWatch.
  2. Na barra de navegação, escolha a região em que o cluster do Amazon ECS está localizado.
  3. No painel de navegação esquerdo, escolha Logs e selecione Log groups (Grupos de logs).
  4. Na janela Log groups (Grupos de logs), selecione Create log group. (Criar grupo de logs).

Crie um grupo de logs do CloudWatch usando a AWS CLI

Crie um grupo de logs do CloudWatch usando o comando create-log-group da AWS Command Line Interface (AWS CLI). O exemplo de comando a seguir cria um grupo de logs denominado mylogs:

Observação: se você receber erros ao executar os comandos da AWS CLI, utilize a versão mais recente da AWS CLI.

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

Use o recurso de configuração automática no Amazon ECS

A opção de configuração automática no console do Amazon ECS cria um grupo de logs em seu nome usando o nome da família de definição de tarefas com ecs como prefixo. O exemplo a seguir especifica uma Configuração de Log em sua Definição de tarefas.

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

Você também pode criar um grupo de logs personalizado especificando opções de configuração de log e adicionando a chave awslogs-create-group com um valor true para criar os grupos de logs em seu nome.

O exemplo a seguir especifica uma Configuração de Log na Definição de tarefas com opção definida.

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

Observação: a política gerenciada do AWS Identity and Access Management (IAM) AmazonECSTaskExecutionRolePolicy não inclui permissões logs:CreateLogGroup. Para usar a opção awslogs-create-group, adicione logs:CreateLogGroup como uma política do IAM em linha.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?