Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi: CloudWatch registri ed CloudTrail errori
Gli argomenti di questa pagina contengono le risoluzioni di Amazon CloudWatch Logs e AWS CloudTrail gli errori che puoi riscontrare in un ambiente Amazon Managed Workflows for Apache Airflow.
Indice
Log
L'argomento seguente descrive gli errori che potresti ricevere quando accedi ai log di Apache Airflow.
Non riesco a trovare i log delle mie attività o ho ricevuto un errore di lettura remota da Cloudwatch log_group
Amazon MWAA ha configurato Apache Airflow per leggere e scrivere i log direttamente da e verso Amazon Logs. CloudWatch Se un lavoratore non riesce ad avviare un'attività o non riesce a scrivere alcun registro, farai riferimento all'errore:
*** 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.
-
È consigliabile eseguire le operazioni seguenti:
-
Verifica di aver abilitato i log delle attività al
INFOlivello adatto al tuo ambiente. Per ulteriori informazioni, vedi Accesso ai log Airflow in Amazon CloudWatch. -
Verifica che il ruolo di esecuzione dell'ambiente disponga delle politiche di autorizzazione corrette.
-
Verifica che l'operatore o l'attività funzioni correttamente, disponga di risorse sufficienti per analizzare il DAG e disponga delle librerie Python appropriate da caricare. Per verificare se hai le dipendenze corrette, prova a eliminare le importazioni finché non trovi quella che causa il problema. Ti consigliamo di testare le tue dipendenze Python usando aws-mwaa-docker-images. https://github.com/aws/amazon-mwaa-docker-images
-
Le attività falliscono senza alcun registro
Se le attività non funzionano in un flusso di lavoro e non riesci a trovare alcun registro per le attività non riuscite, controlla se stai impostando il queue parametro negli argomenti predefiniti, come elencato di seguito.
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'] }}" )
Per risolvere il problema, rimuovi queue dal codice e richiama nuovamente il DAG.
Ricevo un errore in ResourceAlreadyExistsException CloudTrail
"errorCode": "ResourceAlreadyExistsException", "errorMessage": "The specified log stream already exists", "requestParameters": { "logGroupName": "airflow-MyAirflowEnvironment-DAGProcessing", "logStreamName": "scheduler_cross-account-eks.py.log" }
Alcuni requisiti di Python, ad esempio apache-airflow-backport-providers-amazon il ripristino della watchtower libreria con cui Amazon MWAA utilizza per comunicare a una versione CloudWatch precedente. È consigliabile eseguire le operazioni seguenti:
-
Aggiungi la seguente libreria alla tua
requirements.txtwatchtower==1.0.6
Ricevo un errore di richiesta non valida in CloudTrail
Invalid request provided: Provided role does not have sufficient permissions for s3 location airflow-xxx-xxx/dags
Se stai creando un ambiente Amazon MWAA e un bucket Amazon S3 utilizzando lo stesso CloudFormation modello, devi aggiungere una DependsOn sezione all'interno del modello. CloudFormation Le due risorse (MWAA Environment e MWAA Execution Policy) dipendono da. CloudFormationÈ consigliabile eseguire le operazioni seguenti:
-
Aggiungi la seguente dichiarazione al tuo modello
DependsOn. 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: ...Per un esempio, fai riferimento aTutorial di avvio rapido per Amazon Managed Workflows per Apache Airflow.
Ottengo Impossibile trovare una libreria Oracle Client a 64 bit: «libclntsh.so: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo nei log di Apache Airflow
-
È consigliabile eseguire le operazioni seguenti:
-
Se stai usando Apache Airflow v2, aggiungilo
core.lazy_load_plugins : Falsecome opzione di configurazione Apache Airflow. Per saperne di più, consulta Utilizzo delle opzioni di configurazione per caricare i plugin in 2.
-
Ricevo da psycopg2 «il server ha chiuso la connessione in modo imprevisto» nei log del mio scheduler
Se ricevi un errore simile al seguente, lo scheduler di Apache Airflow potrebbe aver esaurito le risorse.
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.
È consigliabile eseguire le operazioni seguenti:
-
Prendi in considerazione l'aggiornamento ad Apache Airflow v2.0.2, che puoi utilizzare per specificare fino a 5 scheduler.
L'istanza del task %s è stata completata da Executor reports (%s), anche se nei log di elaborazione del mio DAG risulta %s
Se ricevi un errore simile al seguente, le tue attività di lunga durata potrebbero aver raggiunto il limite di tempo per le attività su Amazon MWAA. Amazon MWAA ha un limite di 12 ore per ogni attività Airflow, per evitare che le attività rimangano bloccate in coda e blocchino attività come la scalabilità automatica.
Executor reports task instance %s finished (%s) although the task says its %s. (Info: %s) Was the task killed externally
È consigliabile eseguire le operazioni seguenti:
-
Valuta la possibilità di suddividere l'attività in più attività di breve durata. Airflow ha in genere un modello in base al quale gli operatori sono asincroni. Richiama attività su sistemi esterni e Apache Airflow Sensors esegue un sondaggio per verificare quando è completo. Se un sensore si guasta, può essere riprovato in sicurezza senza influire sulla funzionalità dell'operatore.
I log dei trigger non vengono visualizzati nel Flusso d'aria Interfaccia utente
Se i log dei trigger non vengono visualizzati nell'interfaccia utente di Apache Airflow, è possibile che al ruolo di esecuzione manchi l'autorizzazione. logs:DescribeLogStreams Senza questa autorizzazione, Amazon MWAA non è in grado di rilevare i flussi di log dei trigger. Nei log non viene visualizzato alcun errore, il che può rendere difficile l'identificazione del problema.
Aggiungi logs:DescribeLogStreams al tuo ruolo di esecuzione. Ambita l'autorizzazione all'ARN del gruppo di log del tuo ambiente. Per ulteriori informazioni, consulta Ruolo di esecuzione di Amazon MWAA.
Nota
Questo problema riguarda l'ambiente in uso se si utilizza Apache Airflow versione 3.x con operatori differibili. Se hai creato il tuo ruolo di esecuzione nella console prima che il ruolo predefinito includesse questa autorizzazione, aggiungila manualmente.
Non riesco a leggere i log remoti da log_group: airflow-* {*EnvironmentName} -Task log_stream: * {*DAG_ID} /* {*TASK_ID} /* {*time} /* {*n} .log.nei miei registri delle attività
Se viene visualizzato un errore simile al seguente, il ruolo di esecuzione dell'ambiente potrebbe non contenere una politica di autorizzazioni per la creazione di flussi di log per i log delle attività.
Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log.
È consigliabile eseguire le operazioni seguenti:
-
Modifica il ruolo di esecuzione per il tuo ambiente utilizzando una delle politiche di esempio in. Ruolo di esecuzione di Amazon MWAA
Potresti anche aver specificato un pacchetto provider nel tuo requirements.txt file che è incompatibile con la tua versione di Apache Airflow. Ad esempio, se utilizzi Apache Airflow v2.0.2, potresti aver specificato un pacchetto, come il pacchetto apache-airflow-providers-databricks, compatibile solo con
È consigliabile eseguire le operazioni seguenti:
-
Se utilizzi Apache Airflow v2.0.2
requirements.txt, modifica il file e aggiungilo.apache-airflow[databricks]Questo installa la versione corretta del pacchetto Databricks compatibile con Apache Airflow v2.0.2. -
Testa i tuoi DAG, i plugin personalizzati e le dipendenze Python localmente usando aws-mwaa-docker-images on. https://github.com/aws/amazon-mwaa-docker-images
GitHub