新安装的 Airflow 提供程序不会显示在 Web UI 中

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

我正在使用 MWAA,当我通过

requirements.txt
添加新的提供程序时,它们不会显示在“Airflow - 管理 > 提供程序”UI 中,而安装在 MWAA 实例上的默认提供程序则显示得很好。

示例:

  1. 我将
    apache-airflow-providers-databricks==2.0.2
    添加到
    requirements.txt
  2. 上传至MWAA S3存储桶
  3. 等待实例重启
  4. 成功运行测试 DAG 以确保提供程序安装正确。

结果: 所有这些之后,这是“管理 > 提供商”选项卡:

enter image description here

我只是希望能够轻松查看所有已安装的提供程序。任何建议表示赞赏。

airflow provider directed-acyclic-graphs airflow-2.x mwaa
3个回答
0
投票

所以看来这实际上是内部 VPC 问题。我当时认为这不相关,但是当我运行公共(与私有)实例时,我没有遇到同样的问题。


0
投票

我也有同样的问题。正如 @theNewfelll 所说,这似乎是公共 VPC 与私有 VPC 的问题。

问题是,如果您在“监控”部分启用气流调度程序日志记录(编辑和更新环境),您可以看到如下整体:

Installing collected packages: slack-sdk, apache-airflow-providers-slack

Successfully installed apache-airflow-providers-slack-5.0.0 slack-sdk-3.19.1

因此,不存在未安装提供程序的任何错误,它只是没有显示在下拉列表中,因此您无法创建该连接。

问题是私有 VPC 的私有 Web 服务器没有互联网连接 - 遗憾的是日志没有给出错误而不是显示成功。

解决方案是下载 pip3 软件包(本例中为 slack):

pip3 download apache-airflow-providers-slack==5.0.0

获得 .whl 文件后,更改权限

chmod -R 755
(-R = 文件内的层次结构,而不仅仅是文件),然后将其压缩 (
zip -r plugins.zip .
),与任何其他插件一起放入名为plugins 的文件中。压缩。将此上传到您的 MWAA。

requirements.txt 文件需要采用以下形式:

/usr/local/airflow/plugins/apache_airflow_providers_slack-5.0.0-py3-none-any.whl

由于没有互联网访问权限,插件将被复制到 Scheduler 和 Worker 文件系统上的插件文件夹中。


0
投票

我在尝试安装时遇到了同样的问题

apache-airflow-providers-mysql

首先,我尝试将其直接添加到位于我的 S3 存储桶中的requirements.txt 文件中——但这不起作用(如本文所述)。

破碎

requirements.txt

--find-links /usr/local/airflow/plugins
--no-index
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.8.1/constraints-3.11.txt"

/usr/local/airflow/plugins/apache_airflow_providers_mysql-5.5.1-py3-none-any.whl

根据调度程序日志(Cloudwatch

requirements_install_ip-*.log
),提供程序的安装看起来很好,但网络服务器中不会显示任何内容(具体来说,我正在检查提供程序页面和连接页面,看看是否可以创建 mysql 连接).

我最终发现网络服务器也有

requirements_install_ip-*.log
日志,这些日志包含一个错误,最终引导我找到了解决方案:

ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443):
Max retries exceeded with url: /apache/airflow/constraints-2.8.1/constraints-3.10.txt
(Caused by ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f601f89e090>, 'Connection to raw.githubusercontent.com timed out. (connect timeout=15)'))

因此,我删除了

--constraint
行,网络服务器提供程序安装工作正常,并且提供程序立即出现在网络服务器中:

工作

requirements.txt

--find-links /usr/local/airflow/plugins
--no-index

/usr/local/airflow/plugins/apache_airflow_providers_mysql-5.5.1-py3-none-any.whl

MWAA 文档对此有以下说法:

从 Apache Airflow v2.7.2 开始,您的需求文件必须包含 --constraint 语句。如果您不提供约束,Amazon MWAA 将为您指定一个约束,以确保您的要求中列出的软件包与您正在使用的 Apache Airflow 版本兼容。

这不是一个令人满意的解决方案,但它确实对我有用,而且由于 MWAA 似乎确实有某种备份约束机制,所以它必须这样做。

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