个人开发环境制作镜像

Data Studio新版数据开发支持将个人开发环境制作成镜像,以供其他环境使用。本文将介绍如何在个人开发环境制作个人开发实例镜像。

前提条件

  • 已创建个人开发环境实例。

  • 完成自定义镜像的创建,并绑定目标工作空间。详情请参见:镜像管理

  • 完成自定义镜像的VPC绑定。

    说明
    • 自定义镜像绑定的VPC需与个人开发环境实例绑定的VPC保持一致。

    • 如果您个人开发环境运行程序,需从公网获取第三方包,为VPC配置公网,请参见使用公网NAT网关SNAT功能访问互联网

制作个人开发环境实例镜像

  1. 单击顶部个人开发环境·请选择

  2. 单击管理实例,然后在个人开发环境实例列表中,找到需要制作镜像的实例,单击操作列的制作镜像

    说明

    您需确保您所创建的个人开发环境状态处于运行中,否则无法操作。

  3. 配置制作镜像的各项参数。

    说明
    • 制作镜像需要使用容器镜像服务先创建镜像实例、命名空间和镜像仓库,更多信息,请参见容器镜像服务

    • 镜像实例在访问控制中绑定的VPC需要与个人开发环境绑定的VPC相同,否则无法保存。

  4. 镜像制作完成后,还需要在镜像管理的自定义镜像页签中发布该镜像,该镜像才可以被DataWorks节点使用,在调度任务配置中选择。

最佳实践:制作Python镜像

步骤一:完成个人开发环境

  1. 创建个人开发环境(可选)。

    1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

    2. 单击顶部个人开发环境·请选择

      • 如果您还没有个人开发环境实例,需要您自主创建,单击前往新建,按照界面提示进行实例创建。

      • 如果您已有个人开发环境实例,则单击管理实例,然后个人开发环境实例列表中,单击新建实例,按照界面提示进行实例创建。

      更多创建个人开发环境实例详情可参见:创建个人开发环境实例

  2. 创建Python文件。

    1. 在数据开发页面,单击顶部个人开发环境·请选择选择已创建的个人开发环境实例,进入个人开发环境。

    2. 进入个人开发环境后,选中左侧个人目录下的workspace右键新增文件,并将文件名命名为.py文件。

    3. 单击进入已创建的.py文件编辑页面。

步骤二:配置自定义类

安装开源工具类

  1. 编辑Python代码。

    编辑已在个人目录下创建的.py文件,Python代码将使用jieba库进行分词,尝试对输入进行分词:“我是大数据治理开发平台文档”,使用默认镜像运行时,会出现No module named 'jieba'报错,以下为示例代码:

    import sys
    import jieba
    
    for arg in sys.argv:
        print(f"argv: {arg}")
    
    
    seg_list = jieba.cut(sys.argv[1], cut_all=False)
    
    print("Default Mode: " + "/ ".join(seg_list))
    
    print('finish')
  2. 完善Python环境。

    DataWorks的默认镜像不包含jieba库,需进行手动安装。

    1. 在.py编辑页面,单击左上角image按钮,选择在专用终端中运行Python文件

      image

    2. 代码运行结果出错:No module named 'jieba'后,即可通过终端安装jieba库。

      pip install jieba
    3. 安装成功后,再次通过专用终端运行Python文件时,将会正常运行。

      image

    完成以上步骤后,个人开发环境实例已完成了对jieba库的安装,在接下来的步骤中,只需将该个人开发环境制作成镜像即可。

安装内部工具类

通过Git clone 克隆Python代码安装

在通过git clone 克隆Python代码安装前,必须确保可根据Git链接获取到对应的Python代码。

  1. 打开个人空间的终端控制台,通过以下命令进入个人目录空间。

    cd /mnt/workspace
  2. 通过Git clone 克隆Git中的Python代码并安装。

    1. 克隆Git代码至DataWorks个人目录空间。

      git clone https://github.com/example/Example-Python.git

      image

    2. 进入Python目录下。

      cd Example-Python
    3. 安装Python代码。

      pip install .

      image

  3. 安装成功后,即可通过Python代码调用该依赖。

