在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:qiniu-ufop开源软件地址:https://gitee.com/xavier-lam/qiniu-ufop开源软件介绍:Qiniu-ufop本项目提供一个便捷高性能的七牛自定义数据处理脚手架,以便开发人员专注数据处理业务逻辑. 目前尚未编写单元测试,也没有完善的异常处理机制.采用Python 3.6进行开发,不确保其他版本运行正常. 项目官方站点 https://github.com/Xavier-Lam/qiniu-ufop Quickstart安装通过pip安装项目 pip install qiniu-ufop 开始项目使用qiniu-ufop命令,快速生成项目 qiniu-ufop createproject 通过createproject命令,qiniu-ufop在当前目录下生成了一个app.py文件. 编写业务代码以下是一个简单示例: # app.pyfrom qiniu_ufop import QiniuUFOPufop = QiniuUFOP()@ufop.task(route=r"^(?:/(?P<name>\w+))?$")def debug(buffer, args, content_type): return "hello " + args.get("name", "world") 假设该自定义数据处理名称为qiniu,待处理的文件链接为https://qbox.me/example.jpg. 则调用链接是https://qbox.me/example.jpg?qiniu/qq*,响应输出为*hello qq 编写说明参见开发 章节 本地运行项目qiniu-ufop runserver --debugqiniu-ufop runworker
详见调试章节 生成Dockerfile并发布qiniu-ufop deploy -t <image-tag> -n <ufop-name> -v <version> 该命令为一键部署命令,一键部署需满足相关条件,请参阅一键部署章节.如需定制化部署,可参见手工部署章节 激活在你的自定义处理的版本列表中调整实例数,即可使用 注意七牛有一个BUG,在代码中没办法取到正确的cpu核数
开发数据处理器实际上是一个celery任务,这个任务必须接受一个 被装饰的处理起接受三个参数,第一个是待处理文件的 处理器返回字符串,bytes,json或是一个 日志可直接输出stderr. 使用命令行工具可通过 qiniu-ufop -h 看到详细说明 一键部署一键部署假设用户
手工部署此章节假定用户已完成自定义数据处理程序的开发,本地安装有docker环境,并处在自定义处理程序目录下 生成镜像
上载自定义处理程序
配置其他依照官方文档配置,在高级配置中
调试本地调试处理程序可通过qiniu-ufop对处理程序进行调试 qiniu-ufop process [<cmd>] <filename>
命令的结果将直接打印再控制台上,如需持久化,可使用output参数,例如 qiniu-ufop process test.png -o output.png 本地调试webserver启动服务器及worker qiniu-ufop runserver --debugqiniu-ufop runworker 访问
或将文件作为body,POST到
本地调试Docker在项目目录下 qiniu-ufop dockerfile > Dockerfiledocker pull ubuntu:18.04docker build . -t <tag>docker run --name <name> -p 9100:9100 -t <tag> 访问
问题排查日志查看七牛的日志查看好像经常取不到日志,建议自行在处理程序中埋一个下载日志的方法,来获取日志.可以参看示例项目 部署过程中遇到的异常在运行qdoractl push时,可能会遇到该异常,反正我是遇到了 Get http://192.168.99.100:2376/v1.20/version: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02".* Are you trying to connect to a TLS-enabled daemon without TLS? 遇到上述异常,首先登陆docker宿主机 docker-machine ssh 修改docker配置,设置 sudo vi /var/lib/boot2docker/profile 重启docker服务 sudo /etc/init.d/docker restart 退出docker宿主机 exit unset本机环境变量DOCKER_TLS_VERIFY(以windows为例) set DOCKER_TLS_VERIFY= 再度执行部署(参见手工部署或一键部署) Cookbook使用git更新代码
TODOS:
Xavier-Lam@NetDragon |
请发表评论