Template name
ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand
Template description
Uses a lifecycle hook to download an Object Storage Service (OSS) object to Elastic Compute Service (ECS) instances and run commands on the ECS instances.
Template type
Automated
Owner
Alibaba Cloud
Input parameters
Parameter | Description | Type | Required | Default value | Limit |
bucketName | The name of the OSS bucket. | String | Yes | ||
objectName | The name of the OSS object. | String | Yes | ||
destinationDir | The directory to which the object is downloaded in the ECS instances. | String | Yes | ||
URLExpirationTime | The validity period of the download URL of the OSS object. | Number | No | 6000 | |
OSSRegion | The region in which the OSS bucket resides. | String | No | {{ ACS::RegionId }} | |
whetherSaveToFile | Specifies whether to save the file content to a specific file. | Boolean | No | True | |
commandContent | The Cloud Assistant commands to be run on the ECS instance. | String | No | echo hello | |
timeout | The timeout period for running the commands on the ECS instance. | Number | No | 600 | |
regionId | The region ID. | String | No | ${regionId} | |
instanceIds | The IDs of the ECS instances. | List | No | ['${instanceIds}'] | |
lifecycleHookId | The lifecycle hook ID. | String | No | ${lifecycleHookId} | |
lifecycleActionToken | The token of a specific scaling activity that is associated with the instances. | String | No | ${lifecycleActionToken} | |
rateControl | The rate control settings. | Json | No | {'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10} | |
OOSAssumeRole | The Resource Access Management (RAM) role that is assumed by CloudOps Orchestration Service (OOS). | String | No | OOSServiceRole |
Output parameters
None
Policy that is required to execute the template
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:CompleteLifecycleAction"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
References
ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand
Template content
FormatVersion: OOS-2019-06-01
Description:
en: Use lifecycleHook to download OSS file and run command in the specified scaling activity ECS instance
zh-cn: 使用生命周期挂钩下载OSS文件到ECS实例并执行命令
name-en: ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand
name-zh-cn: 使用生命周期挂钩下载OSS文件到ECS实例并执行命令
categories:
- elastic_manage
Parameters:
bucketName:
Label:
en: BucketName
zh-cn: OSS bucket名称
Type: String
objectName:
Label:
en: ObjectName
zh-cn: OSS对象名称
Type: String
URLExpirationTime:
Description:
en: Expiration time of OSS file download url
zh-cn: OSS文件下载链接的过期时间
Type: Number
Default: 6000
OSSRegion:
Label:
en: OSSRegion
zh-cn: OSS所在地域
Type: String
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
destinationDir:
Label:
en: DestinationDir
zh-cn: 实例中文件复制的目标目录
Type: String
whetherSaveToFile:
Label:
en: whetherSaveToFile
zh-cn: 是否将内容下载到特定文件
Type: Boolean
Default: true
commandContent:
Label:
en: CommandContent
zh-cn: 在ECS实例中执行的云助手命令
Type: String
AssociationProperty: Code
Default: echo hello
timeout:
Label:
en: Timeout
zh-cn: ECS实例中执行命令的超时时间
Type: Number
Default: 600
regionId:
Label:
en: RegionId
zh-cn: 地域ID
Description:
en: The ID of region
zh-cn: '地域ID,请使用弹性伸缩系统默认值 ${regionId}'
Type: String
Default: '${regionId}'
instanceIds:
Label:
en: InstanceIds
zh-cn: ECS实例ID列表
Description:
en: The ID list of the ECS instance
zh-cn: 'ECS实例ID列表,请使用弹性伸缩系统默认值 ["${instanceId}"]'
Type: List
Default:
- '${instanceIds}'
lifecycleHookId:
Label:
en: LifecycleHookId
zh-cn: 生命周期挂钩ID
Description:
en: The ID of the lifecycle hook
zh-cn: '生命周期挂钩ID,请使用弹性伸缩系统默认值 ${lifecycleHookId}'
Type: String
Default: '${lifecycleHookId}'
lifecycleActionToken:
Label:
en: LifecycleActionToken
zh-cn: 实例关联的特定伸缩活动的令牌
Description:
en: The token that indicates a specific scaling activity associated with an instance
zh-cn: '实例关联的特定伸缩活动的令牌,请使用弹性伸缩系统默认值 ${lifecycleActionToken}'
Type: String
Default: '${lifecycleActionToken}'
rateControl:
Label:
en: RateControl
zh-cn: 速率控制
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS扮演的RAM角色
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: downloadFileAndRunCommand
OnError: CompleteLifecycleActionForAbandon
OnSuccess: CompleteLifecycleActionForContinue
Action: ACS::ECS::DownloadOSSFileAndRunCommand
Description:
en: Downloads file to the ECS instances adn run command
zh-cn: 下载文件到实例并执行命令
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
bucketName: '{{ bucketName }}'
objectName: '{{ objectName }}'
URLExpirationTime: '{{ URLExpirationTime }}'
OSSRegion: '{{ OSSRegion }}'
destinationDir: '{{ destinationDir }}'
whetherSaveToFile: '{{ whetherSaveToFile }}'
commandContent: '{{ commandContent }}'
timeout: '{{ timeout }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ instanceIds }}'
- Name: CompleteLifecycleActionForContinue
Action: 'ACS::ExecuteAPI'
Description:
en: Modify lifecycle action for continue
zh-cn: 修改伸缩活动的等待状态为继续完成
OnSuccess: 'ACS::END'
Properties:
Service: ESS
API: CompleteLifecycleAction
Parameters:
RegionId: '{{ regionId }}'
LifecycleHookId: '{{ lifecycleHookId }}'
LifecycleActionToken: '{{ lifecycleActionToken }}'
LifecycleActionResult: CONTINUE
- Name: CompleteLifecycleActionForAbandon
Action: 'ACS::ExecuteAPI'
Description:
en: Complete lifecycle action for Abandon
zh-cn: 修改伸缩活动的等待状态为弃用
Properties:
Service: ESS
API: CompleteLifecycleAction
Parameters:
RegionId: '{{ regionId }}'
LifecycleHookId: '{{ lifecycleHookId }}'
LifecycleActionToken: '{{ lifecycleActionToken }}'
LifecycleActionResult: ABANDON