本文为您介绍资源编排服务(ROS)支持的ECS实例云助手功能。

前提条件

进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

ROS新增以下两种资源类型,支持ECS实例云助手功能:

通过以上ROS资源类型,您可以便捷的创建脚本,对运行中的一台或多台实例执行bat/PowerShell(Windows 实例)脚本或者Shell脚本(Linux 实例)。您也可以设置命令的执行周期,使实例维持在某种状态、获取实例监控以及日志信息或者守护进程等。云助手概述不会主动发起任何操作,所有的操作都在您的可控范围内。

创建云助手命令

下例为您介绍如何通过ROS模板创建云助手命令。

{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Resources" : {
    "MyCommand": {
      "Type": "ALIYUN::ECS::Command",
      "Properties": {
        'Name': 'my-command',
        'Type': 'RunShellScript',
        'Description': 'my-command-description',
        'CommandContent': 'ZWNobyAxMjM='
      }
    }
  },
  "Outputs": {
    "CommandId": {
        "Value" : {"Fn::GetAtt": ["MyCommand", "CommandId"]}
    }
  }
}                    
在本例中,Type(资源类型)设置为ALIYUN::ECS::CommandProperties的设置如下:
  • Name表示命令名称。此处设置为my-command
  • Type表示命令类型。此处设置为RunShellScript
  • Description表示命令描述。此处设置为my-command-description
  • CommandContent表示命令脚本Base64编码后的内容,大小不能超过16KB。此处设置为ZWNobyAxMjM=(echo 123 Base64 encoded)。

最后,通过Outputs标签返回新建命令的CommandId

说明 目前,云助手支持以下三种脚本:
  • Windows实例适用的Bat脚本(RunBatScript)
  • Windows实例适用的PowerShell脚本(RunPowerShellScript)
  • Linux实例适用的Shell脚本(RunShellScript)

执行云助手命令

下例为您介绍如何通过ROS模板执行云助手命令。

{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Resources" : {
    "MyCommand": {
      "Type": "ALIYUN::ECS::Command",
      "Properties": {
        'Name': 'my-command',
        'Type': 'RunShellScript',
        'Description': 'my-command-description',
        'CommandContent': 'ZWNobyAxMjM='
      }
    },
    "MyInvocation": {
      "Type": "ALIYUN::ECS::Invocation",
      "Properties": {
        'CommandId': { "Fn::GetAtt" : [ "MyCommand", "CommandId" ] },
        'InstanceIds': [
            "i-2zefq1f3ynnrr89qkzg9"
        ],
        'Timed': true,
        'Frequency': '0/10 0/1 * * * ?'
      }
    }
  },
  "Outputs": {
    "CommandId": {
        "Value" : {"Fn::GetAtt": ["MyCommand", "CommandId"]}
    },
    "InvokeId": {
        "Value" : {"Fn::GetAtt": ["MyInvocation", "InvokeId"]}
    }
  }
}            
在本例中,Type(资源类型)设置为ALIYUN::ECS::InvocationProperties的设置如下:
  • CommandId表示命令ID。此处使用Fn::GetAtt方法从MyCommand中获取CommandId
  • InstanceIds表示命令执行的实例ID列表。最多支持20台实例。实例需要为专有网络运行中的实例。
  • Timed表示命令是否周期执行。
  • Frequency表示命令执行周期。该参数取值遵循Cron表达式。详情请参见Cron表达式

最后,通过Outputs标签返回新建命令的CommandIdInvokeId

创建云助手资源栈

  1. 登录资源编排控制台
  2. 在左侧导航栏,单击资源栈管理
  3. 在右上角区域,单击新建资源栈
  4. 选择地域(region)列表,选择您即将创建的资源的所属地域。
  5. 模板源列表,选择直接输入
  6. 填写模板数据。代码如下。
    {
      "ROSTemplateFormatVersion" : "2015-09-01",
      "Resources" : {
        "MyCommand": {
          "Type": "ALIYUN::ECS::Command",
          "Properties": {
            'Name': 'my-command',
            'Type': 'RunShellScript',
            'Description': 'my-command-description',
            'CommandContent': 'ZWNobyAxMjM='
          }
        }
      },
      "Outputs": {
        "CommandId": {
            "Value" : {"Fn::GetAtt": ["MyCommand", "CommandId"]}
        }
      }
    }                    
  7. 单击下一步
  8. 资源栈配置页面,填写栈名创建超时(分钟)的分钟数。
  9. 单击创建