气流设置 docker-compose

问题描述 投票:0回答:1

我继承了 Airflow 1.10.11,通过 docker-compose 在 EC2 中设置。我正在尝试使用最新版本的 Airflow 复制它,但遇到了问题。从那时起,docker-compose 发生了变化,在 yaml 文件中使用了 airflow-init 和不同的 env 变量。但是我让它在 EC2 中运行,其中包含旧 yaml 文件中的所有环境变量。接下来是尝试将 dag 文件夹连接到一个 repo,在这种情况下是 bitbucket,我从 bitbucket 中的一个 repo 进行了 git clone,webUI 能够检测到 dag 中的错误,但 dag 没有显示。我在这里有两个问题:

  1. 我如何让气流自动从回购中检测新的 dags,因为我必须手动 git pull 进入 dags 文件夹,以便 webUI 检测到 dags。

  2. 顶部的错误消息是这样的: 从 airflow.providers.amazon.aws.operators.ecs 导入 ECSOperator 导入错误:无法从“airflow.providers.amazon.aws.operators.ecs”导入名称“ECSOperator”(/home/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/operators /ecs.py) 我已执行到 webUI、调度程序和工作程序以安装 awscli、sagemaker 等,但不在 venv 中,因为无法激活它。 我需要为这个 ECSOperator 做什么?

谢谢

如上所说,我无法从互联网上找到任何帮助。

amazon-ec2 docker-compose airflow amazon-ecs repo
1个回答
0
投票

关于如何让 Airflow 从存储库中自动检测新 DAG 的第一个问题,您可以将 DAG 文件夹配置为运行 Airflow 的 Docker 容器中的挂载卷。这将确保对存储库中的 DAG 所做的任何更改都反映在 Airflow 环境中。

为此,您可以修改 Docker Compose 文件,将包含 DAG 的本地目录挂载到 Airflow 容器中。这是一个例子:

版本:'3' 服务: 空气流动: 图片:阿帕奇/气流:2.2.3 卷: - ./dags:/opt/airflow/dags # 其他配置选项...

在上面的例子中,本地目录./dags挂载到Airflow容器中的目录/opt/airflow/dags。对 ./dags 中的 DAG 文件所做的任何更改都将立即显示在 Airflow 网络用户界面中。

关于您关于 ECSOperator 导入错误的第二个问题,您的 Airflow 环境中似乎没有正确安装 airflow.providers.amazon.aws.operators.ecs 模块。以下是您可以尝试解决此问题的几个步骤:

确保您已经安装了 apache-airflow-providers-amazon 包。这个包提供了 airflow.providers.amazon.aws.operators.ecs 模块。

尝试在 Airflow 使用的虚拟环境中安装包。您提到您无法激活虚拟环境。在虚拟环境中安装包的一种方法是直接在虚拟环境中使用 pip 可执行文件。例如,如果虚拟环境位于/path/to/venv,则可以运行以下命令:

/path/to/venv/bin/pip 安装 apache-airflow-providers-amazon

如果您仍然遇到导入错误,请尝试运行 pip list 命令以查看 apache-airflow-providers-amazon 软件包是否安装在正确的虚拟环境中。确保包版本与您使用的 Airflow 版本兼容。

正确安装 ECSOperator 模块后,您应该可以在 DAG 中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.