

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

# Como gerenciar conexões com o Apache Airflow
<a name="manage-connections"></a>

Este capítulo descreve como configurar uma conexão do Apache Airflow para um ambiente do Amazon Managed Workflows for Apache Airflow.

**Topics**
+ [Visão geral das variáveis e conexões do Apache Airflow](#manage-connections-t-overview)
+ [Pacotes do provedor Apache Airflow instalados em ambientes Amazon MWAA](connections-packages.md)
+ [Visão geral dos tipos de conexão](manage-connection-types.md)
+ [Configurando uma conexão do Apache Airflow usando um segredo AWS Secrets Manager](connections-secrets-manager.md)

## Visão geral das variáveis e conexões do Apache Airflow
<a name="manage-connections-t-overview"></a>

Em alguns casos, talvez você queira especificar conexões ou variáveis adicionais para um ambiente, como um perfil AWS, ou adicionar seu perfil de execução em um objeto de conexão no metastore do Apache Airflow e, em seguida, consultar a conexão de dentro de um DAG.
+ **Apache Airflow autogerenciado**. Em uma instalação autogerenciada do Apache Airflow, você define as [opções de configuração do Apache Airflow em `airflow.cfg`](https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html).

  ```
  [secrets]
  backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
  backend_kwargs = {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
  ```
+ **Apache Airflow no Amazon MWAA**. No Amazon MWAA, você precisa adicionar essas definições de configuração como [opções de configuração do Apache Airflow](configuring-env-variables.md) no console do Amazon MWAA. As opções de configuração do Apache Airflow são gravadas como variáveis de ambiente em seu ambiente e substituem todas as outras configurações existentes pela mesma configuração.

# Pacotes do provedor Apache Airflow instalados em ambientes Amazon MWAA
<a name="connections-packages"></a>

Esta página lista os pacotes do provedor Apache Airflow instalados pelo Amazon MWAA para todos os ambientes do Apache Airflow. Para obter mais informações sobre esses pacotes, consulte [Referência do Apache Airflow para extras do pacote](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html).

**nota**  
[Para garantir que a compatibilidade com o CloudWatch registro não seja substituída por outras instalações da biblioteca Python, o Amazon MWAA instala a Watchtower versão 2.0.1 após a execução.](https://pypi.org/project/watchtower/2.0.1/) `pip3 install -r requirements.txt`

**Topics**
+ [Arquivo de restrições](#connections-packages-constraints)
+ [Pacotes de fornecedores específicos da versão](#connections-packages-table)

## Arquivo de restrições
<a name="connections-packages-constraints"></a>

A partir do Apache Airflow v2.7.2, seu arquivo de requisitos deve incluir uma declaração `--constraint`. Se você não fornecer uma restrição, o Amazon MWAA especificará uma para garantir que os pacotes listados em seus requisitos sejam compatíveis com a versão do Apache Airflow que você estiver usando.

Os arquivos de restrições do Apache Airflow especificam as versões do provedor disponíveis no momento de um lançamento do Apache Airflow. No entanto, em muitos casos os provedores mais novos são compatíveis com essa versão do Apache Airflow. Como você deve usar restrições, para especificar uma versão mais recente de um pacote de provedor, é possível modificar o arquivo de restrições para uma versão específica do provedor:

1. Baixe o arquivo de restrições específicas da versão em GitHub, por exemplo, [https://raw.githubusercontent.com/apache/airflow/constraints-2.7.2/constraints-3.11.txt](https://raw.githubusercontent.com/apache/airflow/constraints-2.7.2/constraints-3.11.txt) (substitua '2.7.2' pela versão que você deseja usar).

1. Salve o arquivo de restrições modificado na pasta DAGs do Amazon S3 do seu ambiente Amazon MWAA, por exemplo, como `constraints-3.11-updated.txt`.

1. Especifique seus requisitos conforme mostrado a seguir.

   ```
   --constraint "/usr/local/airflow/dags/constraints-3.11-updated.txt"
   apache-airflow-providers-amazon==version-number
   ```
**nota**  
Se você estiver usando um servidor web privado, recomendamos que você [empacote as bibliotecas necessárias como arquivos WHL](best-practices-dependencies.md#best-practices-dependencies-python-wheels) usando. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)

## Pacotes de fornecedores específicos da versão
<a name="connections-packages-table"></a>

Instalação de pacotes do provedor que você pode usar para acessar um tipo de conexão na IU do Apache Airflow. Também significa que você não precisa especificar esses pacotes como uma dependência do Python em seu arquivo `requirements.txt`. Esta página lista os pacotes do provedor Apache Airflow instalados pelo Amazon MWAA para todos os ambientes do Apache Airflow.

**nota**  
Para o Apache Airflow v2 e versões posteriores, o Amazon MWAA [instala a Watchtower versão](https://pypi.org/project/watchtower/2.0.1/) 2.0.1 após a `pip3 install -r requirements.txt` execução, para garantir que a compatibilidade com o CloudWatch registro não seja substituída por outras instalações da biblioteca Python.

É possível especificar a versão mais recente compatível de `apache-airflow-providers-amazon` para atualizar este provedor.

**Versões compatíveis do Apache Airflow:**

------
#### [ v3.0.6 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] ==9.9.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.9.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==6.2.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.2.1/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.13.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.13.1/index.html)  | 
|  Conexão Fab  |  [apache-airflow-providers-fab==2.3.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/2.3.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.12.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.12.1/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==5.3.2](https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.2/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.9.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.9.1/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.27.3](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==4.1.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/4.1.1/index.html)  | 

------
#### [ v2.11.0 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] ==9.8.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.8.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==6.2.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.2.0/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.13.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.13.0/index.html)  | 
|  Conexão Fab  |  [apache-airflow-providers-fab==1.5.3](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.11.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==5.3.0](https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.0/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.9.0/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.27.1](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.1/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==4.1.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/4.1.0/index.html)  | 
|  Conexão SMTP  |  [apache-airflow-providers-smtp==2.1.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/2.1.0/index.html)  | 

------
#### [ v2.10.3 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] ==9.0.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.13.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.13.1/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.11.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.11.1/index.html)  | 
|  Conexão Fab  |  [apache-airflow-providers-fab==1.5.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.8.3](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.8.3/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.13.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.13.2/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.7.0/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.19.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.19.0/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.9.0/index.html)  | 
|  Conexão SMTP  |  [apache-airflow-providers-smtp==1.8.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.8.0/index.html)  | 

------
#### [ v2.10.1 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] == 8.28.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/2.28.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.12.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.12.0/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.11.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.11.0/index.html)  | 
|  Conexão Fab  |  [apache-airflow-providers-fab==1.3.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.3.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.8.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.8.1/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.13.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.13.0/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.7.0/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.16.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.16.0/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.9.0/index.html)  | 
|  Conexão SMTP  |  [apache-airflow-providers-smtp==1.8.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.8.0/index.html)  | 

------
#### [ v2.9.2 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] ==8.24.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.11.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.11.1/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.9.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.9.1/index.html)  | 
|  Conexão Fab  |  [apache-airflow-providers-fab==1.1.1](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.1.1/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.7.2](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.7.2/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.11.1](https://airflow.apache.org/docs/apache-airflow-providers-http/4.11.1/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.6.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.6.1/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.14.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.14.0/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.8.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.8.1/index.html)  | 
|  Conexão SMTP  |  [apache-airflow-providers-smtp==1.7.1](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.7.1/index.html)  | 

------
#### [ v2.8.1 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] == 8.16.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.16.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.10.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.10.0/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.7.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.5.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.5.1/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.8.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.5.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.5.0/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.10.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.10.0/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.7.0/index.html)  | 

------
#### [ v2.7.2 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] == 8.7.1](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.7.1/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.6.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.6.1/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.5.2](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.5.2/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.3.4](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.3.4/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.5.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.2/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.3.2](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.3.2/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.7.2](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.7.2/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.4.3](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.4.3/index.html)  | 

------
#### [ v2.6.3 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon[aiobotocore] ==8.2.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.2.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.5.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.5.1/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.4.2](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.4.2/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.2.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.2.1/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.4.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.2/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.2.2](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.2.2/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.5.2](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.5.2/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.4.2](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.4.2/index.html)  | 

------
#### [ v2.5.1 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon==7.1.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/7.1.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.4.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.4.0/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.3.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.3.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.1.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.1.0/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.1.1](https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.1/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.1.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.1.1/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.3.3](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.3.3/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.3.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.3.1/index.html)  | 

------
#### [ v2.4.3 ]


| Tipo de conexão | Pacote | 
| --- | --- | 
|  AWS Conexão  |  [apache-airflow-providers-amazon==6.0.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/6.0.0/index.html)  | 
|  Conexão com o Postgres  |  [apache-airflow-providers-postgres==5.2.2](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.2.2/index.html)  | 
|  Conexão FTP  |  [apache-airflow-providers-ftp==3.1.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.1.0/index.html)  | 
|  Conexão Celery  |  [apache-airflow-providers-celery==3.0.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.0.0/index.html)  | 
|  Conexão HTTP  |  [apache-airflow-providers-http==4.0.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.0.0/index.html)  | 
|  Conexão IMAP  |  [apache-airflow-providers-imap==3.0.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.0.0/index.html)  | 
|  SQL comum  |  [apache-airflow-providers-common-sql==1.2.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.2.0/index.html)  | 
|  SQLite Conexão  |  [apache-airflow-providers-sqlite==3.2.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.2.1/index.html)  | 

------

# Visão geral dos tipos de conexão
<a name="manage-connection-types"></a>

O Apache Airflow armazena conexões, como uma string de conexão URI. É fornecido um modelo de conexões na IU do Apache Airflow para gerar a string de conexão URI, independentemente do tipo de conexão. Se um modelo de conexão não estiver disponível na IU do Apache Airflow, um modelo de conexão alternativo poderá ser usado para gerar essa string de conexão URI, como o uso do modelo de conexão HTTP. A principal diferença é o prefixo do URI, como `my-conn-type://`, que os provedores do Apache Airflow normalmente ignoram para uma conexão. Esta página descreve como usar modelos de conexão na IU do Apache Airflow de forma intercambiável para diferentes tipos de conexão.

**Atenção**  
Não substitua a conexão [https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/connections/aws.html](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/connections/aws.html) no Amazon MWAA. O Amazon MWAA usa essa conexão para realizar uma variedade de tarefas críticas, como coletar logs de tarefas. Substituir essa conexão pode resultar em perda de dados e interrupções na disponibilidade do seu ambiente.

**Topics**
+ [Exemplo de string de conexão URI](#manage-connection-types-string-example)
+ [Exemplo de modelo de conexão](#manage-connection-types-template-example)
+ [Exemplo de uso de um modelo de conexão HTTP para uma conexão Jdbc](#manage-connection-types-example)

## Exemplo de string de conexão URI
<a name="manage-connection-types-string-example"></a>

O exemplo a seguir mostra uma string do URI de conexão do tipo de conexão do MySQL.

```
'mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA&region_name=us-east-1'
```

## Exemplo de modelo de conexão
<a name="manage-connection-types-template-example"></a>

Os exemplos a seguir mostram o modelo de conexão HTTP na IU do Apache Airflow.

------
#### [ Apache Airflow v3 ]

![\[Esta imagem mostra o tipo de conexão HTTP na IU do Apache Airflow.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/airflow-connection-v3.0.6.png)


------
#### [ Apache Airflow v2 ]

![\[Esta imagem mostra o tipo de conexão HTTP na IU do Apache Airflow.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/airflow-connection-v2.0.2.png)


------

## Exemplo de uso de um modelo de conexão HTTP para uma conexão Jdbc
<a name="manage-connection-types-example"></a>

Use o exemplo a seguir para aplicar o modelo de conexão **HTTP** para um tipo de conexão *Jdbc* na IU do Apache Airflow.

------
#### [ Apache Airflow v3 ]

O exemplo a seguir mostra a string do URI de conexão gerada pelo Apache Airflow para o exemplo desta seção.

```
http://myconnectionurl/some/path&login=mylogin&extra__jdbc__dry__path=usr/local/airflow/dags/classpath/redshif-jdbc42-2.0.0.1.jar&extra__jdbc__dry__clsname=redshift-jdbc42-2.0.0.1
```

Use o exemplo a seguir para aplicar o modelo de conexão HTTP para uma conexão *Jdbc* para o Apache Airflow v3 na IU do Apache Airflow.

![\[Esta imagem mostra o tipo de conexão HTTP para uma conexão Jdbc na IU do Apache Airflow.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/airflow-connection-jdbc-v3.0.6.png)


------
#### [ Apache Airflow v2 ]

O exemplo a seguir mostra a string do URI de conexão gerada pelo Apache Airflow para o exemplo desta seção.

```
http://myconnectionurl/some/path&login=mylogin&extra__jdbc__dry__path=usr/local/airflow/dags/classpath/redshif-jdbc42-2.0.0.1.jar&extra__jdbc__dry__clsname=redshift-jdbc42-2.0.0.1
```

Use o exemplo a seguir para aplicar o modelo de conexão HTTP para uma conexão *Jdbc* para o Apache Airflow v2 na IU do Apache Airflow.

![\[Esta imagem mostra o tipo de conexão HTTP para uma conexão Jdbc na IU do Apache Airflow.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/airflow-connection-jdbc-v2.0.2.png)


------

# Configurando uma conexão do Apache Airflow usando um segredo AWS Secrets Manager
<a name="connections-secrets-manager"></a>

AWS Secrets Manager é um back-end alternativo compatível com o Apache Airflow em um ambiente Amazon Managed Workflows for Apache Airflow. Este tópico explica como usar para armazenar com segurança segredos AWS Secrets Manager para variáveis do Apache Airflow e uma conexão do Apache Airflow no Amazon Managed Workflows for Apache Airflow.

**nota**  
Você é cobrado pelos segredos que você cria. Para obter mais informações sobre precificação do Secrets Manager, consulte [Precificação da AWS](https://aws.amazon.com/secrets-manager/pricing/).
[AWS O Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store) também é suportado como um back-end secreto no Amazon MWAA. Para obter mais informações, consulte a [documentação do Amazon Provider Package](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-ssm-parameter-store.html).

**Contents**
+ [Etapa 1: forneça ao Amazon MWAA permissão para acessar as chaves secretas do Secrets Manager](#connections-sm-policy)
+ [Etapa 2: crie o back-end do Secrets Manager como uma opção de configuração do Apache Airflow](#connections-sm-aa-configuration)
+ [Etapa três: gerar uma string de URI de conexão do Apache AWS Airflow](#connections-sm-aa-uri)
+ [Etapa 4: adicione as variáveis no Secrets Manager](#connections-sm-createsecret-variables)
+ [Etapa 5: adicione a conexão no Secrets Manager](#connections-sm-createsecret-connection)
+ [Código de exemplo](#connections-sm-samples)
+ [Recursos](#connections-sm-blogs)
+ [Próximas etapas](#connections-sm-next-up)

## Etapa 1: forneça ao Amazon MWAA permissão para acessar as chaves secretas do Secrets Manager
<a name="connections-sm-policy"></a>

O [perfil de execução](mwaa-create-role.md) do seu ambiente Amazon MWAA precisa de acesso de leitura à chave secreta de entrada em AWS Secrets Manager. A política do IAM a seguir permite acesso de leitura e gravação usando a política AWS gerenciada [SecretsManagerReadWrite](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/SecretsManagerReadWrite$jsonEditor).

**Para anexar a política ao seu perfil de execução**

1. Abra a [página Ambientes](https://console.aws.amazon.com/mwaa/home#/environments) no console do Amazon MWAA.

1. Escolha um ambiente.

1. Escolha sua função de execução no painel **Permissões**.

1. Escolha **Anexar políticas**.

1. Digite `SecretsManagerReadWrite` no campo de texto **Políticas de filtro**.

1. Escolha **Anexar política**.

Se você não quiser usar uma política de permissão AWS gerenciada, você pode atualizar diretamente a função de execução do seu ambiente para permitir qualquer nível de acesso aos recursos do Secrets Manager. Por exemplo, a declaração de política a seguir concede acesso de leitura a todos os segredos que você cria em um específico Região da AWS no Secrets Manager.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*"
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:ListSecrets",
            "Resource": "*"
        }
    ]
}
```

------

## Etapa 2: crie o back-end do Secrets Manager como uma opção de configuração do Apache Airflow
<a name="connections-sm-aa-configuration"></a>

A seção a seguir descreve como criar uma opção de configuração do Apache Airflow no console Amazon MWAA para o back-end. AWS Secrets Manager Se você estiver usando uma definição de configuração com o mesmo nome em `airflow.cfg`, a configuração criada nas etapas a seguir terá precedência e substituirá as definições de configuração.

1. Abra a [página Ambientes](https://console.aws.amazon.com/mwaa/home#/environments) no console do Amazon MWAA.

1. Escolha um ambiente.

1. Escolha **Editar**.

1. Escolha **Próximo**.

1. Escolha **Adicionar configuração personalizada** no painel **Opções de configuração do Airflow**. Adicione os seguintes pares de chave-valor:

   1. **`secrets.backend`**: **`airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend`**

   1. **`secrets.backend_kwargs`**: **`{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}`** Configura o Apache Airflow para buscar strings de conexão e variáveis nos caminhos `airflow/connections/*` e `airflow/variables/*`.

      É possível usar um [padrão de pesquisa](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-secrets-manager.html#optional-lookup) para reduzir o número de chamadas de API que o Amazon MWAA faz para o Secrets Manager em seu nome. Se você não especificar um padrão de pesquisa, o Apache Airflow pesquisará todas as conexões e variáveis no back-end configurado. Ao especificar um padrão, você restringe os caminhos possíveis que o Apache Airflow procura. Isso reduz seus custos ao usar o Secrets Manager com o Amazon MWAA.

      Para especificar um padrão de pesquisa, especifique os parâmetros `connections_lookup_pattern` e `variables_lookup_pattern`. Esses parâmetros aceitam uma RegEx string como entrada. Por exemplo, para procurar segredos que comecem com `test`, digite o seguinte para `secrets.backend_kwargs`:

      ```
      {
        "connections_prefix": "airflow/connections",
        "connections_lookup_pattern": "^test",
        "variables_prefix" : "airflow/variables",
        "variables_lookup_pattern": "^test"
      }
      ```
**nota**  
Para usar `connections_lookup_pattern` e `variables_lookup_pattern`, você deve instalar a versão 7.3.0 ou superior de `apache-airflow-providers-amazon`. Para obter mais informações sobre como atualizar os pacotes do provedor para versões mais recentes, consulte [Arquivo de restrições](connections-packages.md#connections-packages-constraints).

1. Escolha **Salvar**.

## Etapa três: gerar uma string de URI de conexão do Apache AWS Airflow
<a name="connections-sm-aa-uri"></a>

Para criar uma string de conexão, use a tecla "Tab" do teclado para adicionar recuo dos pares de chave-valor no objeto [Conexão](https://airflow.apache.org/docs/stable/howto/connection/index.html). Também recomendamos criar uma variável para o objeto `extra` em sua sessão de shell. A seção a seguir mostra as etapas para [gerar uma string de URI de conexão do Apache Airflow](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#generating-a-connection-uri) para um ambiente Amazon MWAA usando o Apache Airflow ou um script Python.

------
#### [ Apache Airflow CLI ]

A sessão de shell a seguir usa sua CLI local do Airflow para gerar uma string de conexão. Se você não tiver a CLI instalada, recomendamos usar o script Python.

1. Abra uma sessão de shell do Python:

   ```
   python3
   ```

1. Digite o comando:

   ```
   >>> import json
   ```

1. Digite o comando:

   ```
   >>> from airflow.models.connection import Connection
   ```

1. Crie uma variável em sua sessão de shell para o objeto `extra`. Substitua os valores da amostra pelo ARN da função de execução e pela região em *us-east-1* (como`us-east-1`). *YOUR\$1EXECUTION\$1ROLE\$1ARN*

   ```
   >>> extra=json.dumps({'role_arn': 'YOUR_EXECUTION_ROLE_ARN', 'region_name': 'us-east-1'})
   ```

1. Crie o objeto de conexão. Substitua o valor do exemplo em `myconn` pelo nome da conexão Apache Airflow.

   ```
   >>> myconn = Connection(
   ```

1. Use a tecla “tab” do teclado para adicionar recuo a cada um dos seguintes pares de chave-valor em seu objeto de conexão. Substitua os valores da amostra em*red*.

   1. Especifique o tipo de AWS conexão:

      ```
      ... conn_id='aws',
      ```

   1. Especifique a opção de banco de dados Apache Airflow:

      ```
      ... conn_type='mysql',
      ```

   1. Especifique o URL da IU do Apache Airflow no Amazon MWAA:

      ```
      ... host='288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com/home',
      ```

   1. Especifique o ID da chave de AWS acesso (nome de usuário) para fazer login no Amazon MWAA:

      ```
      ... login='YOUR_AWS_ACCESS_KEY_ID',
      ```

   1. Especifique a chave de acesso AWS secreta (senha) para fazer login no Amazon MWAA:

      ```
      ... password='YOUR_AWS_SECRET_ACCESS_KEY',
      ```

   1. Especifique a variável de sessão de shell `extra`:

      ```
      ... extra=extra
      ```

   1. Feche o objeto de conexão.

      ```
      ... )
      ```

1. Imprima a string do URI de conexão:

   ```
   >>> myconn.get_uri()
   ```

   Consulte a string do URI de conexão na resposta:

   ```
   'mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA&region_name=us-east-1'
   ```

------
#### [ Python script ]

O script Python a seguir não requer a CLI do Apache Airflow.

1. Copie o conteúdo da amostra de código a seguir e salve localmente como `mwaa_connection.py`.

   ```
   import urllib.parse
   								
   								conn_type = 'YOUR_DB_OPTION'
   								host = 'YOUR_MWAA_AIRFLOW_UI_URL'
   								port = 'YOUR_PORT'
   								login = 'YOUR_AWS_ACCESS_KEY_ID'
   								password = 'YOUR_AWS_SECRET_ACCESS_KEY'
   								role_arn = urllib.parse.quote_plus('YOUR_EXECUTION_ROLE_ARN')
   								region_name = 'us-east-1'
   								
   								conn_string = '{0}://{1}:{2}@{3}:{4}?role_arn={5}&region_name={6}'.format(conn_type, login, password, host, port, role_arn, region_name)
   								print(conn_string)
   ```

1. Substitua os espaços reservados em*red*.

1. Execute o script a seguir para gerar uma string de conexão.

   ```
   python3 mwaa_connection.py
   ```

------

## Etapa 4: adicione as variáveis no Secrets Manager
<a name="connections-sm-createsecret-variables"></a>

A seção a seguir descreve como criar o segredo para uma variável no Secrets Manager.

**Para criar o segredo**

1. Abra o [console do AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Selecione **Armazenar um novo segredo**.

1. Selecione **Outro tipo de segredo**.

1. No painel **Especificar os key/value pares a serem armazenados nesse painel secreto**, escolha Texto sem **formatação**.

1. Adicione o valor da variável como **Texto simples** no formato a seguir.

   ```
   "YOUR_VARIABLE_VALUE"
   ```

   Por exemplo, para especificar um número inteiro:

   ```
   14
   ```

   Por exemplo, para especificar uma string:

   ```
   "mystring"
   ```

1. Em **Chave de criptografia**, escolha uma opção de AWS KMS chave na lista suspensa.

1. Insira um nome no campo de texto para **Nome secreto** no formato a seguir.

   ```
   airflow/variables/YOUR_VARIABLE_NAME
   ```

   Por exemplo:

   ```
   airflow/variables/test-variable
   ```

1. Escolha **Próximo**

1. Na página **Configurar segredo**, no painel **Nome e descrição do segredo**, faça o seguinte.

   1. Em **Nome secreto**, forneça um nome para seu segredo.

   1. (Opcional) Em **Descrição**, insira uma descrição para o nome do segredo.

   Escolha **Avançar**.

1. Em **Configurar rotação - opcional**, deixe as opções padrão e escolha **Avançar**.

1. Repita essas etapas no Secrets Manager para quaisquer variáveis adicionais que você queira adicionar.

1. Na página **Analisar**, analise os detalhes do segredo e escolha **Armazenar**.

## Etapa 5: adicione a conexão no Secrets Manager
<a name="connections-sm-createsecret-connection"></a>

A seção a seguir descreve como criar o segredo para o URI da string de conexão no Secrets Manager.

**Para criar o segredo**

1. Abra o [console do AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Selecione **Armazenar um novo segredo**.

1. Selecione **Outro tipo de segredo**.

1. No painel **Especificar os key/value pares a serem armazenados nesse painel secreto**, escolha Texto sem **formatação**.

1. Adicione a string do URI de conexão como **texto simples no formato** a seguir.

   ```
   YOUR_CONNECTION_URI_STRING
   ```

   Por exemplo:

   ```
   mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA&region_name=us-east-1
   ```
**Atenção**  
O Apache Airflow analisa cada um dos valores na string de conexão. Você **não** deve usar aspas simples nem duplas, ou ele analisará a conexão como uma única string.

1. Em **Chave de criptografia**, escolha uma opção de AWS KMS chave na lista suspensa.

1. Insira um nome no campo de texto para **Nome secreto** no formato a seguir.

   ```
   airflow/connections/YOUR_CONNECTION_NAME
   ```

   Por exemplo:

   ```
   airflow/connections/myconn
   ```

1. Escolha **Próximo**

1. Na página **Configurar segredo**, no painel **Nome e descrição do segredo**, faça o seguinte.

   1. Em **Nome secreto**, forneça um nome para seu segredo.

   1. (Opcional) Em **Descrição**, insira uma descrição para o nome do segredo.

   Escolha **Avançar**.

1. Em **Configurar rotação - opcional**, deixe as opções padrão e escolha **Avançar**.

1. Repita essas etapas no Secrets Manager para quaisquer variáveis adicionais que você queira adicionar.

1. Na página **Analisar**, analise os detalhes do segredo e escolha **Armazenar**.

## Código de exemplo
<a name="connections-sm-samples"></a>
+ Saiba como usar a chave secreta para a conexão do Apache Airflow (`myconn`) nesta página usando o código de exemplo em [Como usar uma chave secreta em AWS Secrets Manager para uma conexão do Apache Airflow](samples-secrets-manager.md).
+ Saiba como usar a chave secreta para a variável do Apache Airflow (`test-variable`) nesta página usando o código de exemplo em [Como usar uma chave secreta em AWS Secrets Manager para uma variável do Apache Airflow](samples-secrets-manager-var.md).

## Recursos
<a name="connections-sm-blogs"></a>
+ Para obter mais informações sobre como configurar segredos do Secrets Manager usando o console e o AWS CLI, consulte [Criar um segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) no *Guia do AWS Secrets Manager Usuário*.
+ Use um script Python para migrar um grande volume de variáveis e conexões do Apache Airflow para o Secrets Manager em [Move your Apache Airflow connections and variables to AWS Secrets Manager](https://aws.amazon.com/blogs/opensource/move-apache-airflow-connections-variables-aws-secrets-manager/) (Mova suas conexões e variáveis do Apache Airflow para ).

## Próximas etapas
<a name="connections-sm-next-up"></a>
+ Saiba como gerar um token para acessar a interface do Apache Airflow em [Como acessar o Apache Airflow](access-airflow-ui.md).