气流:将信息传递给下一个任务(传感器)

时间:2017-01-20 01:42:14

标签: python airflow aws-batch

(我知道this question但它已经足够老了我现在要求更新答案了。)

我正在为AWS Batch for Airflow编写插件,在通过AWSBatchOperator运算符将作业提交到Batch之后,我需要一种方法等待作业完成并通知Airflow。我正在为此编写传感器,因为它似乎是处理它的合适方式。

但是,当AWSBatchOperator在AWS Batch中创建作业时,需要将该作业ID提交给Sensor,以便传感器知道要检查的作业。有没有简单的方法将信息从已完成的任务传递到其依赖任务?我知道XCom,但考虑到这种情况的简单性以及我认为这是传感器的常见问题,它看起来有点矫枉过正。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您将信息从一个任务传递到下一个XCOM是唯一的方法(我在Airflow中知道)。或者除非先前的任务写入某个外部系统(消息队列,kafka缓冲区,s3存储桶等),后续步骤(传感器)检查外部值是否被触发。

答案 1 :(得分:0)

您可以将作业ID放入SQS队列和trigger a AWS lambda function中。 lambda函数可以依次trigger相应的DAG任务