更新时间:2025-07-01 GMT+08:00
分享

创建脚本

功能介绍

创建作业脚本:自定义脚本

  • 脚本有标签属性,表示是高危脚本。创建时候不需要对脚本进行是否是高危的二次校验。

  • 进行租户隔离;北向接口创建的脚本,审批人字段不填写,默认不需要审批。

接口约束

  • 脚本名称:同一租户下,脚本名称不能重复,最大字符64个字符,支持中文+字母+数字+下划线。

  • 脚本内容最大100kb。

  • 脚本参数个数最多20个。

  • 脚本描述:最大256个字符。

  • 单个参数的参数名称 64个字符,只支持字母+数字+下划线。

  • 单个参数的值最大1024个字符,正则表达式如下:^((?!.{2,})[a-zA-Z0-9_-/.*\x20?:",=+@\[{]}])*$。

  • 审批人最多支持5人。

  • 脚本输出的日志总量只支持1MB。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v1/job/scripts

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

租户token。

约束限制:

从IAM获取的租户token。

取值范围:

不涉及。

默认取值:

不涉及。

x-project-id

String

参数解释:

项目ID。

约束限制:

region对应的项目ID。

取值范围:

不涉及。

默认取值:

不涉及。

x-user-profile

String

参数解释:

IAM5.0用户信息。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

X-Language

String

参数解释:

国际化标记,zh-cn表示中文,en-us或不传表示英文。

约束限制:

zh-cn表示中文,en-us或不传表示英文。

取值范围:

zh-cn/en-us。

默认取值:

不涉及。

表2 请求Body参数

参数

是否必选

参数类型

描述

name

String

参数解释:

脚本名称。

约束限制:

只能包含中文、英文、数字、下划线。

取值范围:

不涉及。

默认取值:

不涉及。

properties

ScriptPropertiesModel object

参数解释:

脚本属性。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

description

String

参数解释:

脚本描述。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

type

String

参数解释:

脚本类型。

对于脚本后缀:

  • SHELL:后缀为.sh。

  • PYTHON:后缀为.py。

  • BAT:后缀为.bat。

约束限制:

值只能为:SHELL、PYTHON、BAT。

取值范围:

SHELL、PYTHON、BAT。

默认取值:

不涉及。

content

String

参数解释:

脚本内容。

约束限制:

对应语言的脚本内容。

取值范围:

不涉及。

默认取值:

不涉及。

enterprise_project_id

String

参数解释:

企业项目ID,默认为:0。

约束限制:

真实的企业项目ID。

取值范围:

不涉及。

默认取值:

不涉及。

script_params

Array of ScriptParamDefine objects

参数解释:

脚本入参。

约束限制:

参数个数:0-20个。

取值范围:

不涉及。

默认取值:

不涉及。

表3 ScriptPropertiesModel

参数

是否必选

参数类型

描述

risk_level

String

参数解释:

风险等级。

约束限制:

  • LOW:低风险。

  • MEDIUM:中风险。

  • HIGH:高风险。

取值范围:

LOW/MEDIUM/HIGH。

默认取值:

不涉及。

version

String

参数解释:

脚本版本号。

约束限制:

格式:1.0.0

取值范围:

不涉及。

默认取值:

不涉及。

reviewers

Array of ReviewerInfo objects

参数解释:

审批人,不填写不需要审批。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

protocol

String

参数解释:

审批消息通知协议,用于通知审批人。

约束限制:

  • DEFAULT:默认。

  • SMS:短信。

  • EMAIL:邮件。

  • DING_TALK:钉钉。

  • WE_LINK:welink。

  • WECHAT:微信。

  • CALLNOTIFY:语言。

  • NOT_TO_NOTIFY:不通知。

取值范围:

DEFAULT/DEFAULT/SMS/EMAIL/DING_TALK/WE_LINK/WECHAT/CALLNOTIFY/NOT_TO_NOTIFY。

默认取值:

不涉及。

表4 ReviewerInfo

参数

是否必选

参数类型

描述

reviewer_name

String

参数解释:

审批人名称(IAM用户名)。

约束限制:

IAM用户名。

取值范围:

不涉及。

默认取值:

不涉及。

reviewer_id

String

参数解释:

审批人ID(IAM用户Id)。

约束限制:

IAM用户Id。

取值范围:

不涉及。

默认取值:

不涉及。

表5 ScriptParamDefine

参数

是否必选

参数类型

描述

param_name

String

参数解释:

参数名。

约束限制:

参数名仅支持字母、数字以及下划线。

取值范围:

不涉及。

默认取值:

不涉及。

param_value

String

参数解释:

参数值。

约束限制:

  • 参数长度为1-4096位。

  • 可以包含大写字母、小写字母、数字及特殊字符(_-/.* ?:",=+@#[{]})。

  • 禁止出现连续'.'。

取值范围:

不涉及。

默认取值:

不涉及。

param_description

String

参数解释:

参数描述。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

param_order

Integer

参数解释:

参数顺序。【已废弃】该参数已废弃,传入该参数不会生效。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

sensitive

Boolean

参数解释:

是否是敏感参数。

约束限制:

true/false。

取值范围:

true/false。

默认取值:

不涉及。

响应参数

状态码:200

表6 响应Body参数

参数

参数类型

描述

data

String

参数解释:

创建脚本,系统返回的脚本ID。

取值范围:

不涉及。

状态码:400

表7 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

参见错误码章节。

error_msg

String

参数解释:

错误描述。

取值范围:

参见错误码章节。

请求示例

创建一个SHELL脚本,审批消息通过微信通知审批人。

POST https://{Endpoint}/v1/job/scripts

{
  "type" : "SHELL",
  "content" : "echo ${value}",
  "name" : "09101112",
  "description" : "实例脚本",
  "properties" : {
    "risk_level" : "HIGH",
    "version" : "1.0.0",
    "reviewers" : [ {
      "reviewer_name" : "test",
      "reviewer_id" : "7a8513cd87b7448283xxxxxxxxx"
    } ],
    "protocol" : "WECHAT"
  },
  "script_params" : [ {
    "param_name" : "a",
    "param_value" : "string",
    "param_description" : "string",
    "param_order" : 1,
    "sensitive" : true
  } ]
}

响应示例

状态码:200

创建的脚本uuid。

更多状态码请参考状态码

{
  "data" : "SC2023102521xxxxxxxxxx"
}

状态码:400

包含错误信息。

更多状态码请参考状态码

{
  "error_code" : "COC.00040701",
  "error_msg" : "script_params size must be between 0 and 50"
}

状态码

状态码

描述

200

创建的脚本uuid。

更多状态码请参考状态码

400

包含错误信息。

更多状态码请参考状态码

错误码

请参见错误码

相关文档