Python命令行工具,使气流项目的部署更容易。
afctl的Python项目详细描述
afctl公司
编写所建议的CLI工具的目的是使气流项目的创建和部署更快、更顺利。 到目前为止,还没有工具可以让用户为气流创建样板代码结构 并使项目的开发+部署无缝进行。在
要求
- Python 3.5+
- 码头工人
入门
1。安装
创建一个新的python virtualenv。您可以使用以下命令。
python3 -m venv <name>
激活您的virtualenv
pip3 install afctl
2。初始化新的afctl项目。
项目将在当前工作目录中创建。与此同时,具有相同名称的配置文件是 在/home/.afctl_configs目录中生成。在
afctl init <name of the project>
例如
afctl init project_demo
- 将生成以下目录结构
. ├── deployments │ └── project_demo-docker-compose.yml ├── migrations ├── plugins ├── project_demo │ ├── commons │ └── dags ├── requirements.txt └── tests
如果您已经有一个git存储库,并希望将其转换为afctl项目。 运行以下命令:-
afctl init .
3。在项目中添加新模块。
afctl generate module -n <name of the module>
将生成以下目录结构:
afctl generate module -n first_module afctl generate module -n second_module . ├── deployments │ └── project_demo-docker-compose.yml ├── migrations ├── plugins ├── project_demo │ ├── commons │ └── dags │ ├── first_module │ └── second_module ├── requirements.txt └── tests ├── first_module └── second_module
4。生成dag
afctl generate dag -n <name of dag> -m <name of module>
将生成以下目录结构:
afctl generate dag -n new -m first_module . ├── deployments │ └── project_demo-docker-compose.yml ├── migrations ├── plugins ├── project_demo │ ├── commons │ └── dags │ ├── first_module │ │ └── new_dag.py │ └── second_module ├── requirements.txt └── tests ├── first_module └── second_module
dag文件如下所示:
fromairflowimportDAGfromdatetimeimportdatetime,timedeltadefault_args={'owner':'project_demo',# 'depends_on_past': ,# 'start_date': ,# 'email': ,# 'email_on_failure': ,# 'email_on_retry': ,# 'retries': 0}dag=DAG(dag_id='new',default_args=default_args,schedule_interval='@once')
5。在本地部署项目
您可以在requirements.txt
中添加dag所需的python包。他们会自动得到
安装。在
- 要部署项目,请运行以下命令(确保docker正在运行):
afctl deploy local
如果不想查看日志,可以运行
afctl deploy local -d
这将以分离模式运行它,并且不会在控制台上打印日志。在
- 您可以在
localhost:8080
的浏览器上访问airflow Web服务器
6。生产部署项目
- 这里我们将把我们的项目部署到Qubole。在注册美国qubole.com. 在
- 添加git源和访问令牌(如果希望将项目保留为私有repo 在Github上)。See how
- 项目完成后将其推送到Github。在
- 部署到Qubole将需要添加部署配置。在
afctl config add -d qubole -n <name of deployment> -e <env> -c <cluster-label> -t <auth-token>
此命令将修改配置文件。您可以使用以下命令查看配置文件:
afctl config show
例如-
afctl config add -d qubole -n demo -e https://api.qubole.com -c airflow_1102 -t khd34djs3
- 要部署,请运行以下命令
afctl deploy qubole -n <name>
下面的视频还包含使用afctl部署project的所有步骤-
https://www.youtube.com/watch?v=A4rcZDGtJME&feature=youtu.be
管理配置
用于部署的配置文件包含以下信息。在
global:-airflow_version:-git:--origin:--access-token:deployment:-qubole:--local:---compose:
airflow_version
可以在初始化项目时添加到项目中。在
afctl init <name> -v <version>
- 可以使用以下命令添加/更新全局配置(airflow_version、origin、access token):
使用
现在支持的命令有
- 初始化
- 配置
- 部署
- 列表
- 生成
要了解更多信息,请运行
afctl <command> -h
注意
还没有移植到窗户上。在
学分
Docker编写文件:https://github.com/puckel/docker-airflow
- 项目
标签: