开发者社区> 问答> 正文

资源编排如何使用ROS ECS实例云助手功能?

资源编排如何使用ROS ECS实例云助手功能?

展开
收起
小天使爱美 2020-03-24 18:17:33 840 0
1 条回答
写回答
取消 提交回答
  • 本文为您介绍资源编排服务(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"]} } } }
    单击下一步。 在资源栈配置页面,填写栈名和创建超时(分钟)的分钟数。 单击创建。

    2020-03-24 18:25:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载

相关镜像