跳到主要内容

如何扩展代码块执行环境版本

由于 HAP 默认代码块执行环境使用的 Nodejs(10.18)、Python(3.6) 版本相对比较老,从 v5.1 开始,将支持扩展更多的执行环境版本。

目前除了提供默认镜像:nocoly/hap-command:node1018-python36
还提供相对较新的镜像:nocoly/hap-command:node2011-python312
考虑到兼容性问题,产品设计上支持多个版本切换使用。当然,如果不想使用老版本,也可以彻底切换到新版本。

对于代码块依赖库扩展问题,依然参考 如何扩展代码块依赖库,只是对应的路径进行调整:
python3.6 改成 python3.12node-10.18.0 改成 node-20.11

  1. 下载镜像(离线包下载

    docker pull nocoly/hap-command:node2011-python312
  2. 修改配置文件,添加如下配置

    commandv2:
    image: nocoly/hap-command:node2011-python312
    environment:
    <<: *app-environment
  3. 创建代码块服务扩展配置文件,如:/data/hap/script/volume/workflow/application-www-ext.properties,文件内容如下:

    md.grpc.client.MDCommandService[0].address=static://commandv2:9098
    md.grpc.client.MDCommandService[0].nodeVersion=20.11
    md.grpc.client.MDCommandService[0].pythonVersion=3.12
  4. 挂载配置文件,在 app 服务的 volumes 中添加如下配置:

    volumes:
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflow/application-www-ext.properties
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowconsumer/application-www-ext.properties
    - ./volume/workflow/application-www-ext.properties:/usr/local/MDPrivateDeployment/workflowintegration/application-www-ext.properties
  5. 重启服务,最终效果如下: