How to pass parameter to PythonOperator in Airflow

前端 未结 2 1976
梦毁少年i
梦毁少年i 2020-12-16 12:53

I just started using Airflow, can anyone enlighten me how to pass a parameter into PythonOperator like below:

t5_send_notif         


        
2条回答
  •  悲哀的现实
    2020-12-16 13:35

    1. Pass a dict object to op_kwargs
    2. Use the keys to access their value from kwargs dict in your python callable

      def SendEmail(**kwargs):
          print(kwargs['key1'])
          print(kwargs['key2'])
          msg = MIMEText("The pipeline for client1 is completed, please check.")
          msg['Subject'] = "xxxx"
          msg['From'] = "xxxx"
          ......
          s = smtplib.SMTP('localhost')
          s.send_message(msg)
          s.quit()
      
      
      t5_send_notification = PythonOperator(
          task_id='t5_send_notification',
          provide_context=True,
          python_callable=SendEmail,
          op_kwargs={'key1': 'value1', 'key2': 'value2'},
          dag=dag,
      )
      

提交回复
热议问题