全部产品
Search
文档中心

云服务器 ECS:DescribeInvocations - 查询云助手脚本的执行列表和状态

更新时间:Nov 14, 2024

调用DescribeInvocations查询云助手命令的执行列表和状态。

接口说明

  • 当您执行命令后,不代表命令一定成功运行,并且一定有预期的命令效果。您需要通过接口返回值查看实际执行结果,以实际输出结果为准。

  • 您可以查询最近 4 周的执行信息,执行信息的保留上限为 10 万条。

  • 您可以通过云助手任务状态事件订阅的方式,通过事件获取任务结果,避免频繁轮询,用以提升效率。

  • 支持以下两种方式查看返回数据:

    • 方式一:分页查询首页时,仅需设置MaxResults以限制返回信息的条目数,返回结果中的NextToken将作为查询后续页的凭证。查询后续页时,将NextToken参数设置为上一次返回结果中获取到的NextToken作为查询凭证,并设置MaxResults限制返回条目数。
    • 方式二:通过PageSize设置单页返回的条目数,再通过PageNumber设置页码。以上两种方式只能任选其中之一。如果设置了MaxResultsNextToken参数,则请求参数PageSizePageNumber将失效,且返回数据中的TotalCount无效。
  • DescribeInvocationsDescribeInvocationResults差异点:

    • 当一次RunCommand/InvokeCommand调用指定有多个实例时:
      • 使用DescribeInvocations可以获得任务在各个实例上的执行状态、多个实例任务状态的聚合状态;
      • 使用DescribeInvocationResults仅能获得各个实例上的单独的执行状态,不包含多实例的聚合状态;
    • 当一次RunCommand/InvokeCommand调用指定有一个实例时:
      • DescribeInvocationsDescribeInvocationResults区别不大,完全可以互相替换。
    • 当需要查看定时性(周期性)任务、开机自动执行任务(RepeatMode=Period, EveryReboot)的每一次执行情况时,仅能用DescribeInvocationResults可以查询获得执行的过往历史记录(需指定IncludeHistory=true),而DescribeInvocations仅支持返回最新的任务状态。
    • 当需要查看命令的内容、参数时,仅有DescribeInvocations返回CommandContent

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ecs:DescribeInvocationsget
*全部资源
*

请求参数

名称类型必填描述示例值
RegionIdstring

地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。

cn-hangzhou
ResourceGroupIdstring

命令执行的资源组 ID。传入该参数后,需要在执行命令时指定 ResourceGroupId,支持筛选出对应的命令执行结果。

rg-bp67acfmxazb4p****
InvokeIdstring

命令执行 ID。

t-hz0jdfwd9f****
CommandIdstring

命令 ID。您可以通过接口 DescribeCommands 查询所有可用的 CommandId。

c-hz0jdfwcsr****
CommandNamestring

命令名称。如果同时设置了InstanceId参数,则该参数不生效。

CommandTestName
CommandTypestring

命令类型。取值范围:

  • RunBatScript:命令为在 Windows 实例中运行的 Bat 脚本。
  • RunPowerShellScript:命令为在 Windows 实例中运行的 PowerShell 脚本。
  • RunShellScript:命令为在 Linux 实例中运行的 Shell 脚本。
RunShellScript
Timedboolean

查询的命令是否在将来会自动执行。取值范围:

  • true:查询在调用RunCommandInvokeCommand执行命令时,RepeatMode参数取值为PeriodNextRebootOnly或者EveryReboot
  • false:查询以下两种状态的命令。
    • 在调用RunCommandInvokeCommand执行命令时,RepeatMode参数取值为Once
    • 已被取消、被停止或者已完成执行的命令。

默认值:false。

true
InvokeStatusstring

