Wie behebe ich den Fehler „ResourceInitializationError: Logger-Args konnten nicht validiert werden“ in Amazon ECS?

Letzte Aktualisierung: 22.07.2022

Beim Ausführen einer Aufgabe in Amazon Elastic Container Service (Amazon ECS) erhalte ich die folgende Fehlermeldung: „ResourceInitializationError: Fehler beim Überprüfen der Logger-Argumente: Stream erstellen wurde 1 Mal wiederholt: Cloudwatch-Protokollstream konnte nicht erstellt werden: ResourceNotFoundException: Die angegebene Protokollgruppe ist nicht vorhanden.: Beenden Sie Status 1“. Wie kann ich den Fehler beheben?

Kurzbeschreibung

Amazon ECS gibt einen ResourceInitialisierungsfehler zurück, wenn die Amazon-ECS-Aufgabe die in der Aufgabendefinition definierte Amazon-CloudWatch-Protokollgruppe nicht finden kann. Um den Fehler zu beheben, erstellen Sie eine neue Protokollgruppe für die Aufgabe.

Auflösung

Um den Fehler ResourceInitialization zu beheben, wählen Sie eine dieser Lösungen aus, um eine neue Protokollgruppe für die Aufgabe zu erstellen.

Erstellen einer CloudWatch-Protokollgruppe in der Konsole

  1. Öffnen Sie die CloudWatch-Konsole.
  2. Wählen Sie in der Navigationsleiste die Region aus, in der sich der Amazon-ECS-Cluster befindet.
  3. Wählen Sie im linken Navigationsbereich Protokolle und dann Protokollgruppen aus.
  4. Wählen Sie im Fenster Protokollgruppen die Option Protokollgruppe erstellen aus.

Erstellen einer CloudWatch-Protokollgruppe mit AWS CLI

Erstellen Sie eine CloudWatch-Protokollgruppe mit dem Befehl create-log-group AWS Command Line Interface (AWS CLI). Mit dem folgenden Beispielbefehl wird eine Protokollgruppe namens mylogs erstellt:

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

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

Verwenden Sie die automatische Konfigurationsfunktion in Amazon ECS

Die Option zur automatischen Konfiguration in der Amazon-ECS-Konsole erstellt in Ihrem Namen eine Protokollgruppe, wobei der Name der Aufgabendefinitionsfamilie mit ecs als Präfix verwendet wird. Das folgende Beispiel gibt eine Protokollkonfiguration in Ihrer Aufgabendefinition an.

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

Sie können auch eine benutzerdefinierte Protokollgruppe erstellen, indem Sie Optionen für die Protokollkonfiguration angeben und den Schlüssel awslogs-create-group mit dem Wert true hinzufügen, um die Protokollgruppen in Ihrem Namen zu erstellen.

Das folgende Beispiel gibt eine Protokollkonfiguration in Ihrer Aufgabendefinition mit eingestellter Option an.

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

Hinweis: Richtlinie für verwaltetes AWS Identity and Access Management (IAM) AmazonECSTaskExecutionRolePolicy enthält keine logs:CreateLogGroup-Berechtigungen. Um die Option awslogs-create-group zu verwenden, fügen Sie logs:CreateLogGroup als Inline-IAM-Richtlinie hinzu.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?