

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: erros do CloudWatch Logs e do CloudTrail
<a name="t-cloudwatch-cloudtrail-logs"></a>

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

**Contents**
+ [Logs](#troubleshooting-view-logs)
  + [Não consigo encontrar meus logs de tarefas ou recebi o erro `Reading remote log from Cloudwatch log_group`](#t-task-logs)
  + [As tarefas estão falhando sem nenhum log](#t-task-failing-no-logs)
  + [Eu recebo um erro `ResourceAlreadyExistsException` no CloudTrail](#t-cloudtrail)
  + [Eu recebo um erro `Invalid request` no CloudTrail](#t-cloudtrail-bucket)
  + [Eu recebo `Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory` 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)
  + [Recebo `Executor reports task instance %s finished (%s) although the task says its %s` nos meus logs de processamento do DAG](#long-running-tasks)
  + [Recebo `Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log.` nos meus logs 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 logs de tarefas ou recebi o erro `Reading remote log from Cloudwatch log_group`
<a name="t-task-logs"></a>

O Amazon MWAA configurou o Apache Airflow para ler e gravar logs diretamente de e para o Amazon CloudWatch Logs. 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 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 erro `ResourceAlreadyExistsException` no 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"
    }
```

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

  ```
  watchtower==1.0.6
  ```

### Eu recebo um erro `Invalid request` no 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 Amazon S3 usando o mesmo modelo CloudFormation, você precisa adicionar uma seção `DependsOn` 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 declaração **DependsOn** ao seu modelo CloudFormation.

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

### Eu recebo `Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory` 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.

### Recebo `Executor reports task instance %s finished (%s) although the task says its %s` nos meus logs 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.

### Recebo `Could not read remote logs from log_group: airflow-*{*environmentName}-Task log_stream:* {*DAG_ID}/*{*TASK_ID}/*{*time}/*{*n}.log.` nos meus logs 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\$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](https://github.com/aws/amazon-mwaa-docker-images) no GitHub.