elixircloud/protes该Docker镜像提供一个代理服务,专门用于在GA4GH TES(Task Execution Service)请求处理流程中注入中间件。GA4GH TES是一个标准化的任务执行服务接口,广泛应用于生物信息学等领域的分布式任务调度。本代理服务作为请求拦截层,允许用户通过中间件对TES请求/响应进行定制化处理,从而扩展或增强TES服务的功能,而无需修改底层TES服务实现。
bashdocker run -d \ -p 8080:8080 \ -e TARGET_TES_URL="[***]" \ -v ./middleware-config.yaml:/app/config/middleware.yaml \ --name tes-proxy \ [镜像名称]:[标签]
yamlversion: '3.8' services: tes-proxy: image: [镜像名称]:[标签] ports: - "8080:8080" environment: - TARGET_TES_URL=[***] # 目标GA4GH TES服务地址 - LISTEN_PORT=8080 # 代理服务监听端口 - LOG_LEVEL=info # 日志级别:debug, info, warn, error volumes: - ./middleware-config.yaml:/app/config/middleware.yaml # 中间件配置文件挂载 depends_on: - tes-service # 依赖的目标TES服务 tes-service: image: [tes-service-image]:[tag] # 目标GA4GH TES服务镜像 # 目标TES服务的其他配置...
| 参数名 | 描述 | 默认值 | 必需 |
|---|---|---|---|
TARGET_TES_URL | 目标GA4GH TES服务的基础URL | 无 | 是 |
LISTEN_PORT | 代理服务监听端口 | 8080 | 否 |
LOG_LEVEL | 日志输出级别(debug/info/warn/error) | info | 否 |
MIDDLEWARE_CONFIG | 中间件配置文件路径 | /app/config/middleware.yaml | 否 |
配置文件定义中间件链及其参数,示例:
yamlmiddleware: - name: "logging" # 日志中间件 config: log_request_body: true log_response_body: false - name: "auth" # 身份验证中间件 config: jwt_secret: "your-secret-key" required_claims: ["scope:tes:write"] - name: "metadata-inject" # 元数据注入中间件 config: inject_fields: - key: "x-project-id" value: "default-project" - key: "x-user-id" from_header: "X-Forwarded-User" # 从请求头获取值
TARGET_TES_URL指定的目标TES服务manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务