Planifie les opérations quotidiennes de démarrage et d'arrêt des instances ApsaraDB RDS.
Nom du modèle
ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances : planifie le démarrage, l'arrêt ou le redémarrage des instances RDS
description du modèle
Démarre puis arrête, ou arrête puis démarre, les instances ApsaraDB RDS selon une planification quotidienne.
type de modèle
Automatisé
Propriétaire
Alibaba Cloud
Paramètres d'entrée
|**Paramètre**
|
**description**
|
**type de données**
|
**Obligatoire**
|
**Valeur par défaut**
|
**Limite**
| | --- | --- | --- | --- | --- | --- | |
targets
|
Instances RDS cibles.
|
Json
|
Oui
| | | |
dailyStartTime
|
Heure de démarrage quotidienne de l'instance.
|
String
|
Oui
| | | |
dailyStopTime
|
Heure d'arrêt quotidienne de l'instance.
|
String
|
Oui
| | | |
regionId
|
ID de la région.
|
String
|
Non
|
{{ ACS::RegionId }}
| | |
startFirstOrStopFirst
|
Indique s'il faut démarrer ou arrêter les instances en premier.
|
String
|
Non
|
StartFirst
| | |
weekdays
|
Jours de la semaine pour l'exécution de la tâche.
|
String
|
Non
|
*
| | |
triggerEndDate
|
Date de fin de la planification.
|
String
|
Non
|
2099-12-01T00:00:00Z
| | |
rateControl
|
Paramètres de contrôle de la concurrence.
|
Json
|
Non
|
{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10}
| | |
OOSAssumeRole
|
Rôle RAM endossé par OOS.
|
String
|
Non
|
AliyunServiceRoleForOOSInstanceScheduler
| |
Paramètres de sortie
S.O.
permissions requises
{
"Version": "1",
"Statement": [
{
"Action": [
"rds:DescribeDBInstances",
"rds:StartDBInstance",
"rds:StopDBInstance"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Détails
ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances
Contenu du modèle
FormatVersion: OOS-2019-06-01
Description:
en: Schedule to start and stop RDS instances
name-en: ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances
categories:
- time_trigger
- rds
Parameters:
regionId:
Type: String
Label:
en: RegionId
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Type: Json
Label:
en: TargetInstance
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: ALIYUN::RDS::Instance
RegionId: regionId
ChargeType: PostPaid
startFirstOrStopFirst:
Type: String
Label:
en: StartFirstOrStopFirst
AllowedValues:
- StartFirst
- StopFirst
Default: StartFirst
AssociationPropertyMetadata:
LocaleKey: OOSStopInstanceMode
weekdays:
Label:
en: Task execution cycle
Type: String
AssociationProperty: TimeTriggerWeekly
Default: '*'
AssociationPropertyMetadata:
Mode: '${startFirstOrStopFirst}'
StartTime: '${dailyStartTime}'
StopTime: '${dailyStopTime}'
dailyStartTime:
Label:
en: DailyStartTime
Type: String
AssociationProperty: DateTime
AssociationPropertyMetadata:
Format: HH:mm:ssZ
dailyStopTime:
Label:
en: DailyStopTime
Type: String
AssociationProperty: DateTime
AssociationPropertyMetadata:
Format: HH:mm:ssZ
triggerEndDate:
Label:
en: The end date of time trigger
Type: String
AssociationProperty: DateTime
AssociationPropertyMetadata:
Format: YYYY-MM-DDTHH:mm:ssZ
Default: '2099-12-01T00:00:00Z'
rateControl:
Label:
en: RateControl
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
Type: String
Default: AliyunServiceRoleForOOSInstanceScheduler
RamRole: '{{ OOSAssumeRole }}'
Conditions:
StartFirst:
Fn::Equals:
- StartFirst
- '{{startFirstOrStopFirst}}'
StopFirst:
Fn::Equals:
- StopFirst
- '{{startFirstOrStopFirst}}'
Tasks:
- Name: timerTrigger
Action: ACS::TimerTrigger
Description:
en: Triggers a task as scheduled by specifying a cron expression
Properties:
Type: cron
EndDate: '{{ triggerEndDate }}'
Expression:
Fn::Join:
- ' '
- - '0'
- Fn::Select:
- 1
- Fn::Split:
- ':'
- Fn::If:
- Fn::Equals:
- StartFirst
- '{{startFirstOrStopFirst}}'
- '{{ dailyStartTime }}'
- '{{ dailyStopTime }}'
- Fn::Select:
- 0
- Fn::Split:
- ':'
- Fn::If:
- Fn::Equals:
- StartFirst
- '{{startFirstOrStopFirst}}'
- '{{ dailyStartTime }}'
- '{{ dailyStopTime }}'
- '?'
- '*'
- '{{ weekdays }}'
- Name: getInstance
Description:
en: Gets the RDS instances
Action: ACS::SelectTargets
Properties:
ResourceType: ALIYUN::RDS::Instance
RegionId: '{{regionId}}'
Filters:
- '{{ targets }}'
- Name: startInstanceFirst
Action: ACS::RDS::StartInstance
Description:
en: Starts the RDS instances first
When: StartFirst
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.Instances.Instance[].InstanceId }}'
- Name: sleepToStopTime
Action: ACS::Sleep
Description:
en: Sleeps until the instance stop time
When: StartFirst
Properties:
Duration:
Fn::DurationBetween:
- '{{ dailyStartTime }}'
- '{{ dailyStopTime }}'
- Name: stopInstanceSecond
Action: ACS::RDS::StopInstance
Description:
en: Stops the RDS instances
When: StartFirst
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.Instances.Instance[].InstanceId }}'
- Name: stopInstanceFirst
Action: ACS::RDS::StopInstance
Description:
en: Stops the RDS instances first
When: StopFirst
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.Instances.Instance[].InstanceId }}'
- Name: sleepToStartTime
Action: ACS::Sleep
Description:
en: Sleeps until the instance start time
When: StopFirst
Properties:
Duration:
Fn::DurationBetween:
- '{{ dailyStopTime }}'
- '{{ dailyStartTime }}'
- Name: startInstance
Action: ACS::RDS::StartInstance
Description:
en: Starts the RDS instances
When: StopFirst
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.Instances.Instance[].InstanceId }}'