我有一个数据流管道,它具有以下通用文件结构:
root_dir/
setup.py
pipeline_main.py
requirements.txt
dependencies_dir/
__init__.py
some_functions.py
我的setup.py文件大致如下:
import setuptools
setuptools.setup(
name=<name>,
version='1.0.0',
install_requires = [],
packages=setuptools.find_packages(),
)
这作为一个独立的代码工作得很好,但我正在努力将其纳入Composer中。我知道有了Airflow,我们可以使用"插件"文件夹来导入功能。但是这个setup.py和requirements.txt的目的是为数据流工作程序安装所需的依赖项。在本地文件系统中,我们会使用类似于'-setup-file=的东西/setup.py'和'requirements_file=/requirements.txt'。
Airflow中是否有一个特定的目录可以用于setup.py(和相应的包(以及requirements.txt?
谢谢!
Cloud Composer的文档向您展示了如何在此处将包安装到环境中。
没有目录-要更新Cloud Composer环境,必须直接与环境交互。通过API、Terraform、GCloud或Web控制台。
您可以在机器上本地安装来自requirements.txt
的软件包:
gcloud composer environments update ENVIRONMENT_NAME
--location LOCATION
--update-pypi-packages-from-file requirements.txt
对于将来遇到问题的人来说,Airflow可以本机读取三个文件夹:dags/
、data/
和plugins/
。
对我来说,它的工作方式是将setup.py
和requirements.txt
包含在data/
文件夹中。。出于某种原因,Dataflow不会以本机方式读取absoulte GCS目录,但您可以使用Airflow的人工文件系统,数据文件夹示例为/home/airflow/gcs/data
。该值可能会根据您的Airflow配置而有所不同,但如果您设置了正确的目录,则会执行该值。