全部產品
Search
文件中心

CloudOps Orchestration Service:ACS-ESS-LifeCycleDownloadFileAndRunCommand

更新時間:Sep 06, 2024

模板名稱

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

立即執行

模板描述

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

模板類型

自動化

所有者

Alibaba Cloud

輸入參數

參數名稱

描述

類型

是否必填

預設值

約束

sourcePath

隱藏檔的URL

String

destinationDir

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

String

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": [
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳情

ACS-ESS-LifeCycleDownloadFileAndRunCommand詳情

模板內容

FormatVersion: OOS-2019-06-01
Description:
  en: Use lifecycleHook to download file and run command in the specified scaling activity instance
  zh-cn: 使用生命週期掛鈎下載檔案到執行個體並執行命令
  name-en: ACS-ESS-LifeCycleDownloadFileAndRunCommand
  name-zh-cn: 使用生命週期掛鈎下載檔案到執行個體並執行命令
  categories:
    - elastic_manage
Parameters:
  sourcePath:
    Type: String
    Label:
      en: SourcePath
      zh-cn: 隱藏檔的URL
  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::ESS::DownloadFileAndRunCommand
    Description:
      en: Downloads file to the ECS instances adn run command
      zh-cn: 下載檔案到執行個體並執行命令
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      sourceType: https
      sourcePath: '{{ sourcePath }}'
      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