全部產品
Search
文件中心

CloudOps Orchestration Service:ACS-ECS-ScheduleToAcceptInquiredSystemEvent

更新時間:Sep 06, 2024

模板名稱

ACS-ECS-ScheduleToAcceptInquiredSystemEvent 定時接受並授權執行系統事件操作

立即執行

模板描述

定時接受並授權執行系統事件操作。模板流程:

  1. 停止ECS執行個體

  2. 接受並授權執行系統事件操作

  3. 啟動ECS執行個體

模板類型

自動化

所有者

Alibaba Cloud

輸入參數

參數名稱

描述

類型

是否必填

預設值

約束

timerTrigger

定時類型

Json

instanceId

ECS執行個體ID

String

eventId

系統事件ID

String

regionId

地區ID

String

{{ ACS::RegionId }}

OOSAssumeRole

OOS扮演的RAM角色

String

AliyunServiceRoleForOOSSystemEventOperator

輸出參數

執行此模板需要的權限原則

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:AcceptInquiredSystemEvent",
                "ecs:DescribeInstances",
                "ecs:StartInstance",
                "ecs:StopInstance"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳情

ACS-ECS-ScheduleToAcceptInquiredSystemEvent詳情

模板內容

FormatVersion: OOS-2019-06-01
Description:
  en: <p>Regularly accept and authorize the execution of system event operations. Template process:<ol><li>Stop ECS instance</li><li>Accept inquired system event</li><li>Start ECS instance</li</ol></p>
  zh-cn: <p>定時接受並授權執行系統事件操作。模板流程:<ol><li>停止ECS執行個體</li><li>接受並授權執行系統事件操作</li><li>啟動ECS執行個體</li</ol></p>
  name-en: ACS-ECS-ScheduleToAcceptInquiredSystemEvent
  name-zh-cn: 定時接受並授權執行系統事件操作
  categories:
    - time_trigger
Parameters:
  timerTrigger:
    Type: Json
    Label:
      en: TimerTrigger
      zh-cn: 定時類型
    AssociationProperty: ALIYUN::OOS::Component::TimerTrigger
    AssociationPropertyMetadata:
      MinuteInterval: 30
  regionId:
    Label:
      en: RegionId
      zh-cn: 地區ID
    Type: String
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  instanceId:
    Label:
      en: ECSInstanceId
      zh-cn: ECS執行個體ID
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceId
    AssociationPropertyMetadata:
      RegionId: regionId
  eventId:
    Label:
      en: EventId
      zh-cn: 系統事件ID
    Type: String
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: AliyunServiceRoleForOOSSystemEventOperator
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: timerTrigger
    Action: ACS::TimerTrigger
    Description:
      en: Triggers a task as scheduled by specifying type and expression
      zh-cn: 通過指定觸發類型和運算式按計劃觸發任務
    Properties:
      Type:
        Fn::Select:
          - type
          - '{{timerTrigger}}'
      Expression:
        Fn::Select:
          - expression
          - '{{timerTrigger}}'
      EndDate:
        Fn::Select:
          - endDate
          - '{{ timerTrigger }}'
      TimeZone:
        Fn::Select:
          - timeZone
          - '{{ timerTrigger }}'
  - Name: getInstance
    Action: ACS::SelectTargets
    Description:
      en: Views the ECS instances
      zh-cn: 擷取ECS執行個體
    Properties:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: '{{ regionId }}'
      Filters:
        - Type: ResourceIds
          RegionId: '{{ regionId }}'
          ResourceIds:
            - '{{ instanceId }}'
    Outputs:
      instanceId:
        Type: String
        ValueSelector: Instances.Instance[].InstanceId
      status:
        Type: String
        ValueSelector: Instances.Instance[].Status
  - Name: checkForWhetherResourceExist
    Action: ACS::Choice
    Description:
      en: Check whether the resource exist
      zh-cn: 檢查資源是否存在
    Properties:
      DefaultTask: stopInstance
      Choices:
        - When:
            Fn::Equals:
              - Null
              - '{{ getInstance.instanceId }}'
          NextTask: ACS::END
  - Name: stopInstance
    Action: ACS::ECS::StopInstance
    Description:
      en: Stops the ECS instances
      zh-cn: 停止執行個體
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ getInstance.instanceId }}'
  - Name: acceptInquiredSystemEvent
    Action: ACS::ExecuteApi
    Description:
      en: Accept and authorize system event actions
      zh-cn: 接受並授權執行系統事件操作
    Properties:
      Service: ECS
      API: AcceptInquiredSystemEvent
      Parameters:
        RegionId: '{{ regionId }}'
        EventId: '{{ eventId }}'
  - Name: startInstance
    Action: ACS::ECS::StartInstance
    When:
      Fn::Equals:
        - Running
        - '{{ getInstance.status }}'
    Description:
      en: Starts the ECS instances
      zh-cn: 開啟執行個體
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ getInstance.instanceId }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - timerTrigger
        Label:
          default:
            zh-cn: 定時設定
            en: The Timer Trigger
      - Parameters:
          - regionId
          - instanceId
          - eventId
        Label:
          default:
            zh-cn: 選擇執行個體
            en: Select ECS Instances
      - Parameters:
          - OOSAssumeRole
        Label:
          default:
            zh-cn: 進階選項
            en: Control Options