使从 S3 和 post 读取的气流松弛?
Make airflow read from S3 and post to slack?
我有一个要求,我希望我的 airflow 作业从 S3 读取一个文件并且 post 它的内容松弛。
背景
目前,airflow 作业有一个 S3 密钥传感器,它等待文件被放入 S3 位置,如果该文件没有在规定的时间内出现,它就会失败并将错误消息推送到 slack。
现在需要做什么
如果 airflow 作业成功,它需要检查另一个 S3 位置,如果文件存在,则将其内容推送到 slack。
这个用例是否可以使用气流?
您已经知道工作流程的第一步必须是 S3KeySensor
至于后面的步骤,看你的意思..it needs to check another S3 location and if file there exists,..
,go可以按照下面的方式去做
步骤 1
一个。如果另一个S3位置的文件也应该出现在那里,那么你当然需要另一个S3KeySensor
b。否则,如果预期该其他文件存在(或不存在,但不需要等待某个时间出现),我们使用 [=14] 的 check_for_key(..)
函数检查该文件是否存在=](这可以在一个简单的 PythonOperator
的 python_callable
内完成/您在步骤 2 中使用的任何其他自定义运算符)
步骤 2
到目前为止,已确定第二个文件存在于预期位置(否则我们不会走到这一步)。现在你只需要使用 read_key(..)
function. After this you can push the contents to Slack using call(..)
function of SlackHook
. You might have an urge to use SlackApiOperator
, (which you can, of course) but still reading the file from S3 and sending contents to Slack should be clubbed into single task. So you are better off doing these things in a generic PythonOperator
by employing the same hooks
that are used by the native operators also
读取这个文件的内容
我有一个要求,我希望我的 airflow 作业从 S3 读取一个文件并且 post 它的内容松弛。
背景
目前,airflow 作业有一个 S3 密钥传感器,它等待文件被放入 S3 位置,如果该文件没有在规定的时间内出现,它就会失败并将错误消息推送到 slack。
现在需要做什么
如果 airflow 作业成功,它需要检查另一个 S3 位置,如果文件存在,则将其内容推送到 slack。
这个用例是否可以使用气流?
您已经知道工作流程的第一步必须是 S3KeySensor
至于后面的步骤,看你的意思..it needs to check another S3 location and if file there exists,..
,go可以按照下面的方式去做
步骤 1
一个。如果另一个S3位置的文件也应该出现在那里,那么你当然需要另一个
S3KeySensor
b。否则,如果预期该其他文件存在(或不存在,但不需要等待某个时间出现),我们使用 [=14] 的
check_for_key(..)
函数检查该文件是否存在=](这可以在一个简单的PythonOperator
的python_callable
内完成/您在步骤 2 中使用的任何其他自定义运算符)步骤 2
到目前为止,已确定第二个文件存在于预期位置(否则我们不会走到这一步)。现在你只需要使用
read_key(..)
function. After this you can push the contents to Slack usingcall(..)
function ofSlackHook
. You might have an urge to useSlackApiOperator
, (which you can, of course) but still reading the file from S3 and sending contents to Slack should be clubbed into single task. So you are better off doing these things in a genericPythonOperator
by employing the samehooks
that are used by the native operators also 读取这个文件的内容