# 执行公共脚本 - ExecuteJobPublicScript
#### 功能介绍
执行公共脚本。
脚本入参、超时时间、执行用户、资源受限。
#### 接口约束
-脚本入参支持20个。
-单次下发的机器支持200个。
-单次批次内机器数量最大10个。
-最大批次数量为20批。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/COC/doc?api=ExecuteJobPublicScript)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-coc/coc_api_06.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | coc:instance:executeDocument | Write | document \* | -   | -  | -      |
  | coc:instance:executeDocument | Write | instance \* | -   | -  | -      |
     
#### URI
POST /v1/job/public-scripts/{script_uuid}
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                               |
|:---|:---|:---|:---|
| script_uuid | 是    | String | **参数解释：** 公共脚本Uuid。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token   | 是    | String | **参数解释：** 租户token。 **约束限制：** 从IAM获取的租户token。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                      |
| X-Language     | 否    | String | **参数解释：** 国际化标记，zh-cn表示中文，en-us或不传表示英文。 **约束限制：** zh-cn表示中文，en-us或不传表示英文。 **取值范围：** zh-cn/en-us。 **默认取值：** 不涉及。 |
| x-project-id   | 否    | String | **参数解释：** 项目ID。 **约束限制：** region对应的项目ID。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                          |
| x-user-profile | 否    | String | **参数解释：** IAM5.0用户信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                              |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                                                                                  | 描述                                                               |
|:---|:---|:---|:---|
| execute_param   | 是    | [ScriptExecuteParam] object                         | **参数解释：** 脚本执行参数。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。   |
| execute_batches | 是    | Array of [ExecuteInstancesBatchInfo] objects | **参数解释：** 目标实例分批信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
 表4ScriptExecuteParam 
| 参数            | 是否必选 | 参数类型                                                                                                                              | 描述                                                                                      |
|:---|:---|:---|:---|
| resourceful   | 否    | Boolean                                                                                                                           | **参数解释：** 该参数已废弃，传入该参数不会生效。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                |
| timeout       | 是    | Integer                                                                                                                           | **参数解释：** 超时时间。 **约束限制：** 单位：秒，取值范围：5 \< timeout \< 1800。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| success_rate  | 是    | Double                                                                                                                            | **参数解释：** 成功率， **约束限制：** 支持小数点后一位。 **取值范围：** 1-100。 **默认取值：** 不涉及。                      |
| execute_user  | 是    | String                                                                                                                            | **参数解释：** 脚本执行用户，如：root。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                   |
| script_params | 否    | Array of [ScriptExecuteInputParam] objects | **参数解释：** 脚本入参列表。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                          |
   
 表5ScriptExecuteInputParam 
