テンプレート名
ACS-ECS-ScheduleToStopInstances:スケジュールに従って ECS インスタンスを停止
テンプレートの説明
このテンプレートは、スケジュールに従って Elastic Compute Service (ECS) インスタンスを停止します。開発環境やテスト環境を自動的に停止してコストを節約するために使用できます。テンプレートを設定する際に、必要なリージョン ID、cron 式、およびターゲットインスタンスを指定します。テンプレートは、定義されたスケジュールに基づいて指定されたインスタンスを停止します。
テンプレートタイプ
自動化
所有者
Alibaba Cloud
入力パラメーター
パラメーター名 | 説明 | タイプ | 必須 | デフォルト値 | 制約 |
endDate | タイマートリガーの終了時刻。 | String | はい | ||
targets | ターゲットインスタンス。 | Json | はい | ||
regionId | リージョン ID。 | String | いいえ | {{ ACS::RegionId }} | |
cron | cron 式。 | String | いいえ | 0 0 12 ? * * | |
timeZone | タイムゾーン。 | String | いいえ | UTC | |
rateControl | タスク実行の同時実行レート。 | Json | いいえ | {'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10} | |
OOSAssumeRole | Operation Orchestration Service (OOS) が引き受ける Resource Access Management (RAM) ロール。 | String | いいえ | OOSServiceRole |
出力パラメーター
パラメーター名 | 説明 | タイプ |
instanceIds | List |
必要な権限
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:StopInstance"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
詳細
詳細については、「ACS-ECS-ScheduleToStopInstances の詳細」をご参照ください。
テンプレートコンテンツ
FormatVersion: OOS-2019-06-01
Description:
ja: 'スケジュールに従って ECS インスタンスを停止します。開発環境やテスト環境を自動的に停止してコストを節約するなど、決まった時間に ECS インスタンスを停止する必要があるシナリオに適用されます。設定時には、操作対象の ECS インスタンスのリージョンを指定するリージョン ID (regionId)、タスクのスケジュールを定義する Cron 式 (cron)、操作対象の特定の ECS インスタンスを定義するターゲットインスタンス (targets) を指定する必要があります。実行すると、テンプレートは設定されたスケジュールに従って ECS インスタンスを停止します。'
name-ja: ACS-ECS-ScheduleToStopInstances-スケジュールに従ってECSインスタンスを停止
categories:
- time_trigger
Parameters:
regionId:
Type: String
Label:
ja: リージョン ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
cron:
Description:
ja: '詳細については、https://www.alibabacloud.com/help/document_detail/169784.html をご参照ください。'
Label:
ja: Cron 式
Type: String
AssociationProperty: Cron
Default: 0 0 12 ? * *
endDate:
Description:
ja: 'フォーマット:yyyy-MM-ddTHH:mm:ssZ。'
Label:
ja: 終了日時
Type: String
AssociationProperty: DateTime
AssociationPropertyMetadata:
Format: 'YYYY-MM-DDTHH:mm:ssZ'
timeZone:
Label:
ja: タイムゾーン
Type: String
AssociationProperty: TimeZone
Default: UTC
targets:
Type: Json
Label:
ja: ターゲットインスタンス
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
rateControl:
Label:
ja: レート制御
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
ja: OOSAssumeRole
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: timerTrigger
Action: ACS::TimerTrigger
Description:
ja: タイプと式を指定して、スケジュールどおりにタスクをトリガーします
Properties:
Type: cron
Expression: '{{ cron }}'
EndDate: '{{ endDate }}'
TimeZone: '{{ timeZone }}'
- Name: getInstance
Description:
ja: ECS インスタンスを表示します
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:
ja: ECS インスタンスを停止します
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
Outputs:
instanceIds:
Type: List
Value: '{{ getInstance.instanceIds }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- timeZone
- cron
- endDate
Label:
default:
ja: タイマートリガーの設定
- Parameters:
- regionId
- targets
Label:
default:
ja: ECS インスタンスの選択
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
ja: 制御オプション