全部產品
Search
文件中心

:ALIYUN::ECS::Invocation

更新時間:Jun 19, 2024

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,
    "Username": String,
    "Tags": List
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

Frequency

String

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

CommandId

String

命令ID。

InstanceIds

List

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

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

Parameters

Map

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

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

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

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

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

Sync

Boolean

是否同步調用。

取值:

  • true:同步調用。

  • false:非同步呼叫。

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

樣本

  • YAML格式

    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                   
  • JSON格式

    {
      "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"
            ]
          }
        }
      }
    }