openstack storlet文档(六):IPython Notebook Integration
来源:互联网 发布:淘宝卖家会员管理 编辑:程序博客网 时间:2024/05/16 16:12
IPython Notebook Integration
IPython / Jupyter提供了一个基于浏览器的交互式shell以支持数据可视化。与IPython集成的storlet可以通过IPython notebook轻松部署和调用storlets。 在下面的章节中,我们将介绍如何将IPython notebook设置为使用storlet,如何部署python storlet以及如何调用一个storlet。
Set up IPython to work with storlets
设置一个IPython notebook来与storlet工作包括:
1. 提供一个支持Swift账号的认证信息
这是通过设置类似于swift客户端使用的环境变量来完成的。 需要设置的确切变量取决于所使用的auth中间件和auth协议版本。 详情请参考:python-swiftclient docs
2. 加载storlets IPython扩展
下面显示了符合默认的storlet开发环境安装的环境变量(s2aio):
import osos.environ['OS_AUTH_VERSION'] = '3'os.environ['OS_AUTH_URL'] = 'http://127.0.0.1:5000/v3'os.environ['OS_USERNAME'] = 'tester'os.environ['OS_PASSWORD'] = 'testing'os.environ['OS_USER_DOMAIN_NAME'] = 'default'os.environ['OS_PROJECT_DOMAIN_NAME'] = 'default'os.environ['OS_PROJECT_NAME'] = 'test'
要加载存储库IPython扩展,只需输入并执行如下:
%load_ext storlets.tools.extensions.ipython
Deploy a Python storlet
storlet部署的通用背景is here
在新的notebook cell中,输入“%% storletapp”指令,直接接storlet的名称。 按照storlet的类型。 下面是一个简单的’identitiy’ storlet的例子。执行这个cell会将这个storlet部署到Swift中。
%%storletapp test.TestStorletclass TestStorlet(object): def __init__(self, logger): self.logger = logger def __call__(self, in_files, out_files, params): """ The function called for storlet invocation :param in_files: a list of StorletInputFile :param out_files: a list of StorletOutputFile :param params: a dict of request parameters """ self.logger.debug('Returning metadata') metadata = in_files[0].get_metadata() for key in params.keys(): metadata[key] = params[key] out_files[0].set_metadata(metadata) self.logger.debug('Start to return object data') content = '' while True: buf = in_files[0].read(16) if not buf: break content += buf self.logger.debug('Recieved %d bytes' % len(content)) self.logger.debug('Writing back %d bytes' % len(content)) out_files[0].write(content) self.logger.debug('Complete') in_files[0].close() out_files[0].close()
Note: 要在实际的数据集上运行该storlet,可以在cell的顶部输入以下内容
%%storletapp test.TestStorlet --with-invoke --input path:/<container>/<object> --print-result
注: 有用的命令,如“dry-run”正在开发中。 有关选项的更多详细信息,请参见下一节。
Invoke a storlet
here可以找到有关storlet调用的一般信息
以下是调用的工作原理:
1. 定义一个可选的字典变量params,它将保存调用参数:
myparams = {'color' : 'red'}
- 要调用test.TestStorlet,只需键入以下内容:
%get --storlet test.py --input path:/<container>/<object> -i myparams -o myresult
the invocation将通过从myparams读取的参数在指定的swift对象上执行test.py。 结果是放在myresult中。 ‘-i’参数是可选的,但是如果指定了提供的值那么必须是定义的字典变量的名称。myresults是一个storlets.tools.extensions.ipython.Response的实例。这个类有以下成员:
1. status- 一个integer用于保存Http响应状态
2. headers-一个字典,保存storlet调用响应头部
3. iter_content-一个迭代器对响应内容进行迭代
4. content-响应体的内容
5. 要调用test.TestStorlet,只需输入以下内容:
%put --storlet test.py --input <full path to local file> --output path:/<container>/<object> -i myparams -o myresult
调用将在-input选项指定的上传文件上执行test.py,该选项必须是完整的本地路径。 使用从myparams读取的参数调用test.py。 结果是放在myresult中。 ‘-i’参数是可选的,但是,如果指定了提供的值必须是定义的变量的名称。 myresults是一个具有以下键的字典:
1. stauts-一个integer用于保存Http响应状态
2. header-一个字典,保存storlet调用响应头部
3. 要调用test.TestStorlet,只需输入以下内容:
%copy --storlet test.py --input path:/<container>/<object> --output path:/<container>/<object> -i myparams -o myresult============未完,突然不想翻了==========================
- openstack storlet文档(六):IPython Notebook Integration
- openstack storlet 文档(四):storlet引擎
- openstack storlet文档(五):storlet API
- openstack storlet文档(二)
- openstack storlet文档(三):storlet术语和角色
- openstack storlet 文档(七):storlet编写和部署向导
- openstack storlet 文档(九):python storlet编写和部署指南
- caffe学习笔记(六)--ipython notebook安装
- openstack swift 文档(八):Java Storlet 编写和部署指导
- IPython notebook(Jupyter Notebook) 的使用
- ipython notebook
- Ipython notebook
- ipython notebook
- ipython+notebook
- IPython notebook
- ipython notebook
- ipython notebook
- ipython + notebook
- 二分图最大匹配的König定理及其证明
- 在PL/SQL DEV进行查询后,点开把锁一样的按钮修改,点击它会跳出“these query result are not updateable,
- UI之CoordinatorLayout、AppbarLayout、CollapsingToolbarLayout的使用
- JDBC 转账事务
- 事务隔离级别 幻读 spring 测试
- openstack storlet文档(六):IPython Notebook Integration
- SPOJ962:Intergalactic Map(最大流)
- SAP连接FTP服务器
- Oracle 12C ORA-01017/ORA-28040问题总结
- CFSocket
- JavaMail中的553 Mail from must equal authorized user
- javaweb中用jstl遍历list集合
- JavaScript的null跟“”的区别
- 手把手搭建企业级服务--5.搭建Tomcat-开放8080端口