命令执行的总执行状态。总执行状态取决于创建执行中的一台或多台实例的共同执行状态。取值范围:

  • Running:
    • 定时执行:未手动停止定时执行命令前,执行状态一直为进行中。
    • 单次执行:一旦有进行中的命令进程,总的执行状态就为进行中。
  • Finished:
    • 定时执行:命令进程不可能为执行完成。
    • 单次执行:所有实例全部完成执行。或者手动停止部分实例的命令进程,其余实例全部执行完成。
  • Success:各个实例上的命令执行状态均为 Stopped 或 Success,且至少一个实例的命令执行状态是 Success,则总执行状态为 Success。
    • 立即运行的任务:命令执行完成,且退出码为 0。
    • 定时运行的任务:最近一次执行成功且退出码为 0,且指定的时间已全部完成。
  • Failed:
    • 定时执行:命令进程不可能为执行失败。
    • 单次执行:所有实例全部执行失败。
  • Stopped:停止命令。
  • Stopping:停止中。
  • PartialFailed:部分失败;如果同时设置了InstanceId参数,则不生效。
  • Pending:系统正在校验或发送命令。存在至少一台实例的命令执行状态为 Pending,则总执行状态为 Pending。
  • Scheduled:定时执行的命令已发送,等待运行。存在至少一台实例的命令执行状态为 Scheduled,则总执行状态为 Scheduled。
Finished
InstanceIdstring

实例 ID。当您传入了该参数,将查询该实例所有的命令执行记录。

i-bp1i7gg30r52z2em****
ContentEncodingstring

设置返回数据中CommandContent字段和Output字段的编码方式。取值范围:

  • PlainText:返回原始命令内容和输出信息。
  • Base64:返回 Base64 编码后的命令内容和输出信息。

默认值:Base64。

PlainText
IncludeOutputboolean

是否在结果中返回命令运行的输出信息。

  • true:返回。此时,您至少指定参数InvokeIdInstanceId
  • false:不返回。

默认值:false。

false
PageNumberlong

当前页码。

起始值:1。

默认值:1。

1
PageSizelong

分页查询时设置的每页行数。

最大值:50。

默认值:10。

10
MaxResultsinteger

分页查询时每页的最大条目数。

最大值为 50。

默认值为 10。

10
NextTokenstring

查询凭证(Token),取值为上一次 API 调用返回的 NextToken 参数值。

AAAAAdDWBF2
RepeatModestring

命令执行的方式。如果同时设置了InstanceId参数,则不生效。取值范围:

  • Once:立即执行命令。
  • Period:定时执行命令。
  • NextRebootOnly:当实例下一次启动时,自动执行命令。
  • EveryReboot:实例每一次启动都将自动执行命令。

默认值为空,表示查询全部。

Once
Tagarray<object>

标签列表。

object

标签列表。

Keystring

命令执行的标签键。N 的取值范围为 1~20。一旦传入该值,则不允许为空字符串。

使用一个标签过滤资源,查询到该标签下的资源数量不能超过 1000 个;使用多个标签过滤资源,查询到同时绑定了多个标签的资源数量不能超过 1000 个。如果资源数量超过 1000 个,您需要使用 ListTagResources 接口进行查询。

最多支持 64 个字符,不能以aliyunacs:开头,不能包含http://https://

TestKey
Valuestring

命令执行的标签值。N 的取值范围为 1~20。该值可以为空字符串。 最多支持 128 个字符,不能包含http://https://

TestValue

返回参数

名称类型描述示例值
object
PageSizelong

每页行数。

10
RequestIdstring

请求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE3****
PageNumberlong

查询结果的页码。

1
TotalCountlong

命令总个数。

1
NextTokenstring

本次调用返回的查询凭证值。

AAAAAdDWBF2
Invocationsarray<object>

命令执行记录组成的数组。

Invocationobject

任务创建的时间。

CreationTimestring

任务的创建时间。

2020-01-19T09:15:46Z
Frequencystring

定时执行命令的执行时间。

0 */20 * * * *
InvocationStatusstring

