All Products
Search
Document Center

CloudOps Orchestration Service:ACS-RDS-BulkyModifyDBInstanceDeletionProtection

Last Updated:Dec 22, 2025

Template name

ACS-RDS-BulkyModifyDBInstanceDeletionProtection - Bulk-enable deletion protection for RDS instances

Execute Now

Template description

Enables deletion protection for multiple ApsaraDB RDS instances at a time.

Template type

Automated

Owner

Alibaba Cloud

Input parameters

Parameter

Description

Type

Required

Default value

Limit

OOSAssumeRole

The RAM role that Operation Orchestration Service (OOS) assumes.

String

Yes

regionId

The ID of the region.

String

No

{{ ACS::RegionId }}

targets

The target instances.

Json

No

{"Type": "ResourceIds", "ResourceIds": [], "RegionId": "{{ regionId }}"}

instanceIds

The list of ApsaraDB RDS instance IDs.

List

No

[]

Template content

The concurrency rate for the task execution.

Json

No

None

Output parameters

None

Permission policy that is required to execute the template

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

Details

For more information, see ACS-RDS-BulkyModifyDBInstanceDeletionProtection.yml at GitHub.

Template content

FormatVersion: OOS-2019-06-01
Description:
  en: Enables deletion protection for multiple instances.
  name-en: ACS-RDS-BulkyModifyDBInstanceDeletionProtection
  categories:
    - security
    - 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
    Default:
      Type: ResourceIds
      ResourceIds: []
      RegionId: '{{ regionId }}'
  instanceIds:
    Label:
      en: InstanceIds
    Type: List
    Default: []
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Equals:
            - ${targets}
            - {}
  rateControl:
    Label:
      en: RateControl
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
    Type: String
RamRole: '{{ OOSAssumeRole }}'
Conditions:
  instanceId:
    Fn::Equals:
      - '{{ instanceIds }}'
      - []
Tasks:
  - Name: getInstance
    When: instanceId
    Description:
      en: Gets the ApsaraDB RDS instances.
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::RDS::Instance
      RegionId: '{{regionId}}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: enableDBInstanceDeletionProtection
    Action: ACS::ExecuteApi
    Description: '{"en":"Enables deletion protection for the ApsaraDB RDS instance"}'
    Properties:
      Service: RDS
      API: ModifyDBInstanceDeletionProtection
      Parameters:
        DBInstanceId: '{{ ACS::TaskLoopItem }}'
        DeletionProtection: true
        RegionId: '{{ regionId }}'
    Loop:
      Items:
        Fn::If:
          - Fn::Equals:
              - '{{instanceIds}}'
              - []
          - '{{ getInstance.instanceIds }}'
          - '{{ instanceIds}}'
      RateControl: '{{ rateControl }}'
    OnError: ACS::END
    OnSuccess: ACS::NEXT
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - regionId
          - instanceIds
          - targets
        Label:
          default:
            en: Select RDS Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            en: Control Options