安装 Python 依赖项

Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)

本页面介绍了如何为受管 Airflow 环境安装 Python 软件包。

Managed Airflow 中的软件包简介

本部分介绍 PyPI 软件包在 Managed Airflow 中的运作方式。

Managed Airflow 映像中的预安装 PyPI 软件包和自定义 PyPI 软件包

Managed Airflow 映像包含预安装的 PyPI 软件包和自定义 PyPI 软件包。

  • 预安装的 PyPI 软件包是指包含在环境的 Managed Airflow 映像中的软件包。每个 Managed Airflow 映像都包含特定于您的 Managed Airflow 和 Airflow 版本的 PyPI 软件包

  • 自定义 PyPI 软件包是指除了预安装的软件包之外,您还可以在环境中安装的软件包。

用于管理 Managed Airflow 环境的 PyPI 软件包的选项

选项 使用条件
从 PyPI 安装 在环境中安装软件包的默认方式
从具有公共 IP 地址的代码库进行安装 相应软件包托管在 PyPI 以外的软件包代码库中。 此代码库具有公共 IP 地址
从 Artifact Registry 代码库安装 软件包托管在 Artifact Registry 代码库中
从项目网络中的代码库安装 您的环境无法访问公共互联网。软件包托管在项目网络的软件包代码库中。
安装为本地 Python 库 在 PyPI 中找不到相应软件包,并且该库没有任何外部依赖项,例如 dist-packages
安装插件 该软件包提供插件特有的功能,例如修改 Airflow 网页界面。
PythonVirtualenvOperator 您不希望所有 Airflow 工作器都安装该软件包,或者该依赖项与预安装的软件包相冲突。该软件包可在 PyPI 中找到,并且没有外部依赖项。
KubernetesPodOperatorGKE Operator 您所需的外部依赖项无法通过 pip 安装(例如 dist-packages),或者这些外部依赖项位于内部 pip 服务器上。此选项需要更多设置和维护工作。仅当其他选项不起作用时,才考虑此选项。

准备工作

  • 您必须具有可以触发环境更新操作的角色。此外,环境的服务账号必须具有拥有足够权限来执行更新操作的角色

  • 如果您的环境受 VPC Service Controls 边界的保护,则在安装 PyPI 依赖项之前,您必须授予其他用户身份对服务边界保护的服务的访问权限,并支持私有 PyPI 代码库。

  • 要求必须遵循 PEP-508 中指定的格式:每项要求均以小写形式指定,并且包含软件包名称(您还可以选择添加 extras 和版本说明符)。

  • PyPI 依赖项更新会在 Artifact Registry 中生成 Docker 映像。

  • 如果更新因某个依赖项冲突而失败,那么您的环境将继续使用其现有依赖项运行。如果操作成功,您可以开始在 DAG 中使用新安装的 Python 依赖项。

  • PythonVirtualenvOperator 不使用环境 pip.conf 文件中的配置。如果您想使用特定依赖项(包括从自定义索引安装这些依赖项),请在 requirements 参数中以字符串列表的形式传递要求。如需详细了解此格式,请参阅 pip 文档中的要求文件格式

查看 PyPI 软件包列表

您可以多种格式获取环境的软件包列表。

查看预安装的软件包

如需查看环境的预安装软件包列表,请参阅环境的 Managed Airflow 映像的软件包列表。

查看所有软件包

如需查看环境中的所有软件包(包括预安装的软件包和自定义软件包),请执行以下操作:

gcloud

以下 gcloud CLI 命令会返回您环境中的 Airflow 工作器的 python -m pip list 命令的结果。您可以使用 --tree 实参来获取 python -m pipdeptree --warn 命令的结果。

gcloud beta composer environments list-packages \
    ENVIRONMENT_NAME \
    --location LOCATION

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

查看自定义 PyPI 软件包

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 前往 PyPI 软件包标签页。

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.softwareConfig.pypiPackages)"

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

在 Managed Airflow 环境中安装自定义软件包

本部分介绍了在环境中安装自定义软件包的不同方法。

从 PyPI 安装软件包

如果软件包没有外部依赖项或与预安装的软件包冲突,则可以从 Python Package Index 安装该软件包。