【发布时间】:2022-06-24 17:22:10
【问题描述】:
我正在使用 AWS 的 MWAA service (2.2.2) 运行各种 DAG,其中大部分是使用标准 PythonOperator 类型实现的。我将 DAG 与任何共享需求一起捆绑到 S3 存储桶中,然后将 MWAA 指向相关对象和版本。到目前为止一切顺利。
我现在想使用 PythonVirtualenvOperator 类型实现 DAG,AWS 确认不支持开箱即用。我正在关注their guide,了解如何使用自定义插件修补行为,但继续收到来自 Airflow 的错误,显示在仪表板顶部以大红色字体显示:
DAG 导入错误 (1) …… AirflowException: PythonVirtualenvOperator 需要 virtualenv,请安装。
我已经确认该插件确实被 Airflow 拾取(我在管理屏幕中看到它引用了它),为避免疑问,我使用 AWS 在他们的 DAG 示例中提供的确切代码。 AWS 在这方面的文档非常简单,我还没有偶然发现任何社区讨论。
根据 AWS 的文档,我们希望插件在启动时运行,然后再处理任何 DAG。该插件本身似乎有效地重写了 venv 命令以使用 pip 安装的版本,而不是安装在机器上的版本,但是我一直在努力验证事情是否按照我期望的顺序发生。非常感谢任何有关调试实例行为的指针。
有人遇到过类似的问题吗? MWAA 文档中是否存在需要解决的空白?我是否遗漏了一些非常明显的东西?
可能相关,但我确实在调度程序的日志中看到此警告,这可能表明 MWAA 为何难以解决依赖关系?
警告:脚本 virtualenv 安装在 '/usr/local/airflow/.local/bin' 中,它不在 PATH 上。
【问题讨论】:
-
以下答案正确,请打勾采纳
标签: python amazon-web-services airflow virtualenv mwaa