命令执行的总执行状态,总执行状态取决于本次调用的全部实例的共同执行状态,可能值:

  • Pending:系统正在校验或发送命令。存在至少一台实例的命令执行状态为 Pending,则总执行状态为 Pending。
  • Scheduled:定时执行的命令已发送,等待运行。存在至少一台实例的命令执行状态为 Scheduled,则总执行状态为 Scheduled。
  • Running:命令正在实例上运行。存在至少一台实例的命令执行状态为 Running,则总执行状态为 Running。
  • Success:各个实例上的命令执行状态均为 Stopped 或 Success,且至少一个实例的命令执行状态是 Success,则总执行状态为 Success。
    • 立即运行的任务:命令执行完成,且退出码为 0。
    • 定时运行的任务:最近一次执行成功且退出码为 0,且指定的时间已全部完成。
  • Failed:各个实例上的命令执行状态均为 Stopped 或 Failed,则总执行状态为 Failed。实例上的命令执行状态一项或多项为以下状态时,返回值均为 Failed 状态:
    • 命令校验失败(Invalid)。
    • 命令发送失败(Aborted)。
    • 命令执行完成但退出码非 0(Failed)。
    • 命令执行超时(Timeout)。
    • 命令执行异常(Error)。
  • Stopping:正在停止任务。存在至少一台实例的命令执行状态为 Stopping,则总执行状态为 Stopping。
  • Stopped:任务已停止。所有实例的命令执行状态是 Stopped,则总执行状态为 Stopped。实例上的命令执行状态为以下状态时,返回值均为 Stopped 状态:
    • 任务已取消(Cancelled)。
    • 任务已终止(Terminated)。
  • PartialFailed:部分实例执行成功且部分实例执行失败。各个实例的命令执行状态均为 Success、Failed 或 Stopped,则总执行状态为 PartialFailed。
说明 返回参数中的InvokeStatus与该参数意义相似,但建议您查看该返回值。
Running
RepeatModestring

命令执行的方式。可能值:

  • Once:立即执行命令。
  • Period:定时执行命令。
  • NextRebootOnly:当实例下一次启动时,自动执行命令。
  • EveryReboot:实例每一次启动都将自动执行命令。
Once
CommandIdstring

命令 ID。

c-hz0jdfwcsr****
CommandTypestring

命令类型。

RunShellScript
InvokeStatusstring

命令总的执行状态。

说明 不推荐查看该返回值,推荐您查看InvocationStatus的返回值。
Finished
Parametersstring

命令中的自定义参数。

{}
Timedboolean

查询的命令是否在将来会自动执行。

false
CommandContentstring

命令内容。

  • 若 ContentEncoding 指定 PlainText,返回原始脚本内容。
  • 若 ContentEncoding 指定 Base64,返回 Base64 编码后的脚本内容。
cnBtIC1xYSB8IGdyZXAgdnNm****
CommandNamestring

命令名称。

CommandTestName
CommandDescriptionstring

命令描述。

testDescription
InvokeIdstring

命令执行 ID。

t-hz0jdfwd9f****
Usernamestring

ECS 实例中执行命令的用户名称。

test
WorkingDirstring

命令执行路径。

/home/
Timeoutlong

您创建的命令在 ECS 实例中执行时最大的超时时间,单位:秒。

当因为某种原因无法运行您创建的命令时,会出现超时现象。超时后,会强制终止命令进程,即取消命令的 PID。

60
ContainerIdstring

容器 ID。

ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea****
ContainerNamestring

容器名称。

test-container
TerminationModestring

停止任务(手动停止或执行超时打断)时的模式。可能值:

  • Process:停止当前脚本进程。
  • ProcessTree:停止当前进程树(脚本进程以及它创建的所有子进程的集合)。
ProcessTree
Launcherstring

脚本执行的引导程序。长度不能超过 1 KB。

python3 -u {{ACS::ScriptFileName|Ext(".py")}}
InvokeInstancesarray<object>

执行目标实例集类型。

InvokeInstanceobject

执行状态列表。

CreationTimestring

命令执行的开始时间。

2019-12-20T06:15:54Z
UpdateTimestring

命令状态的更新时间。

2020-01-19T09:15:47Z
FinishTimestring

命令进程的结束时间。

2019-12-20T06:15:56Z
InvocationStatusstring

单台实例的命令进度状态,可能值:

  • Pending:系统正在校验或发送命令。
  • Invalid:指定命令类型或参数有误。
  • Aborted:向实例发送命令失败。实例必须在运行中,且命令可以 1 分钟内发送完成。
  • Running:命令正在实例上运行。
  • Success:
    • 单次执行的命令:命令执行完成,且退出码为 0。
    • 定时执行的命令:上一次运行成功且退出码为 0,且指定的时间已结束。
  • Failed:
    • 单次执行的命令:命令执行完成,且退出码非 0。
    • 定时执行的命令:上一次运行成功且退出码非 0,且指定的时间将中止。
  • Error:命令执行时发生异常无法继续。
  • Timeout:命令执行超时。
  • Cancelled:命令的执行动作已经取消,命令未曾启动。
  • Stopping:正在停止任务。
  • Terminated:命令运行时被终止。
  • Scheduled:
    • 单次执行的命令:不适用,不会出现。
    • 定时执行的命令:等待运行。
