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.
Problembehandlung: CloudWatch Protokolle und CloudTrail Fehler
Die Themen auf dieser Seite enthalten Lösungen für Amazon CloudWatch Logs und AWS CloudTrail Fehler, die in einer Amazon Managed Workflows for Apache Airflow-Umgebung auftreten können.
Inhalt
Protokolle
Im folgenden Thema werden die Fehler beschrieben, die beim Zugriff auf Apache Airflow-Protokolle auftreten können.
Ich kann meine Aufgabenprotokolle nicht finden, oder ich habe einen Fehler beim Lesen des Remote-Logs von Cloudwatch log_group erhalten
Amazon MWAA hat Apache Airflow so konfiguriert, dass Protokolle direkt von und zu Amazon Logs gelesen und geschrieben werden. CloudWatch Wenn ein Worker eine Aufgabe nicht startet oder keine Protokolle schreibt, werden Sie auf den Fehler verweisen:
*** Reading remote log from Cloudwatch log_group: airflow-environmentName-Task log_stream:DAG_ID/TASK_ID/timestamp/n.log.Could not read remote logs from log_group: airflow-environmentName-Task log_stream:DAG_ID/TASK_ID/time/n.log.
-
Wir empfehlen die folgenden Schritte:
-
Stellen Sie sicher, dass Sie die Aufgabenprotokolle auf der für Ihre Umgebung geeigneten
INFOEbene aktiviert haben. Weitere Informationen finden Sie unter Zugreifen auf Airflow-Protokolle in Amazon CloudWatch. -
Stellen Sie sicher, dass die Rolle „Umgebungsausführung“ über die richtigen Berechtigungsrichtlinien verfügt.
-
Stellen Sie sicher, dass Ihr Operator oder Ihre Aufgabe ordnungsgemäß funktioniert, über ausreichende Ressourcen zum Analysieren der DAG verfügt und über die entsprechenden Python-Bibliotheken zum Laden verfügt. Um zu überprüfen, ob Sie die richtigen Abhängigkeiten haben, versuchen Sie, Importe zu entfernen, bis Sie die gefunden haben, die das Problem verursacht. Wir empfehlen, Ihre Python-Abhängigkeiten mit https://github.com/aws/amazon-mwaa-docker-images
aws-mwaa-docker-images zu testen.
-
Aufgaben schlagen ohne Protokolle fehl
Wenn Aufgaben in einem Workflow fehlschlagen und Sie keine Protokolle für die fehlgeschlagenen Aufgaben finden, überprüfen Sie, ob Sie den queue Parameter in Ihren Standardargumenten festlegen, wie im Folgenden aufgeführt.
from airflow import DAG from airflow.operators.bash_operator import BashOperator from airflow.utils.dates import days_ago # Setting queue argument to default. default_args = { "start_date": days_ago(1), "queue": "default" } with DAG(dag_id="any_command_dag", schedule_interval=None, catchup=False, default_args=default_args) as dag: cli_command = BashOperator( task_id="bash_command", bash_command="{{ dag_run.conf['command'] }}" )
Um das Problem zu beheben, entfernen Sie die DAG queue aus Ihrem Code und rufen Sie die DAG erneut auf.
Ich erhalte eine Fehlermeldung in ResourceAlreadyExistsException CloudTrail
"errorCode": "ResourceAlreadyExistsException", "errorMessage": "The specified log stream already exists", "requestParameters": { "logGroupName": "airflow-MyAirflowEnvironment-DAGProcessing", "logStreamName": "scheduler_cross-account-eks.py.log" }
Bestimmte Python-Anforderungen wie das apache-airflow-backport-providers-amazon Rollback der watchtower Bibliothek, mit der Amazon MWAA kommuniziert, CloudWatch auf eine ältere Version. Wir empfehlen die folgenden Schritte:
-
Fügen Sie die folgende Bibliothek zu Ihrer hinzu
requirements.txtwatchtower==1.0.6
Ich erhalte den Fehler „Ungültige Anfrage“ in CloudTrail
Invalid request provided: Provided role does not have sufficient permissions for s3 location airflow-xxx-xxx/dags
Wenn Sie eine Amazon MWAA-Umgebung und einen Amazon S3-Bucket mit derselben CloudFormation Vorlage erstellen, müssen Sie Ihrer CloudFormation Vorlage einen DependsOn Abschnitt hinzufügen. Die beiden Ressourcen (MWAA Environment und MWAA Execution Policy) haben eine Abhängigkeit von. CloudFormation Wir empfehlen die folgenden Schritte:
-
Fügen Sie Ihrer Vorlage die folgende
DependsOnAnweisung hinzu. CloudFormation... MaxWorkers: 5 NetworkConfiguration: SecurityGroupIds: - !GetAtt SecurityGroup.GroupId SubnetIds: !Ref subnetIds WebserverAccessMode: PUBLIC_ONLYDependsOn: MwaaExecutionPolicyMwaaExecutionPolicy: Type: AWS::IAM::ManagedPolicy Properties: Roles: - !Ref MwaaExecutionRole PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: airflow:PublishMetrics Resource: ...Ein Beispiel finden Sie unterSchnellstart-Tutorial für Amazon Managed Workflows für Apache Airflow.
Ich erhalte die Meldung Eine 64-Bit-Oracle-Client-Bibliothek kann nicht gefunden werden: „libclntsh.so: Die gemeinsame Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis in den Apache Airflow-Protokollen
-
Wir empfehlen die folgenden Schritte:
-
Wenn Sie Apache Airflow v2 verwenden, fügen Sie es
core.lazy_load_plugins : Falseals Apache Airflow-Konfigurationsoption hinzu. Weitere Informationen finden Sie unter Verwenden von Konfigurationsoptionen zum Laden von Plugins in 2.
-
Ich erhalte in meinen Scheduler-Protokollen die Meldung psycopg2 „Der Server hat die Verbindung unerwartet geschlossen“
Wenn Sie eine Fehlermeldung ähnlich der folgenden erhalten, sind Ihrem Apache Airflow-Scheduler möglicherweise die Ressourcen ausgegangen.
2021-06-14T10:20:24.581-05:00 sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly 2021-06-14T10:20:24.633-05:00 This probably means the server terminated abnormally 2021-06-14T10:20:24.686-05:00 before or while processing the request.
Wir empfehlen die folgenden Schritte:
-
Erwägen Sie ein Upgrade auf Apache Airflow v2.0.2, mit dem Sie bis zu 5 Scheduler angeben können.
Executor meldet, dass die Aufgabeninstanz %s abgeschlossen ist (%s), obwohl die Aufgabe in meinen DAG-Verarbeitungsprotokollen als %s bezeichnet wird
Wenn Sie eine Fehlermeldung ähnlich der folgenden erhalten, haben Ihre Aufgaben mit langer Laufzeit möglicherweise das Zeitlimit für Aufgaben in Amazon MWAA erreicht. Amazon MWAA hat ein Limit von 12 Stunden für jede Airflow-Aufgabe, um zu verhindern, dass Aufgaben in der Warteschlange hängen bleiben und Aktivitäten wie Autoscaling blockieren.
Executor reports task instance %s finished (%s) although the task says its %s. (Info: %s) Was the task killed externally
Wir empfehlen die folgenden Schritte:
-
Erwägen Sie, die Aufgabe in mehrere, kürzer laufende Aufgaben aufzuteilen. Airflow hat in der Regel ein Modell, bei dem die Bediener asynchron arbeiten. Es ruft Aktivitäten auf externen Systemen auf, und die Apache Airflow-Sensoren fragen ab, um zu überprüfen, wann der Vorgang abgeschlossen ist. Wenn ein Sensor ausfällt, kann er problemlos erneut versucht werden, ohne dass die Funktionalität des Operators beeinträchtigt wird.
Triggerer-Protokolle erscheinen nicht in der Luftstrom Benutzeroberfläche
Wenn Triggerer-Logs nicht in der Apache Airflow-Benutzeroberfläche erscheinen, fehlt Ihrer Ausführungsrolle möglicherweise die Berechtigung. logs:DescribeLogStreams Ohne diese Erlaubnis kann Amazon MWAA keine Triggerer-Log-Streams erkennen. In den Protokollen wird kein Fehler angezeigt, was die Identifizierung dieses Problems erschweren kann.
Fügen logs:DescribeLogStreams Sie Ihrer Ausführungsrolle hinzu. Weisen Sie die Erlaubnis auf den ARN der Protokollgruppe Ihrer Umgebung zu. Weitere Informationen finden Sie unter Amazon MWAA-Ausführungsrolle.
Anmerkung
Dieses Problem wirkt sich auf Ihre Umgebung aus, wenn Sie Apache Airflow Version 3.x mit aufschiebbaren Operatoren verwenden. Wenn Sie Ihre Ausführungsrolle in der Konsole erstellt haben, bevor die Standardrolle diese Berechtigung enthielt, fügen Sie sie manuell hinzu.
Ich erhalte Could not read remote logs von log_group: airflow-* {*environmentName} -Task log_stream: * {*DAG_ID} /* {*TASK_ID} /* {*time} /* {*n} .log.in meinen Aufgabenprotokollen
Wenn Sie eine Fehlermeldung ähnlich der folgenden erhalten, enthält die Ausführungsrolle für Ihre Umgebung möglicherweise keine Berechtigungsrichtlinie zum Erstellen von Protokollstreams für Aufgabenprotokolle.
Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log.
Wir empfehlen die folgenden Schritte:
-
Ändern Sie die Ausführungsrolle für Ihre Umgebung mithilfe einer der Beispielrichtlinien unterAmazon MWAA-Ausführungsrolle.
Möglicherweise haben Sie in Ihrer requirements.txt Datei auch ein Anbieterpaket angegeben, das mit Ihrer Apache Airflow-Version nicht kompatibel ist. Wenn Sie beispielsweise Apache Airflow v2.0.2 verwenden, haben Sie möglicherweise ein Paket angegeben, z. B. das Paket apache-airflow-providers-databricks, das nur mit
Wir empfehlen die folgenden Schritte:
-
Wenn Sie Apache Airflow v2.0.2
requirements.txtverwenden, ändern Sie die Datei und fügen Sie sie hinzu.apache-airflow[databricks]Dadurch wird die richtige Version des Databricks-Pakets installiert, das mit Apache Airflow v2.0.2 kompatibel ist. -
Testen Sie Ihre DAGs, benutzerdefinierten Plugins und Python-Abhängigkeiten lokal mit aws-mwaa-docker-images on. https://github.com/aws/amazon-mwaa-docker-images
GitHub