代码之家  ›  专栏  ›  技术社区  ›  Josh Laird

云编辑器缺少变量文件

  •  0
  • Josh Laird  · 技术社区  · 5 年前

    我一直在尝试使用 airflow CLI 但是当运行下面的程序时,我会得到错误: Missing variables file.

    gcloud composer environments run ${COMPOSER_NAME} \
        --location=${COMPOSER_LOCATION} \
        variables -- \
        -i ${VARIABLES_JSON}
    

    从看 the source 当环境变量文件不在预期位置时,似乎会发生这种情况。这是因为Cloud Composer在不同的位置设置了变量,所以此CLI无法工作吗?我注意到 env_var.json 在实例的gcs bucket上创建的文件,我意识到我可以覆盖这个文件,但这似乎不是最佳实践。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Josh Laird    5 年前

    感觉像个黑客,但我复制了 variables.json 到我的作曲家的gcs bucket数据文件夹,然后它工作了。

    这是由于 os.path.exists() 检查正在运行气流的容器。我选择了这种方法而不是重写 env_var.json 因为我用这个方法得到了airflow用户界面中的变量。

    为感兴趣的人编写的脚本:

    COMPOSER_DATA_FOLDER=/home/airflow/gcs/data
    
    COMPOSER_GCS_BUCKET=$(gcloud composer environments describe ${COMPOSER_NAME} --location ${COMPOSER_LOCATION} | grep 'dagGcsPrefix' | grep -Eo "\S+/")
    
    gsutil cp ${ENV_VARIABLES_JSON_FILE} ${COMPOSER_GCS_BUCKET}data
    
    gcloud composer environments run ${COMPOSER_NAME} \
        --location ${COMPOSER_LOCATION} variables -- \
        -i ${COMPOSER_DATA_FOLDER}/variables.json
    
    推荐文章