我无法通过云外壳以json格式编辑气流变量的值。
我正在使用云外壳访问气流变量参数(以json格式),当我使用以下命令时,它会为我提供完整的json:
gcloud composer environments run composer001
--location us-east1 variables
--get params
但是我想编辑json中的值之一,我该如何访问呢?
我参考了文档以及Google上的各种其他链接,但是只能找到如何设置不是json格式而是单值变量的变量。
答案 0 :(得分:1)
Cloud Composer CLI和Airflow CLI仅对顶级变量起作用,而不对它们的JSON内容起作用。
您可以使用Airflow UI来编辑JSON变量,因为UI加载了整个变量,您可以就地对其进行编辑。或者,如果您需要通过命令行更新JSON变量中的特定值,则可以先将变量导出到JSON文件:
gcloud composer environments run \
[ENVIRONMENT] --location [LOCATION] \
variables -- --export /home/airflow/gcs/data/your-vars.json
gcloud composer environments storage data export \
--environment [ENVIRONMENT] --location [LOCATION] \
--source your-vars.json --destination .
使用jq
之类的命令编辑JSON中的值:
jq '.params.jsonkey = "newvalue"' your-vars.json > your-updated-vars.json
并将更新的文件导入回Cloud Composer:
gcloud composer environments storage data import \
--environment [ENVIRONMENT] --location [LOCATION] \
--source your-updated-vars.json
gcloud composer environments run \
[ENVIRONMENT] --location [LOCATION] \
variables -- --import /home/airflow/gcs/data/your-updated-vars.json