尧图精选

Apache Airflow Provider 从源码安装与完整性校验完全指南(以 Celery Provider 为例)

🕒 发布时间:2026/9/14 22:31:53 📁 来源:尧图网络
Apache Airflow Provider 从源码安装与完整性校验完全指南以 Celery Provider 为例【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow本指南以 Apache Airflow 仓库中的 Celery Providerapache-airflow-providers-celery为主线系统讲解 Provider 包从源码构建安装的完整流程官方发布的 Source 包、sdist、whl 三种包类型的区别与下载方式PGP 签名与 SHA512 校验的验证方法以及如何通过 PyPI 对发行包进行二次核验。读完本文你将能够在生产环境中可信、可复现地安装任意 Airflow Provider并掌握与仓库源码一一对应的完整性验证手段。文档背景Celery Provider 的“从源码安装”页面在 Apache Airflow 仓库中providers/celery/docs/installing-providers-from-sources.rst 是 Celery Provider 官方文档的安装章节入口。它本身是一个 Sphinx 的.. include::指令实际内容引用自共享模板 devel-common/src/sphinx_exts/includes/installing-providers-from-sources.rst。这意味着 Airflow 的所有 Provider包括 Celery、Amazon、Google、Standard 等全部 70 个 Provider共用同一份“从源码安装”文档模板其中通过.. jinja:: official_download_page渲染的占位符如{{ package_name }}、{{ package_version }}会在文档构建时被替换为当前 Provider 的实际信息。构建时注入的具体值定义在 devel-common/src/docs/provider_conf.py 中base_url官方下载主站https://downloads.apache.org/airflow/providerscloser_lua_urlApache 镜像分发入口https://www.apache.org/dyn/closer.lua/airflow/providerspackage_name如apache-airflow-providers-celerypackage_name_underscores下划线版包名用于 whl 文件名如apache_airflow_providers_celerypackage_version当前 Provider 版本Celery 为3.24.0见 providers/celery/provider.yaml 的versions列表providers_release_dateProvider 批量发布日期读取自 providers/.last_release_date.txt当前为2026-09-09因此本文中所有以 Celery Provider 为例的命令把包名与版本号替换后即可适用于任何其他 Provider。三种官方包类型Source、sdist 与 whl 的选择Apache Airflow 的 Provider 发布提供三类官方包均托管在 Apache 官方下载站点经由closer.lua自动选择最近的镜像Source 包apache_airflow_providers-release_date-source.tar.gzApache 软件基金会ASF的官方源码包。它包含 Provider 的完整源码适合希望自行从源码构建、并确保包来源与仓库源码一致的用户。这是唯一能“从源码构建安装”的官方入口包内会附带INSTALL文件说明具体的构建与安装步骤。sdist 包apache-airflow-providers-celery-3.24.0.tar.gz标准 Python 源码分发包由同一份源码构建生成属于安装便利包。whl 包apache_airflow_providers_celery-3.24.0-py3-none-any.whl预编译的 wheel 分发包py3-none-any表示纯 Python、平台无关可直接被 pip 安装。三者都来自同一份发布源码因此均可通过签名与校验和验证其来源和完整性。对最终用户而言最常见的方式仍是直接通过 PyPI 安装pip install apache-airflow-providers-celery官方下载站点则提供了可审计、可校验的替代通道。从源码构建安装若选择 Source 包解压后应首先阅读随包分发的INSTALL文件其中包含针对该 Provider 的构建与安装指引。以 Celery Provider 的包元数据为例providers/celery/pyproject.toml 揭示了其构建系统的关键配置构建后端为flit_core4.0.2build-backend flit_core.buildapisdist 内容显式声明不依赖 VCS 信息包含docs/、provider.yaml、tests/以及src/下的包模块入口点provider_info airflow.providers.celery.get_provider_info:get_provider_info让 Airflow 在启动时发现该 Provider 的元数据。使用标准 Python 工具链即可完成构建与安装# 解压源码包后在包根目录执行 pip install . # 或使用 build 模块先构建再安装 python -m build pip install dist/apache_airflow_providers_celery-3.24.0-py3-none-any.whl安装时的依赖约束从源码或 sdist 安装时pip 会依据 providers/celery/pyproject.toml 中的dependencies解析依赖当前 Celery Provider 的核心约束为apache-airflow2.11.0apache-airflow-providers-common-compat1.15.0celery[redis]5.5.0,6Celery 主版本升级易引入问题因此锁定6flower1.0.0同时支持 Python 3.103.14见 providers/celery/README.rst。若需要CeleryKubernetesExecutor提供的 Kubernetes 混合执行能力还需安装可选跨 Provider 依赖apache-airflow-providers-celery[cncf.kubernetes]。发布完整性校验PGP 签名验证Apache 基金会强烈要求用户在安装前验证下载文件的完整性。PGP 签名验证分为两步导入发布管理者的公钥然后用该公钥校验签名。第一步导入 KEYS 公钥KEYS 文件可从https://downloads.apache.org/airflow/KEYS获取。强烈建议从主分发目录而非镜像下载 KEYS 与 asc 签名文件以避免镜像被篡改的风险。根据本机 PGP 工具的不同导入方式有三种# GPGGNU Privacy Guard gpg -i KEYS # PGP 命令行工具pgpk pgpk -a KEYS # PGPpgp 传统命令 pgp -ka KEYS第二步校验签名导入公钥后用对应的.asc签名文件校验下载的二进制包或源码包# GPG gpg --verify apache-airflow-providers-********.asc apache-airflow-********* # 或 pgpv apache-airflow-providers-********.asc # 或 pgp apache-airflow-providers-********.asc以 Celery Provider 为例的完整输出$ gpg --verify apache-airflow-providers-celery-3.24.0.tar.gz.asc apache-airflow-providers-celery-3.24.0.tar.gz gpg: Signature made Sat 11 Sep 12:49:54 2021 BST gpg: using RSA key CDE15C6E4D3A8EC4ECF4BA4B6674E08AD7DE406F gpg: issuer kaxilnaikapache.org gpg: Good signature from Kaxil Naik kaxilnaikapache.org [unknown] gpg: aka Kaxil Naik kaxilnaikgmail.com [unknown] gpg: WARNING: The keys User ID is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: CDE1 5C6E 4D3A 8EC4 ECF4 BA4B 6674 E08A D7DE 406F输出中的“Good signature from ...”即表示签名正确。关于WARNING: The keys User ID is not certified with a trusted signature!的告警无需担心多数发布管理者使用的证书是自签名的所以才会出现此告警。只要你是从官方KEYS页面导入并核对了 Key ID即可确认该公钥有效。发布完整性校验SHA512 校验和验证除 PGP 签名外每个发行文件都配有独立的.sha512文件。下载后计算本地文件的 SHA512 摘要并与官方值比对shasum -a 512 apache-airflow-providers-******** | diff - apache-airflow-providers-********.sha512如果计算出的SHASUM与.sha512文件中提供的值一致diff不会有任何输出即校验通过。Celery Provider 的具体示例shasum -a 512 apache-airflow-providers-celery-3.24.0.tar.gz | diff - apache-airflow-providers-celery-3.24.0.tar.gz.sha512验证 PyPI 发行包下载并校验 whl即便你选择从 PyPI 安装 Provider这也是官方推荐的大多数用户的安装方式仍然可以验证 PyPI 上分发的.whl包是否与 Apache 官方发布一致。官方文档提供了如下脚本先通过pip download从 PyPI 拉取 wheel 包再从 Apache 主分发目录下载对应的.asc签名与.sha512校验和文件到同一临时目录然后沿用前文的 PGP/SHA512 方法校验#!/bin/bash PACKAGE_VERSION3.24.0 PACKAGE_NAMEapache-airflow-providers-celery provider_download_dir$(mktemp -d) pip download --no-deps ${PACKAGE_NAME}${PACKAGE_VERSION} --dest ${provider_download_dir} curl https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.24.0-py3-none-any.whl.asc \ -L -o ${provider_download_dir}/apache_airflow_providers_celery-3.24.0-py3-none-any.whl.asc curl https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.24.0-py3-none-any.whl.sha512 \ -L -o ${provider_download_dir}/apache_airflow_providers_celery-3.24.0-py3-none-any.whl.sha512 echo echo Please verify files downloaded to ${provider_download_dir} ls -la ${provider_download_dir} echo脚本说明pip download --no-deps只下载包本身而不解析依赖便于专注校验目标 whlcurl -L跟随 Apache 下载站的重定向下载完成后ls确认三个文件就位然后对 whl 依次执行前两节的gpg --verify与shasum -a 512校验。校验通过后即可放心安装并可删除脚本创建的临时目录mktemp -d生成的目录。安装后的验证与源码佐证安装完成后可通过以下方式确认 Celery Provider 已正确接入 Airflow# 查看已安装版本 pip show apache-airflow-providers-celery # 确认 Airflow 能发现该 Provider airflow providers list | grep celery从源码结构看Celery Provider 的核心实现位于 providers/celery/src/airflow/providers/celery 目录其中与安装、运行直接相关的关键模块包括executors/celery_executor.pyCeleryExecutor类定义是 Airflow 通过 Celery 分布式执行任务的核心执行器executors/celery_executor_utils.pysend_workload_to_executor与fetch_celery_task_state等任务投递与状态回捞函数cli/celery_command.pyairflow celery worker/airflow celery flower等 CLI 命令的实现sensors/celery_queue.pyCeleryQueueSensor用于监听 Celery 队列状态。运行 Celery 执行器时用到的关键配置项定义于 providers/celery/provider.yaml 的[celery]配置节包括broker_url默认redis://redis:6379/0、result_backend默认回退到sql_alchemy_conn的db前缀形式、worker_concurrency默认 16、worker_prefetch_multiplier、operation_timeout、sync_parallelism默认 0即自动使用max(1, 核心数-1)个进程同步任务状态等。在 celery_executor.py 中可以看到SYNC_PARALLELISM正是被BulkStateFetcher用来批量回捞任务状态的。小结本文以 Celery Provider 为实例完整梳理了 Apache Airflow Provider 从源码安装与校验的路径理解 Source/sdist/whl 三种官方包的区别 → 从 Apache 官方站点下载 → 用 PGP 签名与 SHA512 校验和双重验证包完整性 → 通过 PyPI 下载并二次核验 whl → 安装后通过 CLI 与配置确认 Provider 可用。该流程适用于仓库中所有 Provider——将示例中的apache-airflow-providers-celery与3.24.0替换为目标 Provider 的包名与版本即可复用。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →