全部產品
Search
文件中心

CloudOps Orchestration Service:ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand

更新時間:Sep 06, 2024

模板名稱

ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand 使用生命週期掛鈎下載OSS檔案到ECS執行個體並執行命令

立即執行

模板描述

使用生命週期掛鈎下載OSS檔案到ECS執行個體並執行命令

模板類型

自動化

所有者

Alibaba Cloud

輸入參數

參數名稱

描述

類型

是否必填

預設值

約束

bucketName

OSS bucket名稱

String

objectName

OSS對象名稱

String

destinationDir

執行個體中檔案複製的目標目錄

String

URLExpirationTime

OSS檔案下載連結的到期時間

Number

6000

OSSRegion

OSS所在地區

String

{{ ACS::RegionId }}

whetherSaveToFile

是否將內容下載到特定檔案

Boolean

True

commandContent

在ECS執行個體中執行的雲助手命令

String

echo hello

timeout

ECS執行個體中執行命令的逾時時間

Number

600

regionId

地區ID

String

${regionId}

instanceIds

ECS執行個體ID列表

List

['${instanceIds}']

lifecycleHookId

生命週期掛鈎ID

String

${lifecycleHookId}

lifecycleActionToken

執行個體關聯的特定伸縮活動的令牌

String

${lifecycleActionToken}

rateControl

速率控制

Json

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

OOSAssumeRole

OOS扮演的RAM角色

String

OOSServiceRole

輸出參數

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

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳情

ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand詳情

模板內容

FormatVersion: OOS-2019-06-01
Description:
  en: Use lifecycleHook to download OSS file and run command in the specified scaling activity ECS instance
  zh-cn: 使用生命週期掛鈎下載OSS檔案到ECS執行個體並執行命令
  name-en: ACS-ESS-LifeCycleDownloadOSSFileAndRunCommand
  name-zh-cn: 使用生命週期掛鈎下載OSS檔案到ECS執行個體並執行命令
  categories:
    - elastic_manage
Parameters:
  bucketName:
    Label:
      en: BucketName
      zh-cn: OSS bucket名稱
    Type: String
  objectName:
    Label:
      en: ObjectName
      zh-cn: OSS對象名稱
    Type: String
  URLExpirationTime:
    Description:
      en: Expiration time of OSS file download url
      zh-cn: OSS檔案下載連結的到期時間
    Type: Number
    Default: 6000
  OSSRegion:
    Label:
      en: OSSRegion
      zh-cn: OSS所在地區
    Type: String
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  destinationDir:
    Label:
      en: DestinationDir
      zh-cn: 執行個體中檔案複製的目標目錄
    Type: String
  whetherSaveToFile:
    Label:
      en: whetherSaveToFile
      zh-cn: 是否將內容下載到特定檔案
    Type: Boolean
    Default: true
  commandContent:
    Label:
      en: CommandContent
      zh-cn: 在ECS執行個體中執行的雲助手命令
    Type: String
    AssociationProperty: Code
    Default: echo hello
  timeout:
    Label:
      en: Timeout
      zh-cn: ECS執行個體中執行命令的逾時時間
    Type: Number
    Default: 600
  regionId:
    Label:
      en: RegionId
      zh-cn: 地區ID
    Description:
      en: The ID of region
      zh-cn: '地區ID,請使用Auto Scaling系統預設值 ${regionId}'
    Type: String
    Default: '${regionId}'
  instanceIds:
    Label:
      en: InstanceIds
      zh-cn: ECS執行個體ID列表
    Description:
      en: The ID list of the ECS instance
      zh-cn: 'ECS執行個體ID列表,請使用Auto Scaling系統預設值 ["${instanceId}"]'
    Type: List
    Default:
      - '${instanceIds}'
  lifecycleHookId:
    Label:
      en: LifecycleHookId
      zh-cn: 生命週期掛鈎ID
    Description:
      en: The ID of the lifecycle hook
      zh-cn: '生命週期掛鈎ID,請使用Auto Scaling系統預設值 ${lifecycleHookId}'
    Type: String
    Default: '${lifecycleHookId}'
  lifecycleActionToken:
    Label:
      en: LifecycleActionToken
      zh-cn: 執行個體關聯的特定伸縮活動的令牌
    Description:
      en: The token that indicates a specific scaling activity associated with an instance
      zh-cn: '執行個體關聯的特定伸縮活動的令牌,請使用Auto Scaling系統預設值 ${lifecycleActionToken}'
    Type: String
    Default: '${lifecycleActionToken}'
  rateControl:
    Label:
      en: RateControl
      zh-cn: 速率控制
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: downloadFileAndRunCommand
    OnError: CompleteLifecycleActionForAbandon
    OnSuccess: CompleteLifecycleActionForContinue
    Action: ACS::ECS::DownloadOSSFileAndRunCommand
    Description:
      en: Downloads file to the ECS instances adn run command
      zh-cn: 下載檔案到執行個體並執行命令
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      bucketName: '{{ bucketName }}'
      objectName: '{{ objectName }}'
      URLExpirationTime: '{{ URLExpirationTime }}'
      OSSRegion: '{{ OSSRegion }}'
      destinationDir: '{{ destinationDir }}'
      whetherSaveToFile: '{{ whetherSaveToFile }}'
      commandContent: '{{ commandContent }}'
      timeout: '{{ timeout }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ instanceIds }}'
  - Name: CompleteLifecycleActionForContinue
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Modify lifecycle action for continue
      zh-cn: 修改伸縮活動的等待狀態為繼續完成
    OnSuccess: 'ACS::END'
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: CONTINUE
  - Name: CompleteLifecycleActionForAbandon
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Complete lifecycle action for Abandon
      zh-cn: 修改伸縮活動的等待狀態為棄用
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: ABANDON