es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error fatal de Airflow S3: No se pueden ubicar las credenciales al copiar archivos del bucket de otra compañía al nuestro.

Puedo ejecutar el siguiente comando localmente, el cual copia archivos desde el cubo de otra empresa a nuestro cubo:

aws s3 sync s3://client_export/other_company/pages/date={{ next_ds }}  s3://dev/our_company/pages

Sin embargo, al intentar ejecutar los comandos en Airflow localmente, veo el error “No se pueden encontrar las credenciales”.

Esta es mi tarea (el script contiene el comando aws que mencioné anteriormente):

files_to_s3 = BashOperator(
    task_id='get_files',
    bash_command=script,
    dag=dag)

files_to_s3
Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Airflow, le sugiero utilizar las credenciales de AWS para autenticar la tarea de Airflow con AWS CLI.

    Aquí están los pasos que puedes seguir:

    1. Primero, crea un usuario IAM con los permisos adecuados que necesitas para ejecutar los comandos anteriores.
    2. Luego, configura el ID de clave de acceso de AWS y la Clave de acceso secreta de AWS en las variables de entorno o utiliza el archivo de configuración de AWS CLI (~/.aws/credentials) para almacenar las credenciales.

    3. Después de configurar las credenciales, modifica el comando bash en la tarea files_to_s3 para incluir la opción --profile con el nombre del perfil de AWS creado en el paso 2. Por ejemplo:

      bash_command='aws s3 sync s3://client_export/other_company/pages/date={{ next_ds }} s3://dev/our_company/pages --profile my-aws-profile'
      

      Aquí, my-aws-profile debe ser reemplazado por el nombre de tu perfil de AWS.

    4. Guarda la configuración de DAG de Airflow y ejecuta el DAG. Ahora, la tarea debería ejecutarse sin problemas.

    Utilizando este método, puedes autenticar fácilmente la tarea de Airflow con AWS y transferir archivos de forma segura de un bucket de S3 a otro.

Comments are closed.