Eliminación de archivos en Amazon S3 - Amazon Managed Workflows para Apache Airflow

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.

Eliminación de archivos en Amazon S3

En esta página, se describe cómo funciona el control de versiones en un bucket de Amazon S3 para un entorno de Amazon Managed Workflows para Apache Airflow y los pasos que se deben seguir para eliminar un archivo DAG, plugins.zip o requirements.txt.

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, consulte 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.zip y las dependencias de Python en requirements.txt deben estar configurados con el acceso público bloqueado y el control de versiones activado.

Descripción general del control de versiones

Los archivos requirements.txt y plugins.zip de su bucket de Amazon S3 están versionados. Cuando se habilita el control de versiones de un bucket de Amazon S3 para un objeto y se elimina un artefacto (por ejemplo, plugins.zip) de un bucket de Amazon S3, el archivo no se elimina por completo. Cada vez que se elimina un artefacto en Amazon S3, se crea una nueva copia del archivo, que es un error 404 (Object not found)/archivo 0 k que dice “I'm not here”. Amazon S3 lo denomina marcador de eliminación. Un marcador de eliminación es una versión “nula” del archivo con un nombre de clave (o clave) y un ID de versión al igual que cualquier otro objeto.

Recomendamos borrar las versiones de los archivos y los marcadores de eliminación periódicamente para reducir los costos de almacenamiento de su bucket de Amazon S3. Para eliminar por completo las versiones de los archivos “no actuales” (anteriores), debe eliminar las versiones de los archivos y, a continuación, el marcador de eliminación de la versión.

Funcionamiento

Amazon MWAA ejecuta una operación de sincronización en su bucket de Amazon S3 cada treinta segundos. Esto hace que cualquier eliminación de DAG en un bucket de Amazon S3 se sincronice con la imagen de Airflow del contenedor de Fargate.

En el caso de los archivos plugins.zip y requirements.txt, los cambios solo tienen lugar después de una actualización del entorno, cuando Amazon MWAA crea una nueva imagen de Airflow del contenedor de Fargate con los complementos personalizados y dependencias de Python. Si elimina la versión actual de un archivo requirements.txt o plugins.zip y, a continuación, actualiza el entorno sin proporcionar una nueva versión para el archivo eliminado, se producirá un error en la actualización y aparecerá un mensaje de error, como “Unable to read version {version} of file {file}”.

Eliminación de un DAG en Amazon S3

Los archivos DAG (.py) no están versionados y se pueden eliminar directamente en la consola de Amazon S3. En los siguientes pasos, se describe cómo eliminar un DAG del bucket de Amazon S3.

Eliminación de un DAG
  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. 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 de Amazon S3.

  4. Elija la carpeta dags.

  5. Seleccione el DAG y, a continuación, Eliminar.

  6. En ¿Eliminar objetos?, escriba delete.

  7. Elija Eliminar objetos.

nota

Apache Airflow conserva el historial de ejecuciones de DAG. Después de ejecutar un DAG en Apache Airflow, este permanece en la lista de DAG de Airflow independientemente del estado del archivo, hasta que usted lo elimine de Apache Airflow. Para eliminar un DAG en Apache Airflow, pulse el botón rojo “eliminar” situado en la columna de enlaces.

Eliminación de un archivo requirements.txt o plugins.zip “actual” de un entorno

Actualmente, no se puede eliminar un archivo plugins.zip o requirements.txt de un entorno después de haberlo añadido, pero estamos trabajando para solucionar el problema. Mientras tanto, una solución alternativa es apuntar a un archivo de texto o zip vacío, respectivamente.

Eliminación de una versión “no actual” (anterior) de archivos requirements.txt o plugins.zip

Los archivos requirements.txt y plugins.zip de su bucket de Amazon S3 están versionados en Amazon MWAA. Si desea eliminar por completo estos archivos de su bucket de Amazon S3, debe recuperar la versión actual (121212) del objeto (por ejemplo, plugins.zip), eliminarla y, a continuación, borrar el marcador de eliminación de las versiones del archivo.

También puede eliminar versiones de archivos “no actuales” (anteriores) en la consola de Amazon S3; sin embargo, tendrá que borrar el marcador de eliminación mediante una de las siguientes opciones.

Uso de ciclos de vida para eliminar versiones “no actuales” (anteriores) y eliminar marcadores automáticamente

Puede configurar una política de ciclo de vida para su bucket de Amazon S3 para eliminar las versiones “no actuales” (anteriores) de los archivos plugins.zip y requirements.txt de su bucket de Amazon S3 tras un número determinado de días, o para eliminar el marcador de eliminación de un objeto vencido.

  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. En el código DAG de Amazon S3, elija su bucket de Amazon S3.

  4. Elija Crear regla de ciclo de vida.

Ejemplo de política de ciclo de vida para eliminar versiones “no actuales” de requirements.txt y eliminar marcadores automáticamente

En el siguiente ejemplo se indica cómo crear una regla de ciclo de vida que elimine permanentemente las versiones “no actuales” de un archivo requirements.txt y sus marcadores de eliminación después de treinta días.

  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. En el código DAG de Amazon S3, elija su bucket de Amazon S3.

  4. Elija Crear regla de ciclo de vida.

  5. En Nombre de la regla de ciclo de vida, escriba Delete previous requirements.txt versions and delete markers after thirty days.

  6. En Prefijo, requisitos.

  7. En Acciones de la regla del ciclo de vida, seleccione Eliminar definitivamente las versiones anteriores de los objetos y Eliminar los marcadores de eliminación vencidos o las cargas multiparte incompletas.

  8. En Número de días después de los cuales los objetos pasan a ser versiones anteriores, escriba 30.

  9. En Marcadores de eliminación de objetos vencidos, elija Eliminar marcadores de eliminación de objetos vencidos; los objetos se eliminarán permanentemente después de 30 días.

Siguientes pasos