Template name
ACS-ECS-BulkyStopInstances
Template description
Stops multiple classic network-connected Elastic Compute Service (ECS) instances at a time. This applies to scenarios in which you need to stop multiple ECS instances at a time, such as resource management and cost optimization. When you configure this template, you must specify the following parameters: regionId: the region where you want to stop the ECS instances and targets: the ECS instances. After the template is executed, the IDs of the stopped ECS instances are returned.
Template type
Automated
Owner
Alibaba Cloud
Input parameters
Parameter | Description | Type | Required | Default value | Limit |
targets | The ECS instances to be stopped. | Json | Yes | ||
regionId | The region ID. | String | No | {{ ACS::RegionId }} | |
stoppedMode | The stop mode. | String | No | KeepCharging | |
forceStop | Specifies whether to forcibly stop the ECS instances. | Boolean | No | False | |
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 | "" |
Output parameters
Parameter | Description | Type |
instanceIds | List |
Permission policy that is required to execute the template
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:StopInstance"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
References
For more information, see ACS-ECS-BulkyStopInstances.yml at GitHub.
Template content
FormatVersion: OOS-2019-06-01
Description:
en: 'Bulky stops the ECS instances, applicable to scenarios that require managing and stopping multiple ECS instances simultaneously, such as resource optimization and cost management. During configuration, users need to provide the following required parameter information: Region ID (regionId), which specifies the region of the ECS instances to be stopped, and Target Instances (targets), which defines the specific ECS instances to be operated on. Upon execution, the template will return a list of the stopped instance IDs, enabling users to verify the status of the instance stop operations.'
zh-cn: the description in Chinese
name-en: Bulky Stop Instances
name-zh-cn: the description in Chinese
categories:
- instance_manage
- application_manage
- computenest
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: the description in Chinese
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Type: Json
Label:
en: TargetInstance
zh-cn: the description in Chinese
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
stoppedMode:
Description:
en: About StoppedMode details please refer to <a href="https://help.aliyun.com/document_detail/25501.html" target="_blank">document</a>
zh-cn: the description in Chinese
Label:
en: StoppedMode
zh-cn: the description in Chinese
Type: String
Default: KeepCharging
AssociationProperty: ALIYUN::ECS::Instance::StopMode
forceStop:
Label:
en: ForceStop
zh-cn: the description in Chinese
Type: Boolean
Default: false
rateControl:
Label:
en: RateControl
zh-cn: the description in Chinese
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: the description in Chinese
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances
zh-cn: the description in Chinese
Action: ACS::SelectTargets
Properties:
ResourceType: ALIYUN::ECS::Instance
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: Instances.Instance[].InstanceId
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description:
en: Stops the ECS instances
zh-cn: the description in Chinese
Properties:
regionId: '{{ regionId }}'
stoppedMode: '{{ stoppedMode }}'
instanceId: '{{ ACS::TaskLoopItem }}'
forceStop: '{{ forceStop }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
Outputs:
instanceIds:
Type: List
Value: '{{ getInstance.instanceIds }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- stoppedMode
Label:
default:
zh-cn: the description in Chinese
en: Configure Parameters
- Parameters:
- regionId
- targets
Label:
default:
zh-cn: the description in Chinese
en: Select Ecs Instances
- Parameters:
- forceStop
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: the description in Chinese
en: Control Options