全部產品
Search
文件中心

:ALIYUN::ECS::Command

更新時間:Jun 19, 2024

ALIYUN::ECS::Command類型用於建立雲助手命令。

文法

{
  "Type": "ALIYUN::ECS::Command",
  "Properties": {
    "Name": String,
    "WorkingDir": String,
    "CommandContent": String,
    "Timeout": Integer,
    "Type": String,
    "Description": String,
    "EnableParameter": Boolean,
    "Tags": List,
    "ResourceGroupId": String,
    "ContentEncoding": String
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

Name

String

命令名稱。

長度為1~128個字元。支援全字元集。

WorkingDir

String

您建立的命令在ECS執行個體中啟動並執行目錄。

預設值:

  • Linux執行個體:管理員root使用者的home目錄下,取值為:/root

  • Windows執行個體:雲助手用戶端進程所在目錄,例如C:\Windows\System32

說明

設定為其他目錄時,請確保執行個體中存在該目錄。

CommandContent

String

命令Base64編碼後的內容。

命令Base64編碼後的內容。

  • 該參數的值必須使用Base64編碼後傳輸,且指令碼內容的大小在Base64編碼之後不能超過18KB。

  • 命令內容支援使用自訂參數形式,具體通過指定參數EnableParameter=true啟用自訂參數功能:

    • 自訂參數用{{}}包含的方式定義,在{{}}內參數名前後的空格以及分行符號會被忽略。

    • 自訂參數個數不能超過20個。

    • 自訂參數名允許a-zA-Z0-9-_的組合,不支援ACS::首碼指定非內建環境參數,不支援其餘字元,參數名不區分大小寫。

    • 單個參數名不能超過64位元組。

  • 您可以指定內建環境參數作為自訂參數,執行命令時無需手動對參數賦值,雲助手將為您自動替換為環境中對應的值。支援指定以下內建環境參數:

    • {{ACS::RegionId}}:地區ID。

    • {{ACS::AccountId}}:阿里雲主帳號UID。

    • {{ACS::InstanceId}}:執行個體ID。命令下發到多個執行個體時,如需指定{{ACS::InstanceId}}作為內建環境參數,需確保雲助手Agent不低於以下版本:

      • Linux:2.2.3.309

      • Windows:2.1.3.309

    • {{ACS::InstanceName}}:執行個體名稱。命令下發到多個執行個體時,如需指定{{ACS::InstanceName}}作為內建環境參數,需確保雲助手Agent不低於以下版本:

      • Linux:2.2.3.344

      • Windows:2.1.3.344

    • {{ACS::InvokeId}}:命令執行ID。如需指定{{ACS::InvokeId}}作為內建環境參數,需確保雲助手Agent不低於以下版本:

      • Linux:2.2.3.309

      • Windows:2.1.3.309

    • {{ACS::CommandId}}:命令ID。通過調用RunCommand介面執行命令時,如需指定{{ACS::CommandId}}作為內建環境參數,需確保雲助手Agent不低於以下版本:

      • Linux:2.2.3.309

      • Windows:2.1.3.309

Timeout

Integer

您建立的命令在ECS執行個體中執行時的逾時時間。

當因為某種原因無法運行您建立的命令時,會出現逾時現象;逾時後,會強制終止命令進程,即取消命令的PID。

預設值:60。

單位:秒。

Type

String

命令的類型。

取值:

  • RunBatScript:建立一個在Windows執行個體中啟動並執行Bat指令碼。

  • RunPowerShellScript:建立一個在Windows執行個體中啟動並執行PowerShell指令碼。

  • RunShellScript:建立一個在Linux執行個體中啟動並執行Shell指令碼。

Description

String

命令描述。

長度為1~512個字元。支援全字元集。

EnableParameter

Boolean

建立的命令是否使用自訂參數。

取值

  • true:使用自訂參數。

  • false(預設):不使用自訂參數。

Tags

List

執行個體的標籤。最多支援添加20個標籤。

更多資訊,請參見Tags屬性

ContentEncoding

String

命令內容(CommandContent)的編碼方式。

取值範圍:

  • PlainText:不編碼,採用明文傳輸。

  • Base64(預設值):Base64編碼。

說明

錯填該取值會當作Base64處理。

ResourceGroupId

String

命令所屬的資源群組ID。

Tags文法

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

Tags屬性

屬性名稱

類型

必須

允許更新

描述

約束

Key

String

標籤鍵。

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

Value

String

標籤值。

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

傳回值

Fn::GetAtt

CommandId:命令ID。

說明

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

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
  Command:
    Type: ALIYUN::ECS::Command
    Properties:
      CommandContent:
        Fn::Base64Encode: |
          #!/bin/bash
          echo "hello" >> /root/test.sh
      Type: RunShellScript
      Name:
        Ref: ALIYUN::StackName
Outputs:
  CommandId:
    Description: The id of command created.
    Value:
      Fn::GetAtt:
        - Command
        - CommandId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
  },
  "Resources": {
    "Command": {
      "Type": "ALIYUN::ECS::Command",
      "Properties": {
        "CommandContent": {
          "Fn::Base64Encode": "#!/bin/bash\necho \"hello\" >> /root/test.sh\n"
        },
        "Type": "RunShellScript",
        "Name": {
          "Ref": "ALIYUN::StackName"
        }
      }
    }
  },
  "Outputs": {
    "CommandId": {
      "Description": "The id of command created.",
      "Value": {
        "Fn::GetAtt": [
          "Command",
          "CommandId"
        ]
      }
    }
  }
}