Protokollierung für AWS Glue Jobs - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Protokollierung für AWS Glue Jobs

In AWS Glue 5.0 verfügen alle Jobs über Funktionen zur Echtzeitprotokollierung. Darüber hinaus können Sie benutzerdefinierte Konfigurationsoptionen angeben, um das Protokollierungsverhalten anzupassen. Zu diesen Optionen gehören das Festlegen des Amazon CloudWatch Protokollgruppennamens, des Amazon CloudWatch Protokollstream-Präfixes (das der ID und driver/executor ID der AWS Glue Auftragsausführung vorangestellt wird) und des Protokollkonvertierungsmusters für Protokollnachrichten. Mit diesen Konfigurationen können Sie Protokolle in benutzerdefinierten Amazon CloudWatch Protokollgruppen mit unterschiedlichen Ablaufrichtlinien zusammenfassen. Darüber hinaus können Sie die Protokolle effektiver analysieren, indem Sie benutzerdefinierte Protokollstream-Präfixe und Konvertierungsmuster verwenden. Dieser Grad der Anpassung ermöglicht es Ihnen, die Protokollverwaltung und -analyse gemäß Ihren spezifischen Anforderungen zu optimieren.

Protokollierungsverhalten in AWS Glue 5.0

Standardmäßig werden Systemprotokolle, Spark-Daemon-Protokolle und AWS Glue Benutzer-Logger-Protokolle in Amazon CloudWatch die /aws-glue/jobs/error Protokollgruppe geschrieben. Andererseits werden die Benutzerprotokolle stdout (Standardausgabe) und stderr (Standardfehler) standardmäßig in die /aws-glue/jobs/output Protokollgruppe geschrieben.

Benutzerdefiniertes Logging

Sie können die Standardpräfixe für Protokollgruppen und Protokolldatenströme mithilfe der folgenden Job-Argumente anpassen:

  • --custom-logGroup-prefix: Ermöglicht es Ihnen, ein benutzerdefiniertes Präfix für die Gruppen /aws-glue/jobs/error und /aws-glue/jobs/output Logs anzugeben. Wenn Sie ein benutzerdefiniertes Präfix angeben, haben die Namen der Protokollgruppen das folgende Format:

    • /aws-glue/jobs/error wird <customer prefix>/error sein.

    • /aws-glue/jobs/output wird <customer prefix>/output sein.

  • --custom-logStream-prefix: Ermöglicht es Ihnen, ein benutzerdefiniertes Präfix für die Log-Stream-Namen innerhalb der Log-Gruppen anzugeben. Wenn Sie ein benutzerdefiniertes Präfix angeben, haben die Log-Stream-Namen das folgende Format:

    • jobrunid-driver wird <customer log stream>-driver sein.

    • jobrunid-executorNum wird <customer log stream>-executorNum sein.

Validierungsregeln und Einschränkungen für benutzerdefinierte Präfixe:

  • Der gesamte Protokollstreamname muss zwischen 1 und 512 Zeichen lang sein.

  • Das benutzerdefinierte Präfix selbst ist auf 400 Zeichen beschränkt.

  • Das benutzerdefinierte Präfix muss dem regulären Ausdrucksmuster `[^: *] *` entsprechen (zulässige Sonderzeichen sind '_', '-' und '/').

Protokollieren von anwendungsspezifischen Meldungen mit dem benutzerdefinierten Skript-Logger

Sie können den AWS Glue Logger verwenden, um alle anwendungsspezifischen Meldungen im Skript zu protokollieren, die in Echtzeit an den Treiberprotokollstream gesendet werden.

Das folgende Beispiel zeigt ein Python-Skript.

from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")

Das folgende Beispiel zeigt ein Scala-Skript.

import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }

Aktivieren des Fortschrittsbalkens zum Anzeigen des Auftragsfortschritts

AWS Glue stellt unter dem JOB_RUN_ID-progress-bar Protokollstream eine Fortschrittsleiste in Echtzeit bereit, mit der der Status der AWS Glue Auftragsausführung überprüft werden kann. Derzeit unterstützt er nur Aufträge, die glueContext initialisieren. Wenn Sie einen reinen Spark-Job ohne Initialisierung ausführenglueContext, wird der AWS Glue Fortschrittsbalken nicht angezeigt.

Der Fortschrittsbalken wird alle 5 Sekunden aktualisiert.

Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]

Sicherheitskonfiguration mit Protokollierung Amazon CloudWatch

Wenn eine Sicherheitskonfiguration für Amazon CloudWatch Protokolle aktiviert ist, werden Protokollgruppen mit bestimmten Benennungsmustern AWS Glue erstellt, die den Namen der Sicherheitskonfiguration enthalten.

Benennung von Protokollgruppen mit Sicherheitskonfiguration

Die Standard- und benutzerdefinierten Protokollgruppen lauten wie folgt:

  • Standard-Fehlerprotokollgruppe: /aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/error

  • Standardgruppe für das Ausgabelogbuch: /aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/output

  • Benutzerdefinierte Fehlerprotokollgruppe (AWS Glue 5.0): custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/error

  • Benutzerdefinierte Ausgabeloggruppe (AWS Glue 5.0): custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/output

Erforderliche IAM-Berechtigungen

Sie müssen die logs:AssociateKmsKey Berechtigung zu Ihren IAM-Rollenberechtigungen hinzufügen, wenn Sie eine Sicherheitskonfiguration mit Amazon CloudWatch Logs aktivieren. Wenn diese Berechtigung nicht enthalten ist, wird die fortlaufende Protokollierung deaktiviert.

Um die Verschlüsselung für die Amazon CloudWatch Logs zu konfigurieren, folgen Sie außerdem den Anweisungen unter Log Data in Amazon CloudWatch Logs Using verschlüsseln AWS Key Management Service im Amazon Amazon CloudWatch Logs-Benutzerhandbuch.

Zusätzliche Informationen

Weitere Informationen zum Erstellen von Sicherheitskonfigurationen finden Sie unter Sicherheitskonfigurationen auf der AWS Glue Konsole verwalten.