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 log 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 miei registri delle attività o ho ricevuto un errore Reading remote log from Cloudwatch log_group
Amazon MWAA ha configurato Apache Airflow per leggere e scrivere 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:
-
Verificate di aver abilitato i registri delle attività a
INFOlivello del vostro 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 in Python utilizzando. aws-mwaa-docker-images
-
Le attività non riescono senza alcun registro
Se le attività non riescono in un flusso di lavoro e non riesci a individuare alcun registro delle 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, come il apache-airflow-backport-providers-amazon ripristino della watchtower libreria utilizzata da Amazon MWAA per comunicare a una versione precedente CloudWatch . È consigliabile eseguire le operazioni seguenti:
-
Aggiungi la seguente libreria alla tua
requirements.txtwatchtower==1.0.6
Ricevo un Invalid request errore 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 AWS CloudFormation stesso modello, devi aggiungere DependsOn una sezione all'interno del modello. AWS CloudFormation Le due risorse (MWAA Environment e MWAA Execution Policy) dipendono da. AWS CloudFormationÈ consigliabile eseguire le operazioni seguenti:
-
Aggiungi la seguente dichiarazione al tuo modello
DependsOn. AWS 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, fare riferimento aTutorial di avvio rapido per Amazon Managed Workflows for Apache Airflow.
Entro Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory nei log di Apache Airflow
-
È consigliabile eseguire le operazioni seguenti:
-
Se utilizzi Apache Airflow v2,
core.lazy_load_plugins : Falseaggiungilo come opzione di configurazione Apache Airflow. Per ulteriori informazioni, consulta Usare le opzioni di configurazione per caricare i plugin in 2.
-
Nei log del mio scheduler ricevo psycopg2 «il server ha chiuso la connessione in modo imprevisto»
Se viene visualizzato un errore simile al seguente, è possibile che lo scheduler Apache Airflow abbia 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 usare per specificare fino a 5 scheduler.
Accedo ai registri di elaborazione del mio DAG Executor reports task instance %s finished (%s) although the task says its %s
Se ricevi un errore simile al seguente, è possibile che le attività a esecuzione prolungata abbiano raggiunto il limite di tempo delle 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:
-
Prendi in considerazione la possibilità di suddividere l'attività in più attività con esecuzione più breve. Airflow ha in genere un modello in base al quale gli operatori sono asincroni. Richiama attività su sistemi esterni e esegue un sondaggio dei sensori Apache Airflow per verificare quando è completo. Se un sensore si guasta, può essere riprovato in sicurezza senza influire sulla funzionalità dell'operatore.
Comprendo i miei Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log. registri delle attività
Se viene visualizzato un errore simile al seguente, è possibile che il ruolo di esecuzione per l'ambiente in uso non contenga una politica di autorizzazioni per la creazione di flussi di registro per i registri 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 disponibili in. Ruolo di esecuzione di Amazon MWAA
È inoltre possibile che nel requirements.txt file sia stato specificato un pacchetto provider incompatibile con la versione di Apache Airflow in uso. Ad esempio, se utilizzi Apache Airflow v2.0.2, potresti aver specificato un pacchetto, come apache-airflow-providers-databricks
È consigliabile eseguire le operazioni seguenti:
-
Se utilizzi Apache Airflow v2.0.2, modifica il file e aggiungi.
requirements.txtapache-airflow[databricks]Questo installa la versione corretta del pacchetto Databricks compatibile con Apache Airflow v2.0.2. -
Testa i tuoi DAGs plugin personalizzati e le dipendenze Python localmente usando on. aws-mwaa-docker-images
GitHub