AWS MWAA 导入自定义插件本地与线上路径不兼容问题咨询
AWS MWAA 自定义插件导入路径兼容方案
核心原因
本地Airflow环境默认将plugins目录加入了Python模块搜索路径(PYTHONPATH),而AWS MWAA的默认搜索路径仅包含S3桶的DAGS根目录、以及plugins.zip解压后的根目录,你之前的S3结构和plugins打包方式不符合MWAA的路径规则,因此导入路径和本地不一致。
兼容本地导入格式的操作步骤
调整plugins.zip打包规则
不要直接打包整个plugins文件夹,进入本地airflow-project/plugins目录后,选中目录下所有内容(包含__init__.py、operators文件夹等)打包为zip,解压后的zip结构如下:
├── __init__.py └── operators ├── __init__.py └── customoperator.py
调整S3文件结构
将打包好的plugins.zip上传到S3桶根目录,DAG文件直接上传到S3桶的DAGS根目录即可,最终S3结构如下:
s3://{my-bucket-name} ├── DAGS │ └── dag1.py └── plugins.zip
确认MWAA环境配置
进入MWAA环境配置页,确认Plugins path参数已设置为s3://{my-bucket-name}/plugins.zip,修改配置后需要等待约10-20分钟环境更新完成后生效。
生效验证
环境更新完成后,即可直接使用和本地一致的导入语句from operators import customOperators调用自定义Operator,无需添加plugins.前缀。
常见排查点
- MWAA运行环境为Linux,对文件名、类名的大小写敏感,需确保导入语句的拼写、大小写和实际文件、类名完全一致
- 不要在S3的
DAGS目录下再嵌套dags或者plugins子目录,避免路径层级异常导致模块无法识别
内容的提问来源于stack exchange,提问作者Tal Meridor
相关产品推荐
相关产品推荐

