脚本与管道

默认输出人类可读文本;在脚本/管道里加 -o json(或 -c 紧凑)拿机读 JSON,配合 stderr 人读、退出码分明(见输出契约),便于自动化编排。

jq 管道

取某应用状态与异常原因:

nae app myweb -o json 2>/dev/null | jq '{status: .Status, reason: .StatusReason, replicas: .Replicas}'

挑出所有非 running 的应用:

nae apps -c 2>/dev/null | jq -c '.[] | select(.Status != "running") | {AppID, Status, StatusReason}'

检查配额是否快满:

nae quota -o json 2>/dev/null | jq '{apps: "\(.apps_used)/\(.apps_limit)", cpu: "\(.cpu_used)/\(.cpu_limit)"}'

无本地配置、纯环境变量的一次性调用:

NAE_TOKEN=nae_xxx nae apps -c | jq length

退出码分支

nae app maybe-missing >/tmp/out.json 2>/tmp/err.txt
case $? in
  0) echo "ok" ;;
  1) echo "业务错误:$(cat /tmp/err.txt)" ;;
  2) echo "需要登录" ;;
  3) echo "平台不可达" ;;
esac

排错

现象 处理
退出码 2 令牌缺失/过期/被吊销,重新 nae login 或换 NAE_TOKEN
退出码 3 连不上平台(DNS/拒绝/超时),先用 nae config 核对 baseUrl
字段名对不上 JSON 字段沿用平台后端命名(如 AppIDStatusKeepPathPrefix),对照各命令的返回示例
logs 不退出 不带 --follow 取完即退;带 --followCtrl-C 结束