首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon Managed Airflow (MWAA)导入自定义插件

Amazon Managed Airflow (MWAA)导入自定义插件
EN

Stack Overflow用户
提问于 2021-09-22 11:01:41
回答 2查看 447关注 0票数 2

我正在设置AWS MWAA实例,导入自定义插件时遇到问题。

我的本地项目结构如下所示:

代码语言:javascript
复制
airflow-project
├── dags 
│   └── dag1.py  
└── plugins
    ├── __init__.py
    └── operators
        ├── __init__.py
        └── customopertaor.py

我尝试在s3存储桶中匹配此结构:

代码语言:javascript
复制
s3://{my-bucket-name}
└── DAGS
    ├── dags 
    │   └── dag1.py  
    └── plugins
        ├── __init__.py
        └── operators
            ├── __init__.py
            └── customopertaor.py

但是,当我在本地项目上使用自定义操作符时,导入的工作方式如下所示-

代码语言:javascript
复制
from operators import customOperators

在MWAA上,它只识别像这样的进口-

代码语言:javascript
复制
from plugins.operators import customOperators

有没有办法让MWAA将导入识别为本地(从运算符)?我应该以某种方式将文件上传到s3吗?

我还试图上传一个plugins.zip文件,但没有成功:

代码语言:javascript
复制
s3://{my-bucket-name}
├── DAGS
│   └── dags 
│       └── dag1.py  
└── plugins.zip
EN

回答 2

Stack Overflow用户

发布于 2021-10-14 13:58:02

我认为正确的方法是将您的自定义python模块放在plugin.zip文件中。此文件将上载到MWAA并解压到/usr/local/airflow/plugins/。我相信DAG放在同一个文件夹中。

亚马逊网络服务已经发布了一个User Guide,给出了一些很好的解释和例子。

票数 0
EN

Stack Overflow用户

发布于 2021-10-18 20:19:10

我也有同样的问题,我通过查看我的.zip文件解决了这个问题。在我的例子中,.zip文件内部的结构创建了一个名为plugins的额外文件夹。使用unzip -l plugins.zip查看并查看生成的树。这是我的工作结构:

代码语言:javascript
复制
Archive:  plugins.zip
Length      Date    Time    Name
    0  10-18-2021 11:39   hooks/
  125  10-18-2021 11:40   hooks/my_airflow_hook.py
    0  10-18-2021 11:40   sensors/
  359  10-18-2021 11:40   sensors/my_airflow_sensor.py
  395  10-18-2021 13:28   my_airflow_plugin.py
    0  10-18-2021 11:42   operators/
  437  10-18-2021 11:42   operators/hello_operator.py
  480  10-18-2021 11:42   operators/my_airflow_operator.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69282908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档