
# 实例执行同步命令 - SyncCommand
#### 功能介绍
实例执行同步命令接口。调用此api的前提条件是租户需要先购买实例。可以通过调用该接口实现对自己的实例进行adb指令操作。
该接口是同步操作接口，如果有耗时adb操作建议使用实例执行异步命令接口。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/KooPhone/doc?api=SyncCommand)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-koophone/kp_01_0009.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                            | 访问级别  | 资源类型（\*为必须）           | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | koophone:cloudphoneResource:syncInvokeInstance | Write | cloudphoneResource \* | -   | -  | -      |
     
  
 
#### URI
POST /v1/instances/sync-command
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| x-request-id | 是    | String | 消息跟踪唯一id |
| X-Auth-Token | 是    | String | 租户级Token |
   
表2请求Body参数 
| 参数           | 是否必选 | 参数类型             | 描述                                                        |
|:---|:---|:---|:---|
| command      | 是    | String           | 命令，最大长度为1024字节，只支持大小写字母、数字、下划线（_）、点（.）、斜线（/）、冒号（:）、中划线（-） |
| instance_ids | 是    | Array of strings | 实例列表，单个实例最长32个字符，列表最长100列                                 |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数         | 参数类型                                                                                | 描述                        |
|:---|:---|:---|
| error_code | String                                                                              | 响应码，错误码规范KP.API.0001，数字递增 |
| error_msg  | String                                                                              | 响应描述                      |
| data       | [CmdResultWrapper] object | 命令执行结果                    |
   
 表4CmdResultWrapper 
| 参数          | 参数类型                                                                            | 描述     |
|:---|:---|:---|
| cmd_results | Array of [CmdResult] objects | 命令执行结果 |
   
 表5CmdResult 
| 参数          | 参数类型    | 描述                                   |
|:---|:---|:---|
| instance_id | String  | 实例id                                 |
| status      | Integer | 任务状态。1：运行中，2：成功，-1：失败                |
| error_code  | String  | 任务错误码                                |
| error_msg   | String  | 任务错误码说明                              |
| execute_msg | String  | 任务执行返回内容，最长1024字节。命令执行成功和失败均将命令的输出返回 |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                              |
|:---|:---|:---|
| error_code | String | 0：成功 KOOPHONE.API.1000：请求参数错误 KOOPHONE.API.1001：没有实例权限 KOOPHONE.API.9999：服务内部错误 |
| error_info | String | 错误信息                                                                                                                                                                                                                            |
   
**状态码：500**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                              |
|:---|:---|:---|
| error_code | String | 0：成功 KOOPHONE.API.1000：请求参数错误 KOOPHONE.API.1001：没有实例权限 KOOPHONE.API.9999：服务内部错误 |
| error_info | String | 错误信息                                                                                                                                                                                                                            |
   
#### 请求示例
```
/v1/instances/sync-command
{
  "command" : "ls -l /system",
  "instance_ids" : [ "a44uhlf7", "efjy72gs" ]
}
```
#### 响应示例
**状态码：200**
正常响应
```
{
  "data" : {
    "cmd_results" : [ {
      "instance_id" : "a44uhlf7",
      "status" : -1,
      "error_code" : "CPS.0191",
      "error_msg" : "Run command failed.",
      "execute_msg" : "ls: cannot access '/system': No such file or directory"
    }, {
      "instance_id" : "efjy72gs",
      "status" : 2,
      "error_code" : "",
      "error_msg" : "",
      "execute_msg" : "xxxxxx"
    } ]
  },
  "error_code" : "0",
  "error_msg" : "ok"
}
```
#### 状态码
| 状态码 | 描述   |
|:---|:---|
| 200 | 正常响应 |
| 400 | 错误响应 |
| 500 | 内部错误 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-koophone/ErrorCode.html)。
