

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas: CloudWatch registros e CloudTrail erros
<a name="t-cloudwatch-cloudtrail-logs"></a>

Os tópicos desta página contêm soluções para o Amazon CloudWatch Logs e AWS CloudTrail erros que você pode encontrar em um ambiente Amazon Managed Workflows para Apache Airflow.

**Contents**
+ [Logs](#troubleshooting-view-logs)
  + [Não consigo encontrar meus registros de tarefas ou recebi um erro de `leitura remota do log log_group do Cloudwatch`](#t-task-logs)
  + [As tarefas estão falhando sem nenhum log](#t-task-failing-no-logs)
  + [Eu recebo um `ResourceAlreadyExistsException` erro em CloudTrail](#t-cloudtrail)
  + [Recebo um `erro de solicitação` inválida em CloudTrail](#t-cloudtrail-bucket)
  + [Recebo `Não é possível localizar uma biblioteca de cliente Oracle de 64 bits: “libclntsh.so: não é possível abrir o arquivo de objeto compartilhado: esse arquivo ou diretório não existe nos registros do Apache Airflow`](#t-plugins-logs)
  + [Recebo psycopg2 “o servidor fechou a conexão inesperadamente” nos meus logs do agendador](#scheduler-postgres-library)
  + [O `Executor relata que a instância da tarefa %s foi concluída (%s), embora a tarefa diga que é %s` nos meus registros de processamento do DAG](#long-running-tasks)
  + [Os registros do acionador não aparecem no Fluxo de ar Interface do usuário](#t-triggerer-logs-missing)
  + [Recebo Não `foi possível ler os registros remotos do log_group: airflow-* {*environmentName} -Task log_stream: * {*DAG_ID} /* {*TASK_ID} /* {*time} /* {*n} .log.`nos meus registros de tarefas](#t-task-fail-permission)

## Logs
<a name="troubleshooting-view-logs"></a>

O tópico a seguir descreve os erros que você pode receber ao acessar os logs do Apache Airflow.

### Não consigo encontrar meus registros de tarefas ou recebi um erro de `leitura remota do log log_group do Cloudwatch`
<a name="t-task-logs"></a>

O Amazon MWAA configurou o Apache Airflow para ler e gravar registros diretamente de e para o Amazon Logs. CloudWatch Se um operador falhar ao iniciar uma tarefa ou não conseguir gravar nenhum log, você terá o erro:

```
*** 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.
```
+ Recomendamos as seguintes etapas:

  1. Verifique se você ativou os logs de tarefas no nível `INFO` do seu ambiente. Para obter mais informações, consulte [Acessando os registros do Airflow na Amazon CloudWatch](monitoring-airflow.md).

  1. Verifique se o [perfil de execução](mwaa-create-role.md) do ambiente tem as políticas de permissão corretas.

  1. Verifique se seu operador ou tarefa está funcionando corretamente, tem recursos suficientes para analisar o DAG e tem as bibliotecas Python apropriadas para carregar. Para verificar se você tem as dependências corretas, tente eliminar as importações até encontrar a que está causando o problema. Recomendamos testar suas dependências do Python usando [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images).

### As tarefas estão falhando sem nenhum log
<a name="t-task-failing-no-logs"></a>

Se as tarefas estiverem falhando em um fluxo de trabalho e você não conseguir localizar nenhum log das tarefas com falha, verifique se você está definindo o parâmetro `queue` em seus argumentos padrão, conforme mostrado a seguir.

```
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'] }}"
    )
```

Para resolver o problema, remova `queue` do seu código e invoque o DAG novamente.

### Eu recebo um `ResourceAlreadyExistsException` erro em CloudTrail
<a name="t-cloudtrail"></a>

```
"errorCode": "ResourceAlreadyExistsException",
    "errorMessage": "The specified log stream already exists",
    "requestParameters": {
        "logGroupName": "airflow-MyAirflowEnvironment-DAGProcessing",
        "logStreamName": "scheduler_cross-account-eks.py.log"
    }
```

Alguns requisitos do Python, como `apache-airflow-backport-providers-amazon` reverter a `watchtower` biblioteca que o Amazon MWAA usa para se comunicar com uma versão mais CloudWatch antiga. Recomendamos as seguintes etapas:
+ Adicione a seguinte biblioteca ao seu `requirements.txt`.

  ```
  watchtower==1.0.6
  ```

### Recebo um `erro de solicitação` inválida em CloudTrail
<a name="t-cloudtrail-bucket"></a>

```
Invalid request provided: Provided role does not have sufficient permissions for s3 location airflow-xxx-xxx/dags
```

Se você estiver criando um ambiente Amazon MWAA e um bucket do Amazon S3 usando o mesmo CloudFormation modelo, precisará adicionar uma `DependsOn` seção dentro do seu modelo. CloudFormation Os dois recursos (*MWAA Environment* e *MWAA Execution Policy)* têm uma dependência em CloudFormation. Recomendamos as seguintes etapas:
+ Adicione a seguinte **DependsOn** declaração ao seu CloudFormation modelo.

  ```
  ...
    MaxWorkers: 5
    NetworkConfiguration:
      SecurityGroupIds:
        - !GetAtt SecurityGroup.GroupId
      SubnetIds: !Ref subnetIds
    WebserverAccessMode: PUBLIC_ONLY
  DependsOn: MwaaExecutionPolicy
  
   MwaaExecutionPolicy:
   Type: AWS::IAM::ManagedPolicy
   Properties:
     Roles:
      - !Ref MwaaExecutionRole
    PolicyDocument:
      Version: 2012-10-17		 	 	 
      Statement:
        - Effect: Allow
          Action: airflow:PublishMetrics
          Resource:
  ...
  ```

  Para obter um exemplo, consulte [Tutoriais de início rápido para Amazon Managed Workflows for Apache Airflow](quick-start.md).

### Recebo `Não é possível localizar uma biblioteca de cliente Oracle de 64 bits: “libclntsh.so: não é possível abrir o arquivo de objeto compartilhado: esse arquivo ou diretório não existe nos registros do Apache Airflow`
<a name="t-plugins-logs"></a>
+ Recomendamos as seguintes etapas:

  1. Se você estiver usando o Apache Airflow v2, adicione `core.lazy_load_plugins : False` como uma opção de configuração do Apache Airflow. Para saber mais, consulte [Usar opções de configuração para carregar plug-ins em 2](configuring-env-variables.md#configuring-2.0-airflow-override).

### Recebo psycopg2 “o servidor fechou a conexão inesperadamente” nos meus logs do agendador
<a name="scheduler-postgres-library"></a>

Se você receber um erro semelhante a esse, seu agendador do Apache Airflow pode ter ficado sem recursos.

```
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.
```

Recomendamos as seguintes etapas:
+ Considere a atualização para o Apache Airflow v2.0.2, que você pode usar para especificar até 5 agendadores.

### O `Executor relata que a instância da tarefa %s foi concluída (%s), embora a tarefa diga que é %s` nos meus registros de processamento do DAG
<a name="long-running-tasks"></a>

Se você receber um erro semelhante ao seguinte, suas tarefas de longa execução podem ter atingido o limite de tempo da tarefa no Amazon MWAA. O Amazon MWAA tem um limite de 12 horas para qualquer tarefa do Airflow, para evitar que as tarefas fiquem presas na fila e bloqueiem atividades como escalonamento automático.

```
Executor reports task instance %s finished (%s) although the task says its %s. (Info: %s) Was the task killed externally
```

Recomendamos as seguintes etapas:
+ Considere dividir a tarefa em várias tarefas de execução mais curtas. O Airflow normalmente tem um modelo em que os operadores são assíncronos. Ele invoca atividades em sistemas externos e os sensores do Apache Airflow pesquisam para verificar quando estão concluídas. Se um sensor falhar, ele poderá ser repetido com segurança sem afetar a funcionalidade do operador.

### Os registros do acionador não aparecem no Fluxo de ar Interface do usuário
<a name="t-triggerer-logs-missing"></a>

Se os registros do acionador não aparecerem na interface do usuário do Apache Airflow, sua função de execução pode não ter a permissão. `logs:DescribeLogStreams` Sem essa permissão, o Amazon MWAA não pode descobrir fluxos de log acionadores. Nenhum erro aparece nos registros, o que pode dificultar a identificação desse problema.

Adicione `logs:DescribeLogStreams` à sua função de execução. Defina o escopo da permissão para o ARN do grupo de registros do seu ambiente. Para obter mais informações, consulte [Perfil de execução do Amazon MWAA](mwaa-create-role.md).

**nota**  
Esse problema afeta seu ambiente se você usar o Apache Airflow versão 3.x com operadores adiáveis. Se você criou sua função de execução no console antes que a função padrão incluísse essa permissão, adicione-a manualmente.

### Recebo Não `foi possível ler os registros remotos do log_group: airflow-* {*environmentName} -Task log_stream: * {*DAG_ID} /* {*TASK_ID} /* {*time} /* {*n} .log.`nos meus registros de tarefas
<a name="t-task-fail-permission"></a>

Se você tiver um erro semelhante ao que se segue, o perfil de execução do seu ambiente pode não conter uma política de permissões para criar fluxos de log para logs de tarefas.

```
Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log.
```

Recomendamos as seguintes etapas:
+ Modifique o perfil de execução do seu ambiente usando um dos exemplos de políticas em [Perfil de execução do Amazon MWAA](mwaa-create-role.md).

Você também pode ter especificado um pacote de provedor em seu arquivo `requirements.txt` que é incompatível com sua versão do Apache Airflow. Por exemplo, se você estiver usando o Apache Airflow v2.0.2, você pode ter especificado um pacote, como o pacote [apache-airflow-providers-databricks](https://airflow.apache.org/docs/apache-airflow-providers-databricks/stable/index.html), que só é compatível com o Airflow 2.1\+.

Recomendamos as seguintes etapas:

1. Se você estiver usando o Apache Airflow v2.0.2, modifique o `requirements.txt` arquivo e adicione `apache-airflow[databricks]`. Isso instala a versão correta do pacote Databricks que é compatível com o Apache Airflow v2.0.2.

1. Teste seus DAGs, plug-ins personalizados e dependências do Python localmente usando [ aws-mwaa-docker-images on. ](https://github.com/aws/amazon-mwaa-docker-images) GitHub