本文为您介绍资源编排服务(ROS)支持的ECS实例云助手功能。
前提条件 进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。
背景信息 ROS新增以下两种资源类型,支持ECS实例云助手功能: ALIYUN::ECS::Command (用于创建云助手命令) ALIYUN::ECS::Invocation (用于执行云助手命令) 通过以上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::Command。Properties的设置如下: 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::Invocation。Properties的设置如下: CommandId表示命令ID。此处使用Fn::GetAtt方法从MyCommand中获取CommandId。 InstanceIds表示命令执行的实例ID列表。最多支持20台实例。实例需要为专有网络运行中的实例。 Timed表示命令是否周期执行。 Frequency表示命令执行周期。该参数取值遵循Cron表达式。详情请参见Cron表达式。 最后,通过Outputs标签返回新建命令的CommandId和InvokeId。
创建云助手资源栈 登录资源编排控制台。 在左侧导航栏,单击资源栈管理。 在右上角区域,单击新建资源栈。 在选择地域(region)列表,选择您即将创建的资源的所属地域。 在模板源列表,选择直接输入。 填写模板数据。代码如下。 { "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"]} } } }
单击下一步。 在资源栈配置页面,填写栈名和创建超时(分钟)的分钟数。 单击创建。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。