Success
Repeatsinteger

命令在该实例上执行的次数。

  • 若执行方式为单次执行,则值为 0 或 1。
  • 若执行方式为定时执行,则值为执行过多少次。
0
InstanceIdstring

实例 ID。

i-bp1i7gg30r52z2em****
Outputstring

命令的输出信息。

  • 若 ContentEncoding 指定 PlainText,返回原始输出信息。
  • 若 ContentEncoding 指定 Base64,返回 Base64 编码后的输出信息。
OutPutTestmsg
Droppedinteger

Output 字段中文字长度超出 24 KB 后,截断丢弃的文字长度。

0
StopTimestring

若调用了StopInvocation以停止命令执行,表示调用的时间。

2020-01-19T09:15:47Z
ExitCodelong

命令进程的退出代码。可能值:

  • Linux 实例为 Shell 进程的退出码。
  • Windows 实例为 Bat 或者 PowerShell 进程的退出码。
0
StartTimestring

命令在实例中开始执行的时间。

2019-12-20T06:15:55Z
ErrorInfostring

命令的下发失败或执行失败原因的详情,可能值:

  • 空:命令运行正常。
  • The security group rules denied access to the aliyun service:安全组规则拒绝访问云助手服务。
  • The specified instance does not exist:指定的实例不存在或已释放。
  • The specified instance was released during task execution:执行命令期间,该实例被释放。
  • The specified instance was not running during task execution:开始执行命令时,该实例不在运行中。
  • The OS type of the instance does not support the specified command type:命令不适用于指定的实例。
  • The specified account does not exist:指定的账号不存在。
  • The specified directory does not exist:指定的目录不存在。
  • The cron expression is invalid:指定的执行时间表达式不合法。
  • The aliyun service is not running on the instance:云助手 Agent 未运行。
  • The aliyun service in the instance does not response:云助手 Agent 无响应。
  • The aliyun service in the instance is upgrading during task execution:云助手 Agent 正在升级中。
  • The aliyun service in the instance need to be upgraded to at least version to support the feature:云助手 Agent 需要升级。为该特性最低支持版本号,为具体特性。
  • The command delivery has been timeout:发送命令超时。
  • The command execution has been timeout:命令执行超时。
  • The command execution got an exception:命令执行发生异常。
  • The command execution exit code is not zero:命令执行结束,退出码非 0。
  • The specified instance was released during task execution:下发文件期间,该实例被释放。
the specified instance does not exists
Timedboolean

查询的命令是否在将来会自动执行。

false
ErrorCodestring

命令的下发失败或执行失败原因的代码,可能值:

  • 空:命令运行正常。
  • InstanceNotExists:指定的实例不存在或已释放。
  • InstanceReleased:执行命令期间,该实例被释放。
  • InstanceNotRunning:开始执行命令时,该实例不在运行中。
  • CommandNotApplicable:命令不适用于指定的实例。
  • AccountNotExists:指定的执行命令的用户名不存在。
  • DirectoryNotExists:指定的目录不存在。
  • BadCronExpression:指定的执行时间表达式不合法。
  • ClientNotRunning:云助手 Agent 未运行。
  • ClientNotResponse:云助手 Agent 无响应。
  • ClientIsUpgrading:云助手 Agent 正在升级中。
  • ClientNeedUpgrade:云助手 Agent 需要升级。
  • DeliveryTimeout:发送命令超时。
  • ExecutionTimeout:命令执行超时。
  • ExecutionException:命令执行发生异常。
  • ExecutionInterrupted:命令执行任务中断。
  • ExitCodeNonzero:命令执行结束,退出码非 0。
  • SecurityGroupRuleDenied:安全组规则拒绝访问云助手服务。
InstanceNotExists
InstanceInvokeStatusstring

单台实例的命令进度状态。