| 参数          | 是否必选 | 参数类型                                                                                                                            | 描述                                                                                                                                                                   |
|:---|:---|:---|:---|
| param_name  | 是    | String                                                                                                                          | **参数解释：** 脚本入参的名称,同一个脚本，参数名不能重复。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                        |
| param_value | 是    | String                                                                                                                          | **参数解释：** 脚本入参的值，默认必填。有引用参数（param_refer不为空）时，允许为空。 **约束限制：** - 参数长度为1-4096位 - 可以包含大写字母、小写字母、数字及特殊字符(_-/.\* ?:",=+@#\[{\]}) - 禁止出现连续'.' **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| param_order | 否    | Integer                                                                                                                         | **参数解释：** 【已废弃】该参数已废弃，传入该参数不会生效。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                        |
| param_refer | 否    | [ScriptExecuteParamReference] object | **参数解释：** 参数引用。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                         |
   
 表6ScriptExecuteParamReference 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                           |
|:---|:---|:---|:---|
| refer_type    | 是    | String | **参数解释：** 参数引用类型：PARAM_STORE。 **约束限制：** 不涉及。 **取值范围：** - PARAM_STORE: 参数中心引用。 **默认取值：** 不涉及。 |
| param_id      | 是    | String | **参数解释：** 引用参数的唯一主键id。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                          |
| param_version | 否    | String | **参数解释：** 引用参数的版本号。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                             |
   
 表7ExecuteInstancesBatchInfo 
| 参数                | 是否必选 | 参数类型                                                                                                                              | 描述                                                                                                         |
|:---|:---|:---|:---|
| batch_index       | 是    | Integer                                                                                                                           | **参数解释：** 批次索引，从1开始。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                          |
| target_instances  | 是    | Array of [ExecuteResourceInstance] objects | **参数解释：** 目标节点列表。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                             |
| rotation_strategy | 是    | String                                                                                                                            | **参数解释：** 暂停继续策略。 **约束限制：** - CONTINUE：继续。 - PAUSE：暂停。 **取值范围：** - CONTINUE：继续。 - PAUSE：暂停。 **默认取值：** 不涉及。 |
   
 表8ExecuteResourceInstance 
| 参数                | 是否必选 | 参数类型                                                                                                            | 描述                                                                                                                                     |
|:---|:---|:---|:---|
| resource_id       | 是    | String                                                                                                          | **参数解释：** ECS云服务器ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                      |
| region_id         | 是    | String                                                                                                          | **参数解释：** 服务器所属region。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                    |
| provider          | 否    | String                                                                                                          | **参数解释：** 资源提供者：ECS，不传默认为：ECS。请保证一次执行， 每个实例的provider是一致的。后续扩展CCE等。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                        |
| type              | 否    | String                                                                                                          | **参数解释：** 资源提供者下资源类型，不传默认为CLOUDSERVER。 CLOUDSERVER：CLOUDSERVER类型。 **约束限制：** 不允许跨type支持。 **取值范围：** - CLOUDSERVER：云服务器类型。 **默认取值：** 不涉及。 |
| custom_attributes | 否    | Array of [Customttribute] objects | **参数解释：** 支持用户自定义5个key_value形式的属性。 **约束限制：** - key值长度为10 。 - value长度为20 。 - map长度最大为5。 - 禁止填写敏感数据。 **取值范围：** 不涉及。 **默认取值：** 不涉及。       |
| agent_sn          | 否    | String                                                                                                          | **参数解释：** 【已废弃】该参数已废弃，传入该参数不会生效。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                          |
| project_id        | 否    | String                                                                                                          | **参数解释：** 【已废弃】该参数已废弃，传入该参数不会生效。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                          |
   
 表9Customttribute 
| 参数    | 是否必选 | 参数类型   | 描述                                                                  |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释：** 自定义属性key。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。    |
| value | 是    | String | **参数解释：** 自定义属性的value。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表10响应Body参数 
| 参数   | 参数类型   | 描述                      |
|:---|:---|:---|
| data | String | 执行公共脚本返回体：execute_uuid。 |
   
#### 请求示例
执行公共脚本。
```
POST https://{Endpoint}/v1/job/public-scripts/{script_uuid}
{
  "execute_param" : {
    "timeout" : 300,
    "execute_user" : "SYSTEM",
    "success_rate" : "100.0",
    "script_params" : [ {
      "param_name" : "action",
      "param_value" : "start",
      "param_order" : 1
    } ]
  },
  "execute_batches" : [ {
    "batch_index" : 1,
    "rotation_strategy" : "CONTINUE",
    "target_instances" : [ {
      "agent_sn" : "705c526eb7774c51xxxxxxxxxxxxxxxx",
      "resource_id" : "7c118539-15ab-41d3-xxxxxxxxxxxxxxxx",
      "project_id" : "10a6c23c2a10447797xxxxxxxxxxxxxxxx",
      "region_id" : "cn-north-x",
      "provider" : "ECS",
      "type" : "CLOUDSERVERS"
    } ]
  } ]
}
```
#### 响应示例
**状态码：200**
请求成功。
更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。
```
{
  "data" : "SCT2023083109562xxxxxxxxxx"
}
```
#### 状态码
| 状态码 | 描述                                                                               |
|:---|:---|
| 200 | 请求成功。 更多状态码请参考[状态码](https://support.huaweicloud.com/api-coc/coc_api_05_03.html)。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-coc/ErrorCode.html)。
