在Google Cloud Composer中运行airflow test CLI命令失败求助
解决Google Cloud Composer中
airflow test CLI命令报错的问题 我之前在使用Cloud Composer的Airflow CLI时也碰到过一模一样的错误,问题出在命令参数的结构传递方式上,gcloud对environments run命令的参数格式有特定要求,和直接在Airflow实例里敲airflow test的写法不一样。
正确的命令格式
你需要把Airflow的完整test命令(包括DAG名、任务名和执行日期)用双引号括起来,作为一个整体参数传递给gcloud,同时别忘了指定环境所在的区域(如果没设置默认区域的话):
gcloud beta composer environments run ENVIRONMENT_NAME --location YOUR_REGION "test MY_DAG FIRST_TASK 2018-05-05"
为什么原来的命令会报错?
你之前的写法是把test、MY_DAG、FIRST_TASK这些直接作为gcloud的参数,但gcloud beta composer environments run的逻辑是:前半部分(环境名、区域)是gcloud自身的参数,后面的Airflow命令必须是一个独立的、被引号包裹的参数。如果不包裹,gcloud会把test、MY_DAG当成自己的未知命令参数,自然就会抛出unrecognized arguments错误。
额外注意事项
- 如果你使用的是Airflow 2.x版本,官方已经弃用了
airflow test命令,推荐使用airflow tasks test,对应的命令应该改成:gcloud beta composer environments run ENVIRONMENT_NAME --location YOUR_REGION "tasks test MY_DAG FIRST_TASK 2018-05-05" - 可以用
gcloud composer environments list命令确认你的环境名和所在区域是否正确,避免拼写错误。 - 执行日期参数必须是
YYYY-MM-DD格式,要符合Airflow的执行日期规范。
内容的提问来源于stack exchange,提问作者Tuan Vu
相关产品推荐
相关产品推荐

