全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances

更新时间:Dec 21, 2025

Nama template

ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances – Menjadwalkan pengaktifan dan penghentian atau restart instans RDS

Eksekusi Sekarang

Deskripsi template

Memulai dan menghentikan instans ApsaraDB RDS sesuai jadwal.

Tipe template

Otomatis

Pemilik

Alibaba Cloud

Parameter input

Parameter

Deskripsi

Tipe data

Diperlukan

Nilai default

Batasan

targets

Instans tujuan.

Json

Ya

dailyStartTime

Waktu ketika instans dimulai setiap hari.

String

Ya

dailyStopTime

Waktu ketika instans dihentikan setiap hari.

String

Ya

regionId

ID wilayah.

String

Tidak

{{ ACS::RegionId }}

startFirstOrStopFirst

Mode dalam memulai atau menghentikan instans.

String

Tidak

StartFirst

weekdays

Hari dalam seminggu untuk menjalankan tugas.

String

Tidak

*

triggerEndDate

Waktu akhir tugas terjadwal.

String

Tidak

2099-12-01T00:00:00Z

rateControl

Laju konkurensi eksekusi tugas

Json

Tidak

{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10}

OOSAssumeRole

Peran RAM yang diasumsikan oleh CloudOps Orchestration Service (OOS).

String

Tidak

AliyunServiceRoleForOOSInstanceScheduler

Parameter output

Tidak tersedia.

Kebijakan izin yang diperlukan untuk mengeksekusi template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "rds:DescribeDBInstances",
                "rds:StartDBInstance",
                "rds:StopDBInstance"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "oos:GetApplicationGroup"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Detail

ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances

Konten Template

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 }}'