すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances

最終更新日:Dec 21, 2025

テンプレート名

ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances - RDS インスタンスの開始と停止、または再起動をスケジュールします

今すぐ実行

テンプレートの説明

スケジュールに従って ApsaraDB RDS インスタンスを起動してから停止、または停止してから起動します。

テンプレートタイプ

自動

所有者

Alibaba Cloud

入力パラメーター

パラメーター

説明

データ型

必須

デフォルト値

制限

targets

宛先インスタンス。

Json

はい

dailyStartTime

インスタンスが毎日起動される時刻。

String

はい

dailyStopTime

インスタンスが毎日停止される時刻。

String

はい

regionId

リージョン ID。

String

いいえ

{{ ACS::RegionId }}

startFirstOrStopFirst

インスタンスを起動または停止するモード。

String

いいえ

StartFirst

weekdays

タスクを実行する曜日。

String

いいえ

*

triggerEndDate

スケジュールされたタスクの終了時刻。

String

いいえ

2099-12-01T00:00:00Z

rateControl

タスク実行の同時実行率

Json

いいえ

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

OOSAssumeRole

CloudOps Orchestration Service (OOS) によって引き受けられる RAM ロール。

String

いいえ

AliyunServiceRoleForOOSInstanceScheduler

出力パラメーター

該当なし。

テンプレートを実行するために必要な権限ポリシー

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

詳細

ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  en: Schedule to start and stop RDS instances
  ja: RDS インスタンスの開始と停止をスケジュールします
  name-en: ACS-RDS-ScheduleToStartAndStopOrStopAndStartInstances
  name-ja: RDSインスタンスの開始・停止または停止・開始のスケジュール
  categories:
    - time_trigger
    - rds
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      ja: リージョン ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: TargetInstance
      ja: ターゲットインスタンス
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::RDS::Instance
      RegionId: regionId
      ChargeType: PostPaid
  startFirstOrStopFirst:
    Type: String
    Label:
      en: StartFirstOrStopFirst
      ja: 開始優先または停止優先
    AllowedValues:
      - StartFirst
      - StopFirst
    Default: StartFirst
    AssociationPropertyMetadata:
      LocaleKey: OOSStopInstanceMode
  weekdays:
    Label:
      en: Task execution cycle
      ja: タスク実行サイクル
    Type: String
    AssociationProperty: TimeTriggerWeekly
    Default: '*'
    AssociationPropertyMetadata:
      Mode: '${startFirstOrStopFirst}'
      StartTime: '${dailyStartTime}'
      StopTime: '${dailyStopTime}'
  dailyStartTime:
    Label:
      en: DailyStartTime
      ja: 毎日の開始時刻
    Type: String
    AssociationProperty: DateTime
    AssociationPropertyMetadata:
      Format: HH:mm:ssZ
  dailyStopTime:
    Label:
      en: DailyStopTime
      ja: 毎日の停止時刻
    Type: String
    AssociationProperty: DateTime
    AssociationPropertyMetadata:
      Format: HH:mm:ssZ
  triggerEndDate:
    Label:
      en: The end date of time trigger
      ja: 時間トリガーの終了日
    Type: String
    AssociationProperty: DateTime
    AssociationPropertyMetadata:
      Format: YYYY-MM-DDTHH:mm:ssZ
    Default: '2099-12-01T00:00:00Z'
  rateControl:
    Label:
      en: RateControl
      ja: レート制御
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      ja: OOS が引き受けるロール
    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
      ja: cron 式を指定して、スケジュールされたタスクをトリガーします
    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
      ja: RDS インスタンスを取得します
    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
      ja: 最初に RDS インスタンスを開始します
    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
      ja: インスタンスの停止時刻までスリープします
    When: StartFirst
    Properties:
      Duration:
        Fn::DurationBetween:
          - '{{ dailyStartTime }}'
          - '{{ dailyStopTime }}'
  - Name: stopInstanceSecond
    Action: ACS::RDS::StopInstance
    Description:
      en: Stops the RDS instances
      ja: RDS インスタンスを停止します
    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
      ja: 最初に RDS インスタンスを停止します
    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
      ja: インスタンスの開始時刻までスリープします
    When: StopFirst
    Properties:
      Duration:
        Fn::DurationBetween:
          - '{{ dailyStopTime }}'
          - '{{ dailyStartTime }}'
  - Name: startInstance
    Action: ACS::RDS::StartInstance
    Description:
      en: Starts the RDS instances
      ja: RDS インスタンスを開始します
    When: StopFirst
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.Instances.Instance[].InstanceId }}'