All Products
Search
Document Center

CloudOps Orchestration Service:ACS-ECS-BulkyDownloadFileAndRunCommand

Last Updated:Dec 23, 2025

Template name

ACS-ECS-BulkyDownloadFileAndRunCommand Downloads a file to multiple ECS instances and executes a Cloud Assistant command

Execute Now

Template description

Downloads a file to multiple Elastic Compute Service (ECS) instances at a time and runs a Cloud Assistant command on the ECS instances.

Template type

Automated

Owner

Alibaba Cloud

Input parameters

Parameter

Description

Type

Required

Default value

Limit

targets

Target instance

Json

Yes

sourcePath

Select a file

String

Yes

destinationDir

The directory to which the file is downloaded in the ECS instances.

String

Yes

regionId

The region ID.

String

No

{{ ACS::RegionId }}

sourceType

The type of the file.

String

No

local

commandContent

The command content.

String

No

# #Java deployment example
# java_pid=`ps -ef | grep java | grep -v grep | awk '{print$2}'`
# if [[ $java_pid ]];then
#   kill -9 $java_pid
# fi
# nohup java -jar *.jar &

The command can be up to 16,384 bytes in length.

workingDir

The directory in which the command is to be run on the ECS instances.

String

No

""

timeout

The timeout period for running the command on the ECS instance.

Number

No

600

rateControl

Task execution concurrency ratio

Json

No

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

OOSAssumeRole

The Resource Access Management (RAM) role that is assumed by CloudOps Orchestration Service (OOS).

String

No

""

Output parameters

None

Permission policy that is required to execute the template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "oos:GetApplicationGroup"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Details

For more information, see ACS-ECS-BulkyDownloadFileAndRunCommand.yml at GitHub.

Template content

FormatVersion: OOS-2019-06-01
Description:
  en: Batch download files to multiple ECS instances and run Cloud Assistant commands
  zh-cn: 批量下载文件到多个ECS实例并执行云助手命令
  name-en: ACS-ECS-BulkyDownloadFileAndRunCommand
  name-zh-cn: 批量下载文件到多个ECS实例并执行云助手命令
  categories:
    - instance_manage
    - application_manage
Parameters:
  regionId:
    Type: String
    Label:
      en: Region ID
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Label:
      en: Target Instance
      zh-cn: 目标实例
    Type: Json
    Description:
      en: <p class="p">Notes:</p> <ul class="ul"> <li class="li"><font color='red'>To download files over HTTPS, the target ECS instances must have public network access enabled.</font></li><li class="li"><font color='red'>To download files from OSS, the target ECS instances must be configured with a RAM role. For more information, see <a href='https://www.alibabacloud.com/help/en/operation-orchestration-service/latest/download-multiple-objects-to-an-instance#vOk3w'>this document</a>.</font></li>
      zh-cn: <p class="p">注意事项: </p> <ul class="ul"> <li class="li"><font color='red'>通过https方式下载需要ECS实例开启公网访问</font></li><li class="li"><font color='red'>通过oss方式下载需要ECS实例配置RAM角色,<a href='https://www.alibabacloud.com/help/document_detail/175396.html?spm=a2c4g.120556.0.0.34c9de53iyt2Z1#vOk3w'>参考文档</a></font></li>
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: regionId
  sourceType:
    Type: String
    Description:
      en: The size of a file uploaded from your local machine cannot exceed 500 MB.
      zh-cn: 本地上传文件不能超过500M
    Label:
      en: Source Type
      zh-cn: 文件类型
    AllowedValues:
      - local
      - oss
      - https
    Default: local
    AssociationPropertyMetadata:
      LocaleKey: DownloadFileType
      RegionId: ${regionId}
  sourcePath:
    Type: String
    Label:
      en: Source File
      zh-cn: 选择文件
    AssociationProperty: ALIYUN::OOS::File::FileUrl
    AssociationPropertyMetadata:
      FileType: ${sourceType}
      RegionId: ${regionId}
  destinationDir:
    Label:
      en: Destination Directory
      zh-cn: 实例中文件复制的目标目录
    Type: String
  commandContent:
    Label:
      en: Command Content
      zh-cn: 命令内容
    Type: String
    MaxLength: 16384
    AssociationProperty: ALIYUN::OOS::Command::CommandContent
    AssociationPropertyMetadata:
      CommandType: RunShellScript
    Default: |
      # Example of a Java deployment
      # java_pid=`ps -ef | grep java | grep -v grep | awk '{print$2}'`
      # if [[ $java_pid ]];then
      #   kill -9 $java_pid
      # fi
      # nohup java -jar *.jar &
  workingDir:
    Label:
      en: Working Directory
      zh-cn: 脚本在ECS实例中的运行目录
    Description:
      en: 'The directory on the ECS instance where the script runs. For Linux instances, the default directory is the home directory of the root user (/root). For Windows instances, the default directory is the directory where the Cloud Assistant client process is located, such as C:\Windows\System32.'
      zh-cn: '脚本在ECS实例中的运行目录。Linux系统实例默认在管理员(root用户)的home目录下,即/root。Windows系统实例默认在云助手客户端进程所在目录,例如C:\Windows\System32。'
    Type: String
    Default: ''
  timeout:
    Label:
      en: Command Timeout
      zh-cn: ECS实例中执行命令的超时时间
    Type: Number
    Default: 600
  rateControl:
    Label:
      en: Concurrency Rate
      zh-cn: 任务执行的并发比率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: RAM Role for OOS
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Retrieves the specified ECS instances.
      zh-cn: 获取ECS实例
    Action: 'ACS::SelectTargets'
    Properties:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: '{{ regionId }}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: 'Instances.Instance[].InstanceId'
  - Name: downloadFileAndRunCommand
    Action: ACS::ECS::DownloadFileAndRunCommand
    Description:
      en: Downloads the file to the instances and runs the command.
      zh-cn: 下载文件到实例并执行命令
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      sourceType: '{{ sourceType }}'
      sourcePath: '{{ sourcePath }}'
      destinationDir: '{{ destinationDir }}'
      commandContent: '{{ commandContent }}'
      workingDir: '{{ workingDir }}'
      timeout: '{{ timeout }}'
    Loop:
      Items: '{{ getInstance.instanceIds }}'
      RateControl: '{{ rateControl }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - sourceType
          - sourcePath
          - commandContent
          - destinationDir
          - workingDir
          - timeout
        Label:
          default:
            zh-cn: 配置参数
            en: Configuration Parameters
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: 选择实例
            en: Instance Selection
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: 高级选项
            en: Advanced Options