Изменение разрешений на файлы bash в Airflow Composer

Мы запускаем Airflow в Google Cloud Composer.

У меня есть сценарий bash, который вызывается в BashOperator моего DAG:

split_files = BashOperator(
    task_id='split_gcp_files',
    bash_command='/home/airflow/gcs/dags/file_splitter.sh ',
    xcom_push=True,
    depends_on_past=True,
    dag=dag
)

Однако когда я запускаю это, я получаю следующую ошибку:

[2021-06-17 18:24:13,330] {bash_operator.py:137} INFO - Temporary script location: /tmp/airflowtmp8dsdf38/split_gcp_filesah83sdf
[2021-06-17 18:24:13,330] {bash_operator.py:147} INFO - Running command: /home/airflow/gcs/dags/file_splitter.sh 
[2021-06-17 18:24:13,472] {bash_operator.py:154} INFO - Output:
[2021-06-17 18:24:13,475] {bash_operator.py:158} INFO - /tmp/airflowtmp8dsdf38/split_gcp_filesoofibpg7: line 1: /home/airflow/gcs/dags/file_splitter.sh: Permission denied

File_splitter.sh был скопирован в ведро GCS, но я не уверен, где находится файл для Airflow, чтобы изменить разрешения? Например. где мне найти "/ home / airflow / gcs / dags /"?

Я пробовал подключаться по SSH к узлам Kubernetes, но не смог найти этот путь или, возможно, у меня нет разрешения?


person csukcl    schedule 18.06.2021    source источник


Ответы (1)


Изменение команды bash на это сработало, есть идеи, почему ?:

bash_command='bash /home/airflow/gcs/dags/file_splitter.sh '
person csukcl    schedule 18.06.2021
comment
Причина в том, что у вас нет прав на выполнение скрипта. При использовании bash вам нужны только права на чтение, поэтому вы не получите Permission denied ошибку. См. unix.stackexchange.com/questions/203371/ для получения дополнительных сведений и контекста. - person Felix L.; 21.06.2021