tar*_*raf 6 amazon-web-services airflow mwaa
我将开始使用 AWS 管理的气流。为了让托管气流访问 dags,我需要将代码上传到 s3 存储桶中的 dags/ 目录,MWAA 将会拾取它。
但是,在我的代码库中,我在其他目录中有代码,例如,目录tasks/。问题是当我上传tasks文件夹上传到 s3 存储桶时,mwaa 不会拾取它们,并且我的 dag 出现导入错误。
AWS 文档没有为此提供任何指导。我想知道以前是否有人这样做过?或者我必须将所有代码上传到该dags/文件夹中吗?
我们使用 Airflow 版本 1.10 为 MWAA 所做的就是,无论我们编写的需要在 dags 中使用的自定义代码,都会作为插件添加。目前,您只能根据您指定的 s3 文件夹/密钥部署 dags。我们将自定义代码放在一个单独的文件夹中,然后将其压缩并将 mwaa 配置为插件位置。
我不确定您的任务文件夹包含什么以及它有什么样的代码,但下面是我们的代码结构的示例。
src
------> dags (dir)
----------> dag1.py
----------> dag2.py
----------> dag3.py
-------> plugins(dir)
----------> __init__.py
----------> common (dir)
-----> __init__.py
-----> something.py
-----------> hooks (dir)
----> __init__.py
---> somehook.py
------------>operators(dir)
----> __init__py
----> op1.py
----> op2.py
Run Code Online (Sandbox Code Playgroud)
使用上述结构,dags 按原样部署在 dags 文件夹中插件文件夹被完全压缩并上传到 s3 中 mwaa 中插件位置中指定的位置