为dcae提供acumos模型运行器
acumos-dcae-model-runner的Python项目详细描述
acumos dcae模型转轮
acumos dcae model runner使acumos python模型能够像 DCAE组件。
每个acumos模型方法都映射到订阅服务器和发布服务器流, 后缀分别为_subscriber和_publisher。例如, 具有transform方法的模型将具有transform_subscriber和 transform_publisher流。
ModelRunner实现了DCAEAPI,如运行状况检查和配置 更新。
acumos_dcae_model_runnerpython包提供了一个命令行实用程序 可用于实例化模型运行器的。有关详细信息,请参见教程。
acumos_dcae_model_runner包应该安装在docker映像中 最终登上DCAE。model runner cli实用程序应该是 Docker图像的入口点,如提供的DockerFile所示 在Acumos DCAE Model Runner repository根目录中的example/目录中。
安装
acumos_dcae_model_runner包可以与pip一起安装,如下所示:
pip install acumos_dcae_model_runner
注意:安装acumos_dcae_model_runner也将安装最新版本 只有兼容的dcaeapplib的 都柏林DCAE或更高版本。对早期版本使用acumos_dcae_model_runner的步骤 对于dcae,请确保正确地固定或绑定dcaeapplib的版本。咨询 有关详细信息,请参阅DCAE文档。
教程
cli用法
要执行模型运行程序,请使用提供的cli:
$ acumos_dcae_model_runner --help usage: acumos_dcae_model_runner [-h][--timeout TIMEOUT][--debug] model_dir positional arguments: model_dir Directory that contains either the dumped model.zip or its unzipped contents. optional arguments: -h, --help show this help message and exit --timeout TIMEOUT Timeout (ms) used when fetching. --debug Sets the log level to DEBUG
DCAE入职示例
python-dcae-model-runner存储库有一个example/目录 这显示了如何将acumos模型作为dcae组件发布。
执行以下步骤后,目录应该具有 结构:
example/ ├── Dockerfile ├── dcae-artifacts │ ├── component.json │ ├── number-out.json │ └── numbers-in.json ├── example-model │ ├── metadata.json │ ├── model.proto │ └── model.zip ├── example_model.py └── requirements.txt
注意:在本例中,requirements.txt文件应该反映 example-model/metadata.json中列出的包和版本。
步骤
1)创建acumos模型
example_model.py脚本定义了一个简单的acumos模型,该模型可以 把两个整数相加。下面将生成 example-model/:
python example_model.py
2)建立Docker映像
docker build -t acumos-python-model-test:0.1.0 .
3)ACUMOS型号到DCAE的车载系统
入职程序包括添加组件和数据格式 在dcae目录的example/dcae-artifacts中提供的工件。
详情请参阅DCAE正式入职文件 程序。
acumos dcae Model Runner发行说明
v0.1.3
- 更新了dcaeapplib
v0.1.2
- 已删除dcaeapplib 的依赖关系链接
v0.1.1
- 更新了dcaeapplib的依赖关系链接。它发布了修复身份验证错误的修补程序。一旦dcaeapplib托管在pypi中,将删除dcaeapplib依赖关系链接。
v0.1.0
- acumos dcae python model runner的初始版本
贡献准则
测试
我们使用tox、pytest和flake8的组合来测试 acumos。不符合PEP8的代码(E501除外)将是 被认为是失败的测试。您可以使用诸如autopep8之类的工具 按如下方式“清除”代码:
$ pip install autopep8
$ cd python-dcae-model-runner
$ autopep8 -r --in-place --ignore E501 acumos_dcae_model_runner/
直接运行tox:
$ cd python-dcae-model-runner $ exportWORKSPACE=$(pwd)# env var normally provided by Jenkins $ tox
您还可以指定要测试的特定毒物环境:
$ tox -e py34 # only test against Python 3.4 $ tox -e flake8 # only lint code