Uso de las opciones de configuración de Apache Airflow en Amazon MWAA
Las opciones de configuración de Apache Airflow se pueden adjuntar a su entorno de Amazon Managed Workflows para Apache Airflow como variables de entorno. Puede elegir una opción de la lista desplegable sugerida o especificar opciones de configuración personalizadas para su versión de Apache Airflow en la consola Amazon MWAA. En esta página, se describen las opciones de configuración de Apache Airflow disponibles y cómo usarlas para anular los ajustes de configuración de Apache Airflow en su entorno.
Requisitos previos
Para poder llevar a cabo los pasos de esta página, necesitará lo siguiente.
-
Permisos: el administrador debe haber concedido a su Cuenta de AWS acceso a la política de control de acceso de AmazonMWAAFullConsoleAccess para su entorno. Además, su rol de ejecución debe permitir que su entorno de Amazon MWAA acceda a los recursos de AWS 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.
-
Configuración de Amazon S3: el bucket de Amazon S3 que se utiliza para almacenar los DAG, los complementos personalizados en
plugins.zipy las dependencias de Python enrequirements.txtdeben estar configurados con el acceso público bloqueado y el control de versiones activado.
Funcionamiento
Al crear un entorno, Amazon MWAA adjunta los ajustes de configuración que usted especifique en la consola Amazon MWAA en las opciones de configuración de Airflow como variables de entorno al contenedor AWS Fargate de su entorno. Si utiliza una configuración con el mismo nombre en airflow.cfg, las opciones que especifique en la consola Amazon MWAA anularán los valores incluidos en airflow.cfg.
Si bien no exponemos el airflow.cfg en la interfaz de usuario de Apache Airflow de un entorno de Amazon MWAA de manera predeterminada, puede cambiar las opciones de configuración de Apache Airflow directamente en la consola de Amazon MWAA, incluida la configuración de webserver.expose_config para exponer las configuraciones.
Uso de las opciones de configuración para cargar complementos
De forma predeterminada, en Apache Airflow v2 y versiones posteriores, los complementos se configuran para que se carguen de forma “lenta” mediante la configuración core.lazy_load_plugins : True. Si usa complementos personalizados, debe agregar core.lazy_load_plugins : False como opción de configuración de Apache Airflow para cargar los complementos al inicio de cada proceso de Airflow y anular la configuración predeterminada.
Información general de las opciones de configuración
Cuando agrega una configuración en la consola Amazon MWAA, Amazon MWAA escribe la configuración como una variable de entorno.
-
Opciones enumeradas. Puede elegir uno de los ajustes de configuración disponibles para su versión de Apache Airflow en la lista desplegable. Por ejemplo,
dag_concurrency:16. El ajuste de configuración se traduce al contenedor de Fargate de su entorno comoAIRFLOW__CORE__DAG_CONCURRENCY : 16 -
Opciones personalizadas. También puede especificar las opciones de configuración de Airflow que no aparecen en la lista desplegable para su versión de Apache Airflow. Por ejemplo,
foo.user:YOUR_USER_NAME. El ajuste de configuración se traduce al contenedor de Fargate de su entorno comoAIRFLOW__FOO__USER : YOUR_USER_NAME
Opciones de configuración de Apache Airflow
En la siguiente imagen, se muestra dónde puede personalizar las opciones de configuración de Apache Airflow en la consola Amazon MWAA.
Referencia de Apache Airflow
Para obtener una lista de las opciones de configuración compatibles con Apache Airflow, consulte la referencia de configuración
Uso de la consola de Amazon MWAA
A continuación, se explican los pasos que debe seguir para añadir una opción de configuración de Apache Airflow a su entorno.
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija Editar.
-
Elija Siguiente.
-
Seleccione Agregar configuración personalizada en el panel Opciones de configuración de Airflow.
-
En la lista desplegable, elija una opción de configuración e introduzca un valor. También puede escribir una configuración personalizada e introducir un valor.
-
Seleccione Agregar configuración personalizada para cada configuración que desee agregar.
-
Seleccione Save.
Referencia de la configuración
La siguiente sección contiene la lista de configuraciones de Apache Airflow disponibles en la lista desplegable de la consola de Amazon MWAA.
Configuración de correo electrónico
En la siguiente lista, se muestran las opciones de configuración de las notificaciones por correo electrónico de Airflow que están disponibles en Amazon MWAA para Apache Airflow v2 y v3.
Recomendamos utilizar el puerto 587 para el tráfico SMTP. De forma predeterminada, AWS bloquea el tráfico SMTP de salida en el puerto 25 de todas las instancias de Amazon EC2. Si desea enviar tráfico saliente por el puerto 25, solicite que se elimine esta restricción
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
email.email_backend |
La utilidad Apache Airflow utilizada para las notificaciones por correo electrónico en email_backend |
airflow.utils.email.send_email_smtp |
|
smtp.smtp_host |
El nombre del servidor saliente utilizado como dirección de correo electrónico en smtp_host |
localhost |
|
smtp.smtp_starttls |
La seguridad de la capa de transporte (TLS) se usa para cifrar el correo electrónico a través de Internet en smtp_starttls |
False |
|
smtp.smtp_ssl |
Se usa la capa de sockets seguros (SSL) para conectar el servidor y el cliente de correo electrónico en smtp_ssl |
True |
|
smtp.smtp_port |
El puerto de protocolo de control de transmisión (TCP) designado al servidor en smtp_port |
587 |
|
smtp.smtp_mail_from |
La dirección de correo electrónico saliente en smtp_mail_from |
myemail@domain.com |
Configuración de tareas
En la siguiente lista, se muestran las configuraciones disponibles en la lista desplegable para las tareas de Airflow en Amazon MWAA para Apache Airflow v2 y v3.
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
core.default_task_retries |
El número de veces que se debe volver a intentar una tarea de Apache Airflow en default_task_retries |
3 |
|
core.parallelism |
El número máximo de instancias de tareas que se pueden ejecutar simultáneamente en todo el entorno en paralelo (paralelismo |
40 |
Configuraciones del programador
En la siguiente lista, se muestran las configuraciones del programador de Apache Airflow que están disponibles en el menú desplegable de Amazon MWAA para Apache Airflow v2 y v3.
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
scheduler.catchup_by_default |
Indica al programador que cree una ejecución de DAG para “alcanzar” el intervalo de tiempo específico de catchup_by_default |
False |
|
scheduler.scheduler_zombie_task_threshold notaNo está disponible en Apache Airflow v3. |
Indica al programador si debe marcar la instancia de la tarea como fallida y volver a programarla en scheduler_zombie_task_threshold |
300 |
Configuraciones del proceso de trabajo
En la siguiente lista, se muestran las configuraciones del proceso de trabajo de Airflow que están disponibles en el menú desplegable de Amazon MWAA para Apache Airflow v2 y v3.
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
celery.worker_autoscale |
El número máximo y mínimo de tareas que se pueden ejecutar simultáneamente en cualquier proceso de trabajo que utilice el Celery Executor |
16,12 |
Configuraciones del servidor web
En la siguiente lista, se muestran las configuraciones del servidor web de Apache Airflow que están disponibles en el menú desplegable de Amazon MWAA para Apache Airflow v2 y v3.
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
webserver.default_ui_timezone notaNo está disponible en Apache Airflow v3. |
La configuración de fecha y hora de la interfaz de usuario de Apache Airflow predeterminada en default_ui_timezone notaSi se configura la opción |
America/New_York |
Configuraciones del desencadenador
En la siguiente lista, se muestran las configuraciones del desencadenador
| Opción de configuración de Airflow | Descripción | Ejemplo de valor |
|---|---|---|
|
mwaa.triggerer_enabled |
Se utiliza para activar y desactivar el desencadenador en Amazon MWAA. De forma predeterminada, este valor se establece en |
True |
|
triggerer.default_capacity (en la versión 2) triggerer.capacity (en la versión 3) |
Define el número de desencadenamientos que cada desencadenador puede ejecutar en paralelo. En Amazon MWAA, esta capacidad se establece para cada desencadenador y para cada programador, ya que ambos componentes funcionan juntos. El valor predeterminado para cada programador es |
125 |
Ejemplos y código de ejemplo
Ejemplo de DAG
Puede usar el siguiente DAG para imprimir las opciones de configuración email_backend de Apache Airflow. Para ejecutarlo en respuesta a eventos de Amazon MWAA, copie el código en la carpeta DAG de su entorno en su bucket de almacenamiento de Amazon S3.
from airflow.decorators import dag from datetime import datetime def print_var(**kwargs): email_backend = kwargs['conf'].get(section='email', key='email_backend') print("email_backend") return email_backend @dag( dag_id="print_env_variable_example", schedule_interval=None, start_date=datetime(yyyy,m,d), catchup=False, ) def print_variable_dag(): email_backend_test = PythonOperator( task_id="email_backend_test", python_callable=print_var, provide_context=True ) print_variable_test = print_variable_dag()
Ejemplo de configuración de las notificaciones por correo electrónico
Las siguientes opciones de configuración de Apache Airflow se pueden utilizar para una cuenta de correo electrónico de Gmail.com con una contraseña de aplicación. Para obtener más información, consulte Cómo iniciar sesión con contraseñas de aplicaciones
Siguientes pasos
-
Obtenga información sobre cómo cargar la carpeta de DAG a su bucket de Amazon S3 en Cómo añadir o actualizar DAG.