笔记本存储工作流程
项目描述
存储库
此存储库提供了用于存储、调度和发布笔记本的工具和流程建议。
自动笔记本版本控制
每次保存笔记本都会在对象存储上创建一个不可变的笔记本副本。
为了便于实施,我们将依赖于S3作为对象存储,使用带版本控制的存储桶。
存储路径
所有笔记本都存档到单个带版本控制的S3存储桶中,特定的前缀表示笔记本的生命周期
/workspace
- 用户编辑的地方/scheduled
- 当前安排的笔记本/published
- 公开笔记本(到组织)
每个笔记本路径都是一个命名空间,外部服务将其连接到计划。我们存档版本,保持路径完整(直到用户更改它们)。
前缀 | 意图 |
---|---|
/workspace/kylek/notebooks/mine.ipynb |
“草案”中的笔记本 |
/scheduled/kylek/notebooks/mine.ipynb |
当前安排的副本 |
/published/kylek/notebooks/mine.ipynb |
当前发布的副本 |
过渡到此存储计划
由于大多数人使用常规文件系统,我们将从写入/workspace
前缀作为归档存储开始(使用post_save_hook
在Jupyter内容管理器中保存时写入)。
配置
from depository import depositoryContentsArchiver
# jupyter config
# At ~/.jupyter/jupyter_notebook_config.py for user installs
# At __ for system installs
c = get_config()
c.NotebookApp.contents_manager_class = depositoryContentsArchiver
c.depository.workspace_prefix = "/workspace/kylek/notebooks"
c.depository.published_prefix = "/published/kylek/notebooks"
c.depository.scheduled_prefix = "/scheduled/kylek/notebooks"
# Optional, in case you're using a different contents manager
# This defaults to notebook.services.contents.manager.ContentsManager
# c.depository.Archiver.underlying_contents_manager_class = ADifferentContentsManager
c.depository.Backend = "s3"
c.depository.S3.bucket = "<bucket-name>"
# Note: if depository is used from an EC2 instance with the right IAM role, you don't
# have to specify these
c.depository.S3.access_key_id = <AWS Access Key ID / IAM Access Key ID>
c.depository.S3.secret_access_key = <AWS Secret Access Key / IAM Secret Access Key>
项目详情
关闭
depository-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee0c31744ad9690e59c3c13477756b2e29a9fccefe4b546f1da377d5a6a3e18b |
|
MD5 | 3198c50d9995866cb8a52017fad7ba92 |
|
BLAKE2b-256 | 338e10509e75c9315e26ddd752cfbcd7096637883be25f407dd04ee4b653ee1b |