AWS Managed Airflow 将文件夹上传到 MWAA 环境

tar*_*raf 6 amazon-web-services airflow mwaa

我将开始使用 AWS 管理的气流。为了让托管气流访问 dags,我需要将代码上传到 s3 存储桶中的 dags/ 目录,MWAA 将会拾取它。

但是,在我的代码库中,我在其他目录中有代码,例如,目录tasks/。问题是当我上传tasks文件夹上传到 s3 存储桶时,mwaa 不会拾取它们,并且我的 dag 出现导入错误。

AWS 文档没有为此提供任何指导。我想知道以前是否有人这样做过?或者我必须将所有代码上传到该dags/文件夹​​中吗?

Eme*_*son 0

我们使用 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 中插件位置中指定的位置