说明 不推荐查看该返回值,推荐您查看InvocationStatus的返回值。
Finished
Tagsarray<object>

命令执行的标签信息。

Tagobject

命令执行的标签信息。

TagKeystring

命令执行的标签键。

owner
TagValuestring

命令执行的标签值。

zhangsan

示例

正常返回示例

JSON格式

{
  "PageSize": 10,
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "PageNumber": 1,
  "TotalCount": 1,
  "NextToken": "AAAAAdDWBF2",
  "Invocations": {
    "Invocation": [
      {
        "CreationTime": "2020-01-19T09:15:46Z",
        "Frequency": "0 */20 * * * *",
        "InvocationStatus": "Running",
        "RepeatMode": "Once",
        "CommandId": "c-hz0jdfwcsr****",
        "CommandType": "RunShellScript",
        "InvokeStatus": "Finished",
        "Parameters": "{}",
        "Timed": false,
        "CommandContent": "cnBtIC1xYSB8IGdyZXAgdnNm****",
        "CommandName": "CommandTestName",
        "CommandDescription": "testDescription",
        "InvokeId": "t-hz0jdfwd9f****",
        "Username": "test",
        "WorkingDir": "/home/",
        "Timeout": 60,
        "ContainerId": "ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea****",
        "ContainerName": "test-container",
        "TerminationMode": "ProcessTree",
        "Launcher": "python3 -u {{ACS::ScriptFileName|Ext(\".py\")}}",
        "InvokeInstances": {
          "InvokeInstance": [
            {
              "CreationTime": "2019-12-20T06:15:54Z",
              "UpdateTime": "2020-01-19T09:15:47Z",
              "FinishTime": "2019-12-20T06:15:56Z",
              "InvocationStatus": "Success",
              "Repeats": 0,
              "InstanceId": "i-bp1i7gg30r52z2em****",
              "Output": "OutPutTestmsg",
              "Dropped": 0,
              "StopTime": "2020-01-19T09:15:47Z",
              "ExitCode": 0,
              "StartTime": "2019-12-20T06:15:55Z",
              "ErrorInfo": "the specified instance does not exists",
              "Timed": false,
              "ErrorCode": "InstanceNotExists",
              "InstanceInvokeStatus": "Finished"
            }
          ]
        },
        "Tags": {
          "Tag": [
            {
              "TagKey": "owner",
              "TagValue": "zhangsan"
            }
          ]
        }
      }
    ]
  }
}

错误码

HTTP status code错误码错误信息描述
400RegionId.ApiNotSupportedThe api is not supported in this region.指定地域下不支持调用 API。请检查 RegionId 参数取值是否正确。
400NumberExceed.TagsThe Tags parameter number is exceed.标签个数超过最大限制。
400Duplicate.TagKeyThe Tag.N.Key contain duplicate key.标签中存在重复的键,请保持键的唯一性。
400InvalidTagKey.MalformedThe specified Tag.n.Key is not valid.指定的标签键参数有误。
400InvalidTagValue.MalformedThe specified Tag.n.Value is not valid.指定的标签值参数有误。
400MissingParameter.TagKeyYou must specify Tag.N.Key.请指定标签键。
400InvalidParam.PageNumberThe specified parameter is invalid.指定的 PageNumber 参数无效。
400InvalidParam.PageSizeThe specified parameter is invalid.指定的 PageSize 参数无效。
400InvalidParameter.NextTokenThe specified parameter NextToken is not valid.指定的参数NextToken不合法。
400InvalidParameter.MaxResultsThe specified parameter MaxResults is not valid.指定的参数MaxResults不合法。
403Operation.ForbiddenThe operation is not permitted.该操作是不被允许的。
404InvalidRegionId.NotFoundThe RegionId provided does not exist in our records.提供的RegionId不存在
500InternalError.DispatchAn error occurred when you dispatched the request.发送请求时发生错误,请稍后重试。

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2024-08-01OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2024-05-14OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2023-12-21OpenAPI 错误码发生变更、OpenAPI 入参发生变更、OpenAPI 返回结构发生变更查看变更详情
2023-05-12OpenAPI 错误码发生变更查看变更详情
2022-07-07OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2022-06-22OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2021-05-12OpenAPI 错误码发生变更查看变更详情