DescribeInvocationResults - 查看云助手命令执行结果

调用DescribeInvocationResults查看一条或多条云助手命令的执行结果,即在ECS实例中的实际执行结果。

接口说明

  • 当您执行命令后,不代表命令一定成功执行,并且一定有预期的命令效果。您需要通过本接口查看实际的具体执行结果,以实际输出结果为准。
  • 您可以查询最近 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:DescribeInvocationResultsget
*全部资源
*

请求参数

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

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

cn-hangzhou
ResourceGroupIdstring

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

rg-bp67acfmxazb4p****
InvokeIdstring

命令执行 ID。您可以通过接口 DescribeInvocations 查询 InvokeId。

t-hz0jdfwd9f****
InstanceIdstring

实例 ID。

i-bp1i7gg30r52z2em****
CommandIdstring

命令 ID。

c-hz0jdfwcsr****
InvokeRecordStatusstring

命令执行状态。取值范围:

  • Running:运行中。
    • 定时执行:未手动停止定时执行命令前,执行状态一直为进行中。
    • 单次执行:一旦有进行中的命令进程,总的执行状态就为进行中。
  • Finished:已完成。
    • 定时执行:命令进程不可能为执行完成。
    • 单次执行:所有实例全部完成执行。或者手动停止部分实例的命令进程,其余实例全部执行完成。
  • Success:
    • 单次执行的命令:命令执行完成,且退出码为 0。
    • 定时执行的命令:上一次执行成功且退出码为 0,且指定的执行时间已结束。
  • Failed:执行失败。
    • 定时执行:命令进程不可能为执行失败。
    • 单次执行:所有实例全部执行失败。
  • PartialFailed:部分执行失败。
    • 定时执行:命令进程不可能为部分失败。
    • 单次执行:部分实例有执行失败的命令进程,则总执行状态为部分失败。
  • Stopped:命令执行已停止。
  • Stopping:正在停止执行的命令。
Running
IncludeHistoryboolean

是否返回命令定时执行的历史记录。取值范围:

  • true:表示返回命令定时执行的结果。当取值为 true 时,参数 InvokeId 的取值不能为空,且必须为定时执行(RepeatMode 为 Period)或系统每一次启动后执行(RepeatMode 为 EveryReboot)的命令执行 ID。
  • false:表示不返回。

默认值为 false。

false
ContentEncodingstring

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

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

默认值为 Base64。

PlainText
PageNumberlong

当前页码。

起始值为 1。

默认值为 1。

1
PageSizelong

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

最大值为 50。

默认值为 10。

1
MaxResultsinteger

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

最大值为 50。

默认值为 10。

10
NextTokenstring

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

AAAAAdDWBF2
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
RequestIdstring

请求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE*****
Invocationobject

命令执行结果的集合。

PageSizelong

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

1
PageNumberlong

当前页码。

1
TotalCountlong

命令总个数。

1
NextTokenstring

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

AAAAAdDWBF2
InvocationResultsarray<object>

命令执行结果集。

InvocationResultobject
InvocationStatusstring

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

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

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

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

命令 ID。

c-hz0jdfwcsr****
InstanceIdstring

实例 ID。

i-bp1i7gg30r52z2em****
Outputstring

命令执行后的输出信息。

  • 若 ContentEncoding 指定 PlainText,返回原始输出信息。
  • 若 ContentEncoding 指定 Base64,返回 Base64 编码后的输出信息。
MTU6MzA6MDEK
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
ErrorCodestring

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

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

命令执行的完成时间。如果命令执行出现超时情况,命令执行的完成时间以StartTime延迟执行命令的超时时间Timeout为准。

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

命令执行 ID。

t-hz0jdfwd9f****
InvokeRecordStatusstring

命令执行状态。可能值:

  • Running:运行中。
    • 定时执行:未手动停止定时执行命令前,执行状态一直为进行中。
    • 单次执行:一旦有进行中的命令进程,总的执行状态就为进行中。
  • Finished:已完成。
    • 定时执行:命令进程不可能为执行完成。
    • 单次执行:所有实例全部完成执行。或者手动停止部分实例的命令进程,其余实例全部执行完成。
  • Failed:执行失败。
    • 定时执行:命令进程不可能为执行失败。
    • 单次执行:所有实例全部执行失败。
  • PartialFailed:部分执行失败。
    • 定时执行:命令进程不可能为部分失败。
    • 单次执行:部分实例有执行失败的命令进程,则总执行状态为部分失败。
  • Stopped:命令执行已停止。
  • Stopping:正在停止执行的命令。
Running
Usernamestring

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

test
ContainerIdstring

容器 ID。

ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea****
ContainerNamestring

容器名称。

test-container
TerminationModestring

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

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

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

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

命令执行的标签信息。

Tagobject

命令执行的标签信息。

TagKeystring

命令执行的标签键。

owner
TagValuestring

命令执行的标签值。

zhangsan

示例

正常返回示例

JSON格式

{
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE*****",
  "Invocation": {
    "PageSize": 1,
    "PageNumber": 1,
    "TotalCount": 1,
    "NextToken": "AAAAAdDWBF2",
    "InvocationResults": {
      "InvocationResult": [
        {
          "InvocationStatus": "Success",
          "Repeats": 0,
          "CommandId": "c-hz0jdfwcsr****",
          "InstanceId": "i-bp1i7gg30r52z2em****",
          "Output": "MTU6MzA6MDEK",
          "Dropped": 0,
          "StopTime": "2020-01-19T09:15:47Z",
          "ExitCode": 0,
          "StartTime": "2019-12-20T06:15:55Z",
          "ErrorInfo": "the specified instance does not exists",
          "ErrorCode": "InstanceNotExists",
          "FinishedTime": "2019-12-20T06:15:56Z",
          "InvokeId": "t-hz0jdfwd9f****",
          "InvokeRecordStatus": "Running",
          "Username": "test",
          "ContainerId": "ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea****",
          "ContainerName": "test-container",
          "TerminationMode": "ProcessTree",
          "Launcher": "python3 -u {{ACS::ScriptFileName|Ext(\".py\")}}",
          "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.发送请求时发生错误,请稍后重试。
500ServiceUnavailableThe request has failed due to a temporary failure of the server.请求后端超时,请稍后重试。
500InternalErrorThe request processing has failed due to some unknown error.内部错误,请重试。

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

变更历史

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