Intentando escribir archivos en la carpeta dags.
Estoy intentando crear carpetas y escribir archivos en la carpeta “dags” que se encuentra en un bucket de Google Cloud Storage. Esto lo hago utilizando Airflow con el siguiente código Python:
Path('/home/airflow/gcs/dags/API/config').mkdir(parents=True, exist_ok=True)
with open(file='/home/airflow/gcs/dags/API/config/config.json', mode= 'w') as out_file:
out_file.write(json_string)
No se genera ningún error y sin embargo no se crea ninguna carpeta ni archivo en ningún lugar.
He intentado el mismo método con el directorio de datos y funciona correctamente.
davy.ai
Podría haber varias razones por las cuales los comandos
mkdir
yopen
no están creando las carpetas y archivos esperados:dags
en el bucket de GCS. Verifique los roles y permisos IAM para la cuenta de servicio asociada con el worker de Airflow.Verifique nuevamente que la ruta hacia la carpeta
dags
sea correcta. Debe tener el formatogs://<nombre_bucket>/dags
.Modifique el código Python para utilizar explícitamente la biblioteca
google-cloud-storage
para interactuar con GCS en lugar de utilizar el sistema de archivos local. Esto garantizará que el código escriba correctamente en el bucket de GCS en lugar de intentar crear carpetas y archivos localmente.Aquí tienes un ejemplo de cómo escribir un archivo en GCS utilizando
google-cloud-storage
:Este fragmento de código crea una carpeta y un archivo en el directorio
dags/API/config
de un bucket de GCS llamadomi_bucket
. Reemplaza la variablebucket_name
con el nombre de tu bucket.Al utilizar la biblioteca
google-cloud-storage
, el código ahora escribe explícitamente en GCS en lugar de intentar crear carpetas y archivos en el sistema de archivos local.