

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Instalación de dependencias de Python
<a name="working-dags-dependencies"></a>

Una dependencia de Python es cualquier paquete o distribución que no esté incluido en la instalación base de Apache Airflow para su versión de Apache Airflow en su entorno de Amazon Managed Workflows para Apache Airflow. En esta página, se describen los pasos para instalar las dependencias de Python de Apache Airflow en su entorno de Amazon MWAA mediante un archivo `requirements.txt` en su bucket de Amazon S3.

**Contents**
+ [

## Requisitos previos
](#working-dags-dependencies-prereqs)
+ [

## Funcionamiento
](#working-dags-dependencies-how)
+ [

## Descripción general de las dependencias de Python
](#working-dags-dependencies-overview)
  + [

### Límites de ubicación y tamaño de las dependencias de Python
](#working-dags-dependencies-quota)
+ [

## Creación de un archivo requirements.txt
](#working-dags-dependencies-test-create)
  + [

### Paso uno: probar las dependencias de Python con la utilidad CLI de Amazon MWAA
](#working-dags-dependencies-cli-utility)
  + [

### Paso dos: crear el `requirements.txt`
](#working-dags-dependencies-syntax-create)
+ [

## Cómo cargar `requirements.txt` a Amazon S3
](#configuring-dag-dependencies-upload)
  + [

### Usando el AWS CLI
](#configuring-dag-dependencies-upload-cli)
  + [

### Uso de la consola de Amazon S3
](#configuring-dag-dependencies-upload-console)
+ [

## Instalación de dependencias de Python en su entorno
](#configuring-dag-dependencies-installing)
  + [

### Especificación de la ruta a `requirements.txt` en la consola MWAA de Amazon (la primera vez)
](#configuring-dag-dependencies-first)
  + [

### Especificación de la versión de `requirements.txt` en la consola de Amazon MWAA
](#working-dags-dependencies-mwaaconsole-version)
+ [

## Visualización de registros para su `requirements.txt`
](#working-dags-dependencies-logs)
+ [

## Siguientes pasos
](#working-dags-dependencies-next-up)

## Requisitos previos
<a name="working-dags-dependencies-prereqs"></a>

Para poder llevar a cabo los pasos de esta página, necesitará lo siguiente.
+ **Permisos**: el administrador Cuenta de AWS debe haberte concedido el acceso a la política de control de MWAAFull ConsoleAccess acceso de [Amazon](access-policies.md#console-full-access) para tu entorno. Además, su [rol de ejecución](mwaa-create-role.md) debe permitir que su entorno Amazon MWAA acceda a los AWS recursos que utiliza su entorno.
+ **Acceso**: si tiene que acceder a los repositorios públicos para instalar dependencias directamente en el servidor web, su entorno debe estar configurado con acceso a un servidor web de **red pública**. Para obtener más información, consulta [Modos de acceso de Apache Airflow](configuring-networking.md).
+ **Configuración de Amazon S3**: el [bucket de Amazon S3](mwaa-s3-bucket.md) que se utiliza para almacenar los complementos personalizados y las dependencias de Python `requirements.txt` debe estar configurado con el *acceso público bloqueado* y el control de *versiones activado*. DAGs `plugins.zip`

## Funcionamiento
<a name="working-dags-dependencies-how"></a>

En Amazon MWAA, para instalar todas las dependencias de Python, debe cargar un archivo `requirements.txt` en su bucket de Amazon S3 y, a continuación, especificar la versión del archivo en la consola de Amazon MWAA cada vez que actualice el archivo. Amazon MWAA ejecuta `pip3 install -r requirements.txt` para instalar las dependencias de Python en el programador de Apache Airflow y en cada uno de los procesos de trabajo.

Para ejecutar las dependencias de Python en su entorno, debe hacer tres cosas:

1. Cree un archivo `requirements.txt` local.

1. Cargue el `requirements.txt` local en su bucket de Amazon S3.

1. Especifique la versión de este archivo en el campo **Archivo de requisitos** de la consola de Amazon MWAA.

**nota**  
Si es la primera vez que crea y sube un archivo `requirements.txt` a su bucket de Amazon S3, también tendrá que especificar la ruta al archivo en la consola de Amazon MWAA. Solo necesita realizar este paso una vez.

## Descripción general de las dependencias de Python
<a name="working-dags-dependencies-overview"></a>

Puede instalar los extras de Apache Airflow y otras dependencias de Python desde el Python Package Index (PyPi.org), Python wheels (`.whl`) o las dependencias de Python alojadas en un repositorio privado compatible con PyPi /PEP-503 en su entorno.

### Límites de ubicación y tamaño de las dependencias de Python
<a name="working-dags-dependencies-quota"></a>

El programador de Apache Airflow y los procesos de trabajo buscan los paquetes en el archivo `requirements.txt` y los paquetes se instalan en el entorno en `/usr/local/airflow/.local/bin`.
+ **Límite de tamaño.** Recomendamos un archivo `requirements.txt` que haga referencia a bibliotecas cuyo tamaño combinado sea inferior a 1 GB. Cuantas más bibliotecas necesite instalar Amazon MWAA, mayor será el tiempo de *inicio* de un entorno. Aunque Amazon MWAA no limita el tamaño de las bibliotecas instaladas de forma explícita, si las dependencias no se pueden instalar en diez minutos, el servicio Fargate agotará el tiempo de espera e intentará revertir el entorno a un estado estable.

## Creación de un archivo requirements.txt
<a name="working-dags-dependencies-test-create"></a>

En los pasos siguientes se describen los pasos que recomendamos para crear un archivo requirements.txt de forma local.

### Paso uno: probar las dependencias de Python con la utilidad CLI de Amazon MWAA
<a name="working-dags-dependencies-cli-utility"></a>
+ La utilidad de la interfaz de la línea de comandos (CLI) replica entornos en Amazon Managed Workflows para Apache Airflow de forma local.
+ La CLI crea localmente una imagen de contenedor de Docker similar a una imagen de producción de Amazon MWAA. Puede usarlo para ejecutar un entorno local de Apache Airflow para desarrollar y probar DAGs complementos personalizados y dependencias antes de implementarlos en Amazon MWAA.
+ Para ejecutar la CLI, consulte [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)on GitHub.

### Paso dos: crear el `requirements.txt`
<a name="working-dags-dependencies-syntax-create"></a>

La siguiente sección describe cómo especificar las dependencias de Python desde el [Python Package Index](https://pypi.org/) en un archivo `requirements.txt`.

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

1. **Hacer una prueba local**. Añada bibliotecas adicionales de forma iterativa para encontrar la combinación adecuada de paquetes y sus versiones antes de crear un archivo `requirements.txt`. Para ejecutar la utilidad CLI Amazon MWAA, consulte en. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) GitHub

1. **Revise los extras del paquete Apache Airflow**. Para acceder a una lista de los paquetes instalados para Apache Airflow v3 en Amazon MWAA, consulte el sitio web. [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) GitHub 

1. **Añada instrucciones respecto a las restricciones.** Añada el archivo de restricciones para su entorno Apache Airflow v3 en la parte superior del archivo. `requirements.txt` Los archivos de restricciones de Apache Airflow especifican las versiones de proveedores disponibles en el momento de la publicación de Apache Airflow.

    En el siguiente ejemplo, sustituya *\$1environment-version\$1* por el número de versión de su entorno y, *\$1Python-version\$1*, por la versión de Python compatible con su entorno. 

   Para obtener información sobre la versión de Python compatible con su entorno de Apache Airflow, consulte las [versiones de Apache Airflow](airflow-versions.md#airflow-versions-official). 

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
   ```

    Si el archivo de restricciones determina que el paquete `xyz==1.0` no es compatible con otros paquetes de su entorno, `pip3 install` no podrá impedir que se instalen bibliotecas incompatibles en su entorno. Si se produce un error en la instalación de algún paquete, puede acceder a los registros de errores de cada componente de Apache Airflow (el programador, el equipo de trabajo y el servidor web) en el flujo de registros correspondiente en Logs. CloudWatch Para obtener más información sobre los tipos de registros, consulte [Acceder a los registros de Airflow en Amazon CloudWatch](monitoring-airflow.md). 

1. **Paquetes de Apache Airflow.** Añada los [extras del paquete](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) y la versión (`==`). Esto ayuda a evitar que se instalen en su entorno paquetes del mismo nombre, pero de una versión diferente.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Bibliotecas Python**. Añada el nombre del paquete y la versión (`==`) al archivo `requirements.txt`. Esto ayuda a evitar que se aplique automáticamente una futura actualización de última hora de [PyPi.org](https://pypi.org).

   ```
   library == version
   ```  
**Example Boto3 y psycopg2-binary**  

   Este caso se proporciona como ejemplo. Las bibliotecas boto y psycopg2-binary vienen incluidas en la instalación base de Apache Airflow v3, por lo que no es necesario especificarlas en un archivo `requirements.txt`.

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Si se especifica un paquete sin una versión, Amazon MWAA instala la última versión del paquete desde .org. PyPi](https://pypi.org) Esta versión puede entrar en conflicto con otros paquetes de su `requirements.txt`.

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

1. **Hacer una prueba local**. Añada bibliotecas adicionales de forma iterativa para encontrar la combinación adecuada de paquetes y sus versiones antes de crear un archivo `requirements.txt`. Para ejecutar la utilidad CLI Amazon MWAA, consulte en. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) GitHub

1. **Revise los extras del paquete Apache Airflow**. Para acceder a una lista de los paquetes instalados para Apache Airflow v2 en Amazon MWAA, visite el sitio web. [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) GitHub 

1. **Añada instrucciones respecto a las restricciones.** Añada el archivo de restricciones para su entorno Apache Airflow v2 en la parte superior del archivo `requirements.txt`. Los archivos de restricciones de Apache Airflow especifican las versiones de proveedores disponibles en el momento de la publicación de Apache Airflow.

    A partir de la versión 2.7.2 de Apache Airflow, su archivo de requisitos debe incluir una instrucción `--constraint`. Si no proporciona ninguna restricción, Amazon MWAA especificará una para garantizar que los paquetes que figuran en sus requisitos sean compatibles con la versión de Apache Airflow que utilice. 

   En el siguiente ejemplo, sustituya *\$1environment-version\$1* por el número de versión de su entorno y, *\$1Python-version\$1*, por la versión de Python compatible con su entorno.

   Para obtener información sobre la versión de Python compatible con su entorno de Apache Airflow, consulte las [versiones de Apache Airflow](airflow-versions.md#airflow-versions-official).

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
   ```

   Si el archivo de restricciones determina que el paquete `xyz==1.0` no es compatible con otros paquetes de su entorno, `pip3 install` no podrá impedir que se instalen bibliotecas incompatibles en su entorno. Si se produce un error en la instalación de algún paquete, puede acceder a los registros de errores de cada componente de Apache Airflow (el programador, el equipo de trabajo y el servidor web) en el flujo de registros correspondiente en Logs. CloudWatch Para obtener más información sobre los tipos de registros, consulte [Acceder a los registros de Airflow en Amazon CloudWatch](monitoring-airflow.md).

1. **Paquetes de Apache Airflow.** Añada los [extras del paquete](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) y la versión (`==`). Esto ayuda a evitar que se instalen en su entorno paquetes del mismo nombre, pero de una versión diferente.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Bibliotecas Python**. Añada el nombre del paquete y la versión (`==`) al archivo `requirements.txt`. Esto ayuda a evitar que se aplique automáticamente una futura actualización de última hora de [PyPi.org](https://pypi.org).

   ```
   library == version
   ```  
**Example Boto3 y psycopg2-binary**  

   Este caso se proporciona como ejemplo. Las bibliotecas boto y psycopg2-binary vienen incluidas en la instalación base de Apache Airflow v2, por lo que no es necesario especificarlas en un archivo `requirements.txt`.

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Si se especifica un paquete sin una versión, Amazon MWAA instala la última versión del paquete desde .org. PyPi](https://pypi.org) Esta versión puede entrar en conflicto con otros paquetes de su `requirements.txt`.

------

## Cómo cargar `requirements.txt` a Amazon S3
<a name="configuring-dag-dependencies-upload"></a>

Puede utilizar la consola Amazon S3 o AWS Command Line Interface (AWS CLI) para cargar un `requirements.txt` archivo en su bucket de Amazon S3.

### Usando el AWS CLI
<a name="configuring-dag-dependencies-upload-cli"></a>

The AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que puede utilizar para interactuar con AWS los servicios mediante comandos del shell de la línea de comandos. Para completar los pasos de esta página, necesita lo siguiente:
+ [AWS CLI — Instala la versión 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI — Configuración rápida con `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

**Para cargar mediante el AWS CLI**

1. Use el siguiente comando para obtener una lista de todos los buckets de Amazon S3.

   ```
   aws s3 ls
   ```

1. Utilice el comando siguiente para enumerar los archivos y las carpetas del bucket de Amazon S3 para su entorno.

   ```
   aws s3 ls s3://YOUR_S3_BUCKET_NAME
   ```

1. El siguiente comando carga un archivo `requirements.txt` en el bucket de Amazon S3.

   ```
   aws s3 cp requirements.txt s3://amzn-s3-demo-bucket/requirements.txt
   ```

### Uso de la consola de Amazon S3
<a name="configuring-dag-dependencies-upload-console"></a>

La consola de Amazon S3 es una interfaz de usuario basada en la web que le permite crear y administrar los recursos de su bucket de Amazon S3.

**Carga del contenido usando la consola de Amazon S3**

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Seleccione el enlace del **bucket S3** en el panel de **códigos de DAG en S3** para abrir el bucket de almacenamiento en la consola.

1. Seleccione **Cargar**.

1. Elija **Añadir archivo**.

1. Seleccione la copia local de su `requirements.txt`, elija **Cargar**.

## Instalación de dependencias de Python en su entorno
<a name="configuring-dag-dependencies-installing"></a>

En esta sección, se describe cómo instalar las dependencias que ha cargado en su bucket de Amazon S3 especificando la ruta al archivo requirements.txt y especificando la versión del archivo requirements.txt cada vez que se actualiza.

### Especificación de la ruta a `requirements.txt` en la consola MWAA de Amazon (la primera vez)
<a name="configuring-dag-dependencies-first"></a>

Si es la primera vez que crea y sube un archivo `requirements.txt` a su bucket de Amazon S3, también tendrá que especificar la ruta al archivo en la consola de Amazon MWAA. Solo necesita realizar este paso una vez.

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Elija **Edit (Edición de)**.

1. En el panel **DAG code in Amazon S3** (Código DAG en Amazon S3), elija **Browse S3** (Explorar S3) junto al campo **Requirements file - optional** (Archivo de requisitos: opcional).

1. Seleccione el archivo `requirements.txt` en su bucket de Amazon S3.

1. Seleccione **Elegir**.

1. Seleccione **Siguiente**, **Actualizar entorno**.

Puede empezar a usar los nuevos paquetes inmediatamente después de que su entorno termine de actualizarse.

### Especificación de la versión de `requirements.txt` en la consola de Amazon MWAA
<a name="working-dags-dependencies-mwaaconsole-version"></a>

Debe especificar la versión de su archivo `requirements.txt` en la consola de Amazon MWAA cada vez que cargue una nueva versión de su `requirements.txt` en su bucket de Amazon S3.

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Elija **Edit (Edición de)**.

1. En el panel **Código de DAG en Amazon S3**, elija una versión de `requirements.txt` de la lista desplegable.

1. Seleccione **Siguiente**, **Actualizar entorno**.

Puede empezar a usar los nuevos paquetes inmediatamente después de que su entorno termine de actualizarse.

## Visualización de registros para su `requirements.txt`
<a name="working-dags-dependencies-logs"></a>

Consulte los registros de Apache Airflow correspondientes al programador encargado de programar sus flujos de trabajo y de analizar su carpeta de `dags`. En los siguientes pasos se describe cómo abrir el grupo de registros del programador en la consola de Amazon MWAA y cómo acceder a los registros de Apache Airflow en la consola Logs. CloudWatch 

**Para acceder a los registros de un `requirements.txt`**

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Elija el **Grupo de registro del programador de Airflow** en el panel de **Monitorización**.

1. Seleccione el registro `requirements_install_ip` en los **flujos de registro**.

1. Consulte la lista de paquetes que se hayan instalado en el entorno en `/usr/local/airflow/.local/bin`. Por ejemplo:

   ```
   Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1))
   Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl  
   Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2))
   ```

1. Consulte la lista de paquetes y compruebe si se produjo algún error en alguno de ellos durante la instalación. Si algo salió mal, es posible que aparezca un error similar al siguiente:

   ```
   2021-03-05T14:34:42.731-07:00
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
   ```

## Siguientes pasos
<a name="working-dags-dependencies-next-up"></a>

Pruebe sus DAGs complementos personalizados y sus dependencias de Python localmente con [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)on GitHub.