1.4 KiB
1.4 KiB
脚本开发指南
脚本约定
scripts/run.py 通过环境变量获取参数,通过 stdout 输出 JSON 结果。
接收参数
import json, os
params_file = os.environ.get("PARAMS_FILE", "/tmp/params.json")
with open(params_file) as f:
params = json.load(f)
expression = params.get("expression", "1+1")
precision = int(params.get("precision", 2))
输出结果
result = {"status": "ok", "result": 42, "output_path": "/tmp/output/result.geojson"}
print(json.dumps(result))
stdout 的 JSON 会被执行器捕获并作为步骤结果。
文件输出
- 输出文件写入
/tmp/output/(步骤间共享) - 执行结束后脚本目录自动清理
执行环境
- 基础镜像:
gis-base:latest(从 Gitea Packages 加载 tar.gz) - 包含:Python 3.11, GDAL, Shapely, GeoPandas, Fiona, PyProj, Rasterio, numpy
- 脚本路径:
/tmp/scripts/run.py(只读) - 工作目录:
/tmp/output(读写,步骤间共享) - 参数文件:
/tmp/params.json
错误处理
退出码非 0 表示失败:
print(json.dumps({"status": "error", "message": "文件不存在"}))
sys.exit(1)
开发建议
- 输出明确:结果 JSON 包含关键信息
- 错误友好:失败信息写清楚原因
- 使用 GDAL:GIS 文件处理优先使用 GDAL 命令行工具