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
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 Amazon Managed Workflows for Apache Airflow. En este tema se describen los pasos para instalar las dependencias de Python de Apache Airflow en su entorno de Amazon MWAA mediante un archivo de requirements.txt
su bucket de Amazon S3.
Contenido
Requisitos previos
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 para tu entorno. Además, su rol de ejecución debe permitir que su entorno Amazon MWAA acceda a los AWS recursos que utiliza su entorno.
-
Acceso: si necesita acceder a los repositorios públicos para instalar las dependencias directamente en el servidor web, su entorno debe estar configurado con acceso al servidor web de la red pública. Para obtener más información, consulta Modos de acceso de Apache Airflow.
-
Configuración de Amazon S3: el bucket de Amazon S3 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. DAGsplugins.zip
Funcionamiento
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:
-
Cree un archivo
requirements.txt
local. -
Cargue el
requirements.txt
local en su bucket de Amazon S3. -
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
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
El programador de Apache Airflow y los trabajadores buscan los paquetes en el requirements.txt
archivo 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
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
-
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. Esto le permite ejecutar un entorno Apache Airflow local para desarrollar y probar DAGs complementos personalizados y dependencias antes de implementarlos en Amazon MWAA.
-
Para ejecutar la CLI, consulte aws-mwaa-docker-images
on GitHub.
Paso dos: crear el requirements.txt
La siguiente sección describe cómo especificar las dependencias de Python desde el Python Package Indexrequirements.txt
.
Cómo cargar requirements.txt
a Amazon S3
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
The AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que le permite 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:
Para cargar mediante el AWS CLI
-
Use el siguiente comando para obtener una lista de todos los buckets de Amazon S3.
aws s3 ls
-
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
-
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
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
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Seleccione el enlace del depósito de S3 en el panel de códigos del DAG en S3 para abrir el depósito de almacenamiento en la consola.
-
Seleccione Cargar.
-
Elija Añadir archivo.
-
Seleccione la copia local de su
requirements.txt
, elija Cargar.
Instalación de dependencias de Python en su entorno
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)
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.
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija Editar.
-
En el panel Código DAG en Amazon S3, seleccione Browse S3 junto al campo Archivo de requisitos: opcional.
-
Seleccione el archivo
requirements.txt
en su bucket de Amazon S3. -
Seleccione Elegir.
-
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
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.
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija Editar.
-
En el panel Código de DAG en Amazon S3, elija una versión de
requirements.txt
de la lista desplegable. -
Seleccione Siguiente, Actualizar entorno.
Puede empezar a usar los nuevos paquetes inmediatamente después de que su entorno termine de actualizarse.
Acceder a los registros de su requirements.txt
Puede ver los registros de Apache Airflow para que el programador programe sus flujos de trabajo y analice su carpeta. 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
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija el Grupo de registro del programador de Airflow en el panel de Monitorización.
-
Seleccione el registro
requirements_install_ip
en los flujos de registro. -
Consulte la lista de paquetes que se instalaron 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))
-
Consulte la lista de paquetes y compruebe si se produjo algún error en alguno de ellos durante la instalación. Si algo ha ido mal, es posible que se produzca 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
Pruebe sus DAGs complementos personalizados y sus dependencias de Python localmente con aws-mwaa-docker-images