用途:独立部署 vss-video-analytics-api 容器(上游 video-analytics-api 仓库的 Node.js REST API),而非完整 warehouse 蓝图栈。适用于“只运行 REST API 不跑全栈”“使用自定义配置”“指向不同 Elasticsearch/Kafka”“无 Kafka 启动”“查看可用 REST 端点”等场景。
前提条件:需仓库检出并将 $VSS_APPS_DIR 指向 <repo>/deploy/docker/;需设置 $NGC_CLI_API_KEY 以拉取镜像(此密钥为长期凭证,禁止提交、粘贴到聊天或存入 /tmp,应交互式读取或从密钥管理器加载,派生 .env 文件用 umask 077 与 chmod 600,并定期轮换);Docker Engine 28.3.3 与 Compose 插件 v2.39.1+;Elasticsearch 必须在 elasticsearch.node 配置的 URL 可达(启动时 ping,不可达则退出),如需一并启动可执行 docker compose -f services/infra/compose.yml up -d elasticsearch;Kafka 可选,无 broker 时使用镜像内置配置或自定义 kafka.brokers: [],否则动态配置、动态校准、RTLS/AMR 功能将不可用;默认 compose 会挂载 $VSS_DATA_DIR/data_log/vss_video_analytics_api 用于分片上传与文件资产,需设为可写主机路径并预先创建。
最小独立启动示例: cd $REPO/deploy/docker export VSS_APPS_DIR=$(pwd) export VSS_DATA_DIR=${VSS_DATA_DIR:-/tmp/vss-data} mkdir -p "$VSS_DATA_DIR/data_log/vss_video_analytics_api" docker compose -f services/analytics/video-analytics-api/compose.yml up -d vss-video-analytics-api curl -sf http://localhost:8081/livez
工作流:选择配置(镜像内置、服务自带或自定义)→决定是否需要数据日志卷→确认依赖(ES 必需、Kafka 可选)→用 docker compose up 部署并健康检查。详细部署步骤见 references/deploy-video-analytics-api-service.md,JSON 配置字段见 references/configuration.md,OpenAPI 规范见仓库 src/app/specification/openapi.json。
Kafka 依赖功能:动态配置(POST /config 向 mdx-notification 主题发布 upsert 消息,键 behavior-analytics-config)、动态校准(同一主题,键 calibration,支持 upsert-all/upsert/delete)、RTLS/AMR(消费 mdx-rtls 与 mdx-amr 消息并通过 REST 暴露)。
限制:需匹配的 VSS profile/微服务已部署且对调用方可达;NGC 托管模型与 NIM 可能受速率限制、GPU 显存要求与许可限制;并发、显存与存储上限取决于主机硬件与 profile 的 compose 文件。
故障排查:连接被拒表示目标微服务未运行,可探测 /docs 或 /health,并通过 vss-deploy-profile 或对应 vss-deploy-* 技能重新部署;HTTP 401/403 表示 NGC_CLI_API_KEY 缺失或过期,执行 docker login nvcr.io 后重试;容器 OOM 或模型加载失败表示显存不足,切换更小变体或 docker compose down 释放显存。
路由规则:完整栈(UI/agent/perception)交由 vss-deploy-profile(profile warehouse 或 alerts),不要并行运行本技能;分析流水线交 vss-setup-behavior-analytics;通过 REST 发布运行时配置或校准更新前需确认 Kafka 可达,消费者侧契约参见对应 dynamic-config 与 dynamic-calibration 参考。