通过本地上传Python代码安装

  1. 拖拽本地Python代码项目,上传至个人开发空间。

  2. 安装从本地上传的Python代码。

    1. 通过终端控制台进入本地上传的Python项目文件夹内。

      cd //mnt/workspace/"Python代码文件夹"
    2. 通过以下命令对该Python代码进行安装。

      pip install .

      image

  3. 安装成功后,即可通过Python代码调用该依赖。

步骤三:Python代码开发调试

安装完成自定义类后,需在个人开发环境中对相应的工具类进行测试。

  1. 新建Python文件:选中左侧个人目录下的workspace右键新增文件,并将文件名命名为.py文件

    image

  2. 开发调试代码并运行:编辑使用到已安装的工具类的Python代码,并运行代码。

    image

    调试代码运行成功后,即可进行下一步制作自定义镜像。

步骤四:个人开发环境生成自定义镜像

  1. 在完成个人开发环境配置后,即可单击下拉顶部个人开发环境·请选择,选中实例管理,打开个人开发环境实例列表面板。

  2. 制作自定义镜像。

    在个人开发环境实例列表在已安装工具类的个人开发环境实例的操作列,单击制作镜像后,配置在前提条件中已准备好的镜像实例命名空间镜像仓库以及自定义镜像版本

    image

  3. 完成配置后单击确认,开始制作镜像。

    image

    说明

    镜像制作时间约1~5分钟,请耐心等待。

  4. 镜像制作成功后,即可进入镜像管理,对已制作成功的自定义镜像进行发布以及修改其归属空间,详情可参见发布镜像修改镜像归属空间

步骤五:使用镜像

镜像制作成功并发布后,即可在项目空间下,通过获取镜像环境来进行Python开发。

  1. 在数据开发页面左侧项目目录中单击image按钮选择新建节点 > 通用 > Python节点创建Python节点,用来进行Python开发。

    image

  2. 代码开发完成后,单击右侧调试配置,配置相应的资源组,以及选择Python代码需要使用到的工具环境镜像

    image

  3. 单击image按钮,对Python代码进行调试。

  4. 调试成功后,即可单击调度配置,进入调度策略页签内,为该Python节点配置正式调度时所使用的镜像

    说明

    该镜像与调试配置中的镜像为同一镜像。

  5. 完成调度配置后,即可对Python节点保存发布

后续步骤

持久化镜像:DataWorks支持将自定义镜像构建为持久化镜像,无需每次都重新部署镜像环境,每次运行任务节点时使用同一个镜像环境,不仅确保了运行环境的一致性,还有效节省了任务运行时间、计算成本和流量成本。详情可参见:构建持久化镜像

场景示例

若用户有自己的Python程序,已完成了相应依赖的安装,并已打包成.tar.gz,该压缩包需要在DataWorks中创建镜像使用的话。需要按照以下操作进行。

  1. 拖拽上传Python程序压缩包,并通过终端解压并查看包结构。

    cat '解压后的Python项目名' /bin/pip
  2. 根据pip的第一行注释,可以查看到当前Python编译路径。

    #创建查看到的Python编译路径。
    mkdir -p '查看到的Python编译路径'
    
    # 将解压的文件夹移动到python当时编译的路径。
    mv '解压后的Python项目名' /'查看到的Python编译路径'
    
    # 将python相关包替换为自己Python程序的。
    for src in idle3 pydoc3 python3 python3-config pip3; do \
        dst="$(echo "$src" | tr -d 3)"; \
        [ -s "/usr/local/bin/$src" ]; \
        [ ! -e "/usr/local/bin/$dst" ]; \
        mv /usr/local/bin/$dst /usr/local/bin/${dst}_bak
        ln -svT "查看到的Python编译路径/bin/$src" "/usr/local/bin/$dst"; \
    done
  3. 完成以上步骤,并在个人开发环境调试运行成功后,即可按照步骤四:个人开发环境生成自定义镜像,生成自定义镜像。