如何从命令行 set/get 格式为 json 的气流变量
How to set/get airflow variables which are in json format from command line
我无法通过云 shell 编辑 json 格式的气流变量值 shell。
我正在使用云 shell 访问我的气流变量参数(json 格式),当我使用以下命令时它会给我完整的 json:
gcloud composer environments run composer001
--location us-east1 variables
--get params
但是我想编辑 json 中的值之一,我该如何访问它?
我参考了 google 上的文档和各种其他链接,但是只能找到如何设置不是 json 格式但为单值变量的变量。
Cloud Composer CLI 和 Airflow CLI 仅对 top-level 个变量进行操作,而不是其 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
我无法通过云 shell 编辑 json 格式的气流变量值 shell。
我正在使用云 shell 访问我的气流变量参数(json 格式),当我使用以下命令时它会给我完整的 json:
gcloud composer environments run composer001
--location us-east1 variables
--get params
但是我想编辑 json 中的值之一,我该如何访问它?
我参考了 google 上的文档和各种其他链接,但是只能找到如何设置不是 json 格式但为单值变量的变量。
Cloud Composer CLI 和 Airflow CLI 仅对 top-level 个变量进行操作,而不是其 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
:
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