değişkenine erişmeniz gerekiyor Bu forumda gerçekten yeni bir kullanıcıyım. Ama şirketimiz için bir süredir hava akışıyla oynuyordum. Üzgünüm bu soru gerçekten aptalca geliyorsa.Hava akışında execution_date:
BashOperators grubunu kullanarak bir boru hattı yazıyorum.
from airflow import DAG
from airflow.operators import BashOperator, PythonOperator
from dateutil import tz
import datetime
datetime_obj = datetime.datetime
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime.datetime.combine(datetime_obj.today() - datetime.timedelta(1), datetime_obj.min.time()),
'email': ['[email protected]'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 2,
'retry_delay': datetime.timedelta(minutes=5),
}
current_datetime = datetime_obj.now(tz=tz.tzlocal())
dag = DAG(
'test_run', default_args=default_args, schedule_interval=datetime.timedelta(minutes=60))
curl_cmd='curl -XPOST "'+hostname+':8000/run?st='+current_datetime +'"'
t1 = BashOperator(
task_id='rest-api-1',
bash_command=curl_cmd,
dag=dag)
ben current_datetime= datetime_obj.now(tz=tz.tzlocal())
yapıyorum fark ederseniz: Temelde, her Görev için, ben sadece 'curl'
Bu benim boru hattı (çok basitleştirilmiş sürümü) neye benzediği kullanarak REST API aramak istediğiniz yerine benim burada istiyorum olduğunu 'execution_date' ı doğrudan 'execution_date' kullanmak ve bir değişkene atamak nasıl
i n python dosyam?
Bu genel erişim yayma sorununu yaşıyorum. Herhangi bir yardım gerçekten takdir edilecektir.
Teşekkür
Teşekkür yürütmek() yöntemi içinde olmalıdır. Bu yaklaşımla, bir pythonOperator örneğidir, yani cost_datetime = 'execution_date' ayarlayacağım ve döndüreceğim kwargs ['execution_date'] 'i kullanmamı sağlayan allow_context = true ile bir görev t1'im olacaktır. Sonra görevimi oluşturuyorum t2: BashOperator: içinde (XCOM kullanarak) çekip değişkenlerimi kullanacağım. Yani görüyorsunuz, 2 görev oluşturmalıyım. hangi seksi değil;) Eminim (ve umarım haklıyım) PythonOperator kullanmadan doğrudan python koduna 'execution_date' erişebileceğim bir yol var. Ama nasıl yapılacağını anlayamıyorum :( – Roger
bu yaklaşım benim için çözdü! – Nico