簡體   English   中英

基本 DAG 問題 - Bash 命令在終端中運行而不是 Airflow

[英]Basic DAG Issues - Bash Command Runs in Terminal and Not Airflow

我試圖在 Airflow 中運行這個 DAG,目的是自動化一些 python 腳本。 為了測試它,我正在運行一個超級簡單的.py,如下所示。

在 Astro_Projects 目錄中的 linux 終端中運行“python3 /home/j/git/J/Code_Modules/TEST.py”時,它工作得很好。 不過似乎不會在 DAG 中運行。

日志文件返回“沒有這樣的文件或目錄”。 .py 腳本位於我的“Code_Modules”文件夾中,而 DAG 位於我的“Astro_Projects”文件夾中,如下所示:

在此處輸入圖像描述

我對此很陌生,因此非常感謝任何幫助。 謝謝

#%%
import os
from datetime import datetime, timedelta
from airflow.models import DAG, Variable
from airflow.operators.bash_operator import BashOperator

# DAG Settings
args = {
    'owner': 'J',
    'start_date': datetime(2022, 9, 14),
    'retries': 1,
    'retry_delay': timedelta(minutes=1),
    'dagrun_timeout': timedelta(minutes=15),
    'email_on_failure': True,
    'email_on_retry': False,
    'catchup': False
}

dag = DAG(
    dag_id='TEST_DAG',
    default_args=args,
    schedule_interval='0 6 * * *',
    tags=['Prod','TEST']
)

send_reports = BashOperator(
    task_id='TEST',
    bash_command='python3 /home/j/git/J/Code_Modules/TEST.py',
    dag=dag
)

# %%

“TEST.py”就是這樣:

import os
print('thisworked')

使用相對路徑:

send_reports = BashOperator(
    task_id='TEST',
    bash_command='python3 ../Code_Modules/TEST.py',
    dag=dag
)

但使用 PythonOperator 執行 python 函數更有意義,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM