配置ECS远程命令节点

任务编排中的ECS远程命令节点,可以基于ECS云助手在远程ECS上执行Shell、PowerShell或Bat命令。本文介绍配置ECS远程命令节点的方法。

应用场景

  • 使用高级工具(例如:Python的Numpy库、Sklearn库,Spark的MLlib库)加工数据,产出各种业务模型,应用到搜索系统的精排、推荐系统。

  • 数据消费。例如,读取数据生成的Excel脚本,读取数据发邮件的脚本等。

  • 调用自建Hadoop的MapReduce程序或Spark程序等。

前提条件

  • 已购买一台ECS实例。具体操作,请参见自定义购买实例

  • ECS实例已添加标签键为dms,标签值为script-for-dms的标签。具体操作,请参见编辑实例标签

  • 已安装云助手客户端。具体操作,请参见安装云助手Agent

    说明

    2017年12月01日之后使用公共镜像创建的ECS实例,默认预装云助手客户端。

  • RAM用户(子账号)需要添加ECS的InvokeCommand权限。具体操作如下所示:

    1. 创建权限策略。您可以在可视化编辑Beta或脚本编辑两种创建策略方式中任选一种。具体操作,请参见创建自定义权限策略。添加权限策略的语句如下:

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "ecs:InvokeCommand"
            ],
            "Resource": [
              "*"
            ],
            "Condition": {}
          }
        ]
      }
    2. 为RAM用户授权

操作步骤

  1. 登录数据管理DMS 5.0
  2. 单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 集成与开发 > 数据开发 > 任务编排

    说明

    若您使用的是非极简模式的控制台,在顶部菜单栏中,选择集成与开发 > 数据开发 > 任务编排

  3. 单击目标任务流名称,进入任务流详情页面。

    说明

    如果您需要新增任务流,请参见新增任务流

  4. 在画布左侧任务类型列表中,拖拽ECS远程命令节点到画布空白区域。

  5. 双击ECS远程命令节点。

  6. 在ECS远程命令节点的配置页面,配置节点参数。

    分类

    配置项

    是否必填

    说明

    基础配置

    地域

    选择目标ECS实例的地域。

    ECS实例ID

    ECS实例ID列表中,选择执行命令的ECS实例。

    说明
    • 只有在ECS控制台上添加了键为dms,值为script-for-dms标签的实例,才会出现在ECS实例ID列表中。

    • 可以选择多个操作系统一致的ECS实例。

    命令类型

    • 如果ECS实例为Linux系统,选择Shell。

    • 如果ECS实例为Windows系统,选择Bat或PowerShell。

    超时时间

    设置执行命令的超时时间,单位为秒(s)。

    运行目录

    输入命令在ECS实例中的运行目录。

    若您不填该参数,则系统将自动为您选择默认的运行目录,Linux实例默认为/root,Windows实例默认为C:\Windows\System32

    高级配置

    用户名

    输入在ECS实例中执行命令的用户名。

    说明

    如果使用非root或system用户执行命令,需要配置用户权限。具体操作,请参见设置普通用户执行云助手命令

    Windows密码名称

    输入Windows用户的密码名称。

    说明

    设置Windows实例执行命令的用户密码名称。具体操作,请参见设置普通用户执行云助手命令

    命令配置

    命令配置

    输入需要在ECS实例中执行的命令。

    例如,执行命令python /home/admin/hello.py

  7. 可选:配置输出变量。输出变更可以被下游节点查看和引用。

    1. 在页面右侧,单击变量设置页签。

    2. 单击输出变量页签。

    3. 单击增加变量

    4. 变量文本框中,填写脚本输出变量的名称。关于脚本输出变量,请参见变量介绍

    说明

    如果多个ECS实例最后一行返回的值均为JSON格式数据,系统会合并多个ECS实例最后一行返回的值。例如,A实例返回{"a":"hello"},B实例返回{"b":"world"},那么变量a、变量b都可作为脚本输出变量。

  8. 在页面上方,单击试运行

    • 如果执行日志的最后一行出现status SUCCEEDED,表明任务试运行成功。

    • 如果执行日志的最后一行出现status FAILED,表明任务试运行失败。单击运行日志,查看执行失败原因,修改配置后重新尝试。