脚本与管道
默认输出人类可读文本;在脚本/管道里加 -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 字段沿用平台后端命名(如 AppID、Status、KeepPathPrefix),对照各命令的返回示例 |
logs 不退出 |
不带 --follow 取完即退;带 --follow 用 Ctrl-C 结束 |