全部產品
Search
文件中心

Resource Orchestration Service:ALIYUN::ECS::Invocation

更新時間:Apr 18, 2025

ALIYUN::ECS::Invocation類型用於為一台或多台ECS執行個體觸發一條雲助手命令。

文法

{
  "Type": "ALIYUN::ECS::Invocation",
  "Properties": {
    "Frequency": String,
    "CommandId": String,
    "Parameters": Map,
    "InstanceIds": List,
    "Sync": Boolean,
    "CommandName": String,
    "WindowsPasswordName": String,
    "Timeout": Integer,
    "RepeatMode": String,
    "ResourceGroupId": String,
    "ContainerName": String,
    "ContainerId": String,
    "Launcher": String,
    "Username": String,
    "Tags": List
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

Frequency

String

周期任務的執行循環。該參數值結構以Cron 運算式為準。

CommandId

String

命令ID。

InstanceIds

List

執行命令的執行個體列表。

最多能指定20台執行個體ID。

Parameters

Map

啟用自訂參數功能時,執行命令時傳入的自訂參數的索引值對。樣本值:{"name": "Jack", "accessKey": "LTAI****************"}

自訂參數的取值範圍:0~10。

Map的鍵不允許為空白字串,最多支援64個字元。Map的值允許為空白字串。

自訂參數與原始命令內容在Base64編碼後,綜合長度不能超過16KB。

設定的自訂參數名集合必須為建立命令時定義的參數集的子集。對於未傳入的參數,您可以使用Null 字元串代替。

Sync

Boolean

是否同步調用。

取值:

  • true:同步調用。

  • false:非同步呼叫。

Launcher

String

指令碼執行的引導程式。

長度不能超過 1 KB。

CommandName

String

命令名稱。

WindowsPasswordName

String

在Windows執行個體中執行命令的使用者的密碼名稱。

長度不得超過 255 個字元。

當您希望以非預設使用者(System)在Windows執行個體中執行命令時,需要同時傳入Username和該參數。為降低密碼泄露的風險,需要將密碼明文託管在營運編排服務的參數倉庫中,此處僅傳入密碼的名稱。更多資訊,請參見加密參數以及設定普通使用者執行雲助手命令

說明

當您使用Linux執行個體的root使用者或Windows執行個體的System使用者執行命令時,不需要傳遞該參數。

Timeout

Integer

執行命令的逾時時間。

單位:秒。

  • 該值不能小於10秒。

  • 當因為進程原因、缺失模組、缺失雲助手Agent等原因無法運行命令時,會出現逾時現象。逾時後,會強制終止命令進程。

  • 若不設定該值,會採用建立命令時指定的逾時時間。

  • 該值只會作為該次命令執行的逾時時間,不會改變命令本身的逾時時間。

RepeatMode

String

設定命令執行的方式。

取值範圍:

  • Once:立即執行命令。

  • Period:定時執行命令。當該參數取值為Period時,必須同時指定Frequency參數。

  • NextRebootOnly:當執行個體下一次啟動時,自動執行命令。

  • EveryReboot:執行個體每一次啟動都將自動執行命令。

預設值:

  • 當不指定Frequency參數時,預設值為Once

  • 當指定Frequency參數時,無論是否已設定了該參數值,都將按照Period處理。

注意事項:

  • 您可以調用StopInvocation停止待執行的命令或定時執行的命令。

  • 當該參數取值Period或者EveryReboot時,您可以調用DescribeInvocationResults,然後指定IncludeHistory=true查看命令定時執行的記錄。

ResourceGroupId

String

命令執行的資源群組ID。

當指定該參數時:

ContainerName

String

容器名稱。

注意事項:

  • 如果指定了該參數,雲助手將在執行個體的指定容器內執行指令碼。

  • 如果指定了該參數,僅支援在雲助手Agent版本不低於 2.2.3.344 的Linux執行個體內運行。

  • 如果指定了該參數,本介面中已指定的Username參數和CreateCommand中指定的WorkingDir參數將不會生效。僅支援通過容器預設使用者在容器的預設工作目錄下執行命令。更多資訊,請參見使用雲助手在容器內執行命令

  • 如果指定了該參數,在Linux容器中只支援執行Shell指令碼,不支援在指令碼開頭使用類似#!/usr/bin/python命令的形式指定指令碼內容的解譯器。更多資訊,請參見使用雲助手在容器內執行命令

ContainerId

String

容器ID。

僅支援 64 位元 16 進位字串。支援使用docker://containerd://或者cri-o://首碼來表示指定的容器運行時。

注意事項:

  • 如果指定了該參數,雲助手將在執行個體的指定容器內執行指令碼。

  • 如果指定了該參數,僅支援在雲助手Agent版本不低於2.2.3.344的Linux執行個體內運行。

  • 如果指定了該參數,本介面中已指定的Username參數和CreateCommand中指定的WorkingDir參數將不會生效。僅支援通過容器預設使用者在容器的預設工作目錄下執行命令。更多資訊,請參見使用雲助手在容器內執行命令

  • 如果指定了該參數,在Linux容器中只支援執行Shell指令碼,不支援在指令碼開頭使用類似#!/usr/bin/python命令的形式指定指令碼內容的解譯器。更多資訊,請參見使用雲助手在容器內執行命令

Username

String

在ECS執行個體中執行命令的使用者名稱稱。

長度不得超過 255 個字元。

  • Linux系統的ECS執行個體,預設以root使用者執行命令。

  • Windows系統的ECS執行個體,預設以System使用者執行命令。

您也可以指定執行個體中已存在的其他使用者執行命令,以普通使用者執行雲助手命令更加安全。更多資訊,請參見設定普通使用者執行雲助手命令

Tags

List

標籤。

最多支援20個標籤,格式:[{"Key":"tagKey","Value":"tagValue"},{"Key":"tagKey2","Value":"tagValue2"}]

更多資訊,請參見Tags屬性

Tags文法

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags屬性

屬性名稱

類型

必須

允許更新

描述

約束

Key

String

標籤鍵。

長度為1~128個字元,不能以aliyunacs:開頭,不能包含http://https://

Value

String

標籤值。

長度為0~128個字元,不能以aliyunacs:開頭,不能包含http://https://

傳回值

Fn::GetAtt

  • InvokeId:命令進程執行ID。

  • InvokeInstances:執行命令的執行個體列表。

  • InvokeResults:執行命令的結果。

說明

如果您只需要執行一次性命令,請參見ALIYUN::ECS::RunCommand

樣本

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  CommandId:
    Type: String
    Description: The id of command.
  InstanceId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceId
Resources:
  Invocation:
    Type: ALIYUN::ECS::Invocation
    Properties:
      CommandId:
        Ref: CommandId
      InstanceIds:
        - Ref: InstanceId
Outputs:
  InvokeId:
    Description: The id of command execution.
    Value:
      Fn::GetAtt:
        - Invocation
        - InvokeId                   
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "CommandId": {
      "Type": "String",
      "Description": "The id of command."
    },
    "InstanceId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceId"
    }
  },
  "Resources": {
    "Invocation": {
      "Type": "ALIYUN::ECS::Invocation",
      "Properties": {
        "CommandId": {
          "Ref": "CommandId"
        },
        "InstanceIds": [
          {
            "Ref": "InstanceId"
          }
        ]
      }
    }
  },
  "Outputs": {
    "InvokeId": {
      "Description": "The id of command execution.",
      "Value": {
        "Fn::GetAtt": [
          "Invocation",
          "InvokeId"
        ]
      }
    }
  }
}