如何在我的 Amazon MWAA 环境中安装自定义软件包?

1 分钟阅读
0

我想在 Amazon Managed Workflows for Apache Airflow(Amazon MWAA)环境中使用 plugins.zip 安装自定义软件包。

简短描述

使用 requirements.txt 和 plugins.zip 文件在 Amazon MWAA 中安装 Python 库。当您使用 requirements.txt 文件安装软件包时,默认情况下这些软件包是从 Python 包索引(来自 PyPI 网站)安装的。如果您需要发送带有已编译构件的库(.whl 文件),则可以使用 plugins.zip 文件安装这些 Python wheel。

使用 plugins.zip 文件安装自定义 Apache Airflow 运算符、钩子、传感器或接口。此文件写在后端 Amazon ECS Fargate 容器中,位置为 /usr/local/airflow/plugins/。插件还可用于导出环境变量以及身份验证和配置文件,例如 .crt.yaml

解决方法

使用 Python Wheel 安装库

Python wheel 是一个包含已编译构件的软件包文件。您可以通过将(.whl)文件放在 plugins.zip 中,然后在 requirements.txt 中引用此文件来安装此软件包。如果您在将 .whl 文件添加到 plugins.zip 后更新环境,则 .whl 将被运送到位置 /usr/local/airflow/plugins/。此位置位于底层 Amazon Elastic Container Service(Amazon ECS)Fargate 容器中。

要使用 Python Wheel 安装库,请参阅如何在我的 Amazon MWAA 环境中安装库?

安装自定义运算符、钩子、传感器或接口

Amazon MWAA 支持 Apache Airflow 的内置插件管理器,允许您使用自定义 Apache Airflow 运算符、钩子、传感器或接口。这些自定义插件可以使用平面目录结构和嵌套目录结构放在 plugins.zip 文件中。有关自定义插件的示例,请参阅自定义插件示例

创建自定义插件以生成运行时环境变量

您还可以创建自定义插件,以便在您的 Amazon MWAA 环境中运行时生成环境变量。然后,您可以在有向无环图(DAG)代码中使用这些环境变量。有关详细信息,请参阅创建自定义插件来生成运行时系统环境变量

导出 PEM、.crt 和配置文件

如果您不需要在环境运行期间持续更新特定文件,则可以使用 plugins.zip 来发送这些文件。此外,您还可以放置不需要向写入 DAG 的用户授予访问权限的文件。这些文件包括证书(.crt)文件、PEM 文件和配置 YAML 文件。将这些文件压缩到 plugins.zip 中后,将 plugins.zip 上载到 S3,然后更新环境。复制这些文件时需要具有 /usr/local/airflow/plugins 的访问权限。

要将自定义 CA 证书压缩到 plugins.zip 文件中,请运行以下命令:

$ zip plugins.zip ca-certificates.crt

该文件现在位于 /usr/local/airflow/plugins/ca-certificates.crt。要将 kube_config.yaml 压缩到 plugins.zip 文件中,请运行以下命令:

$ zip plugins.zip kube_config.yaml

该文件现在位于 /usr/local/airflow/plugins/kube_config.yaml

对安装过程进行故障排除

如果您在安装这些软件包的过程中遇到问题,可以使用 aws-mwaa-local-runner 在本地测试您的 DAG、自定义插件和 Python 依赖项。

要解决使用 plugins.zip 文件安装 Python 软件包的问题,可以在 Apache Airflow Worker 或调度器日志组中查看日志文件(requirements_install_ip)。

**重要事项:**在 Amazon MWAA 环境中安装软件包或 plugins.zip 文件之前,最佳做法是[使用 Amazon MWAA CLI 实用程序(aws-mwaa-local-runner)测试 Python 依赖项和 plugins.zip 文件](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html#working-dags-dependencies-cli-utility)。

相关信息

插件

AWS 官方
AWS 官方已更新 8 个月前