创建命令
创建命令,支持保存、仅执行、执行并保存
请求参数
参数名称 |
类型 |
是否必须 |
描述 |
execution |
String |
是 |
执行动作。枚举值:SAVE(仅保存),RUN(仅执行),SAVE_AND_RUN(保存并执行) |
action |
Action |
是 |
执行动作详情 |
parameters |
Map |
否 |
执行命令时的参数值,仅在命令有参数且需要执行时需要 |
targetSelectorType |
String |
否 |
实例选择器类型,仅在执行动作为执行或保存并执行时需要。默认值为INSTANCES_LIST。可选值:INSTANCES_LIST(实例列表),ALL_INSTANCES(全部实例),TAG_INSTANCES(实例标签选择),INSTANCES_IMPORT(实例列表导入) |
targets |
List<Target> |
否 |
实例ID列表,仅在targetSelectorType为INSTANCES_LIST时需要 |
targetSelector |
TargetSelector |
否 |
实例选择器 |
请求
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = ca_client.CaClient(config)
user_id = ''
execution = 'SAVE_AND_RUN'
action = ca_model.Action(
"", "", "COMMAND", "yyy-python-test", 60,
ca_model.Command(
"SHELL", "ls", "INDIVIDUAL", False, [], "root", "/home"
)
)
parameter = {}
target_selector = ca_model.TargetSelector("BCC", [])
target_selector_type = "INSTANCES_LIST"
targets = [ca_model.Target("BCC", "i-kBdE8Tav")]
response = client.create_action(execution, user_id, action, targets, parameter, target_selector,
target_selector_type)
删除命令
删除已保存的命令
接口描述
参数名称 |
类型 |
是否必须 |
描述 |
id |
String |
是 |
命令id |
响应参数
参数名称 |
类型 |
描述 |
requestId |
String |
请求id |
code |
String |
响应状态,成功为success |
请求示例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = client.CaClient(config)
id = "c-xadYvQ1FSA5viD4E"
response = client.delete_action(id)
响应示例
{
"requestId": "b7d01b02-40ea-4ed2-9969-925790******",
"code": "success",
}
查询命令详情
查询已保存的命令或公共命令
请求参数
参数名称 |
类型 |
是否必须 |
描述 |
id |
String |
是 |
命令ID |
user_id |
String |
是 |
用户ID |
响应参数
参数名称 |
类型 |
描述 |
requestId |
String |
请求ID |
code |
String |
响应状态,成功为success |
result |
Action |
命令详情 |
请求示例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = ca_client.CaClient(config)
id = "c-k7zXV794Jjz1WZC8"
user_id = ""
response = client.get_action(id, user_id)
print(response)
响应示例
{
"requestId" : "8f713916-d41b-472a-a06b-8a80cb******",
"code": "success",
"result": {
"id": "a-CwkIRFAaoUCx",
"name": "test_command",
"description": "安装和升级HAS-Agent到最新版本",
"timeoutSecond": 300,
"type": "COMMAND",
"command": {
"type": "SHELL",
"content": "",
"enableParameter": false,
"parameters": [
{
"name": "参数名",
"desc" : "desc"
}
],
"user": "work",
"workDir": "/home/work/"
},
"createdTimestamp": 1659534994121,
"updatedTimestamp": 1659534994121
}
}
修改我的命令
修改我的命令
请求参数
UpdateActionRequest
参数名称 |
类型 |
是否必须 |
描述 |
ref |
String |
是 |
需要修改的命令ID |
name |
String |
是 |
修改后的命令名称 |
description |
String |
是 |
修改后的命令描述 |
command |
Command |
是 |
修改后的命令 |
响应参数
参数名称 |
类型 |
描述 |
requestId |
String |
请求id |
code |
String |
响应状态,成功为success |
请求示例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = ca_client.CaClient(config)
action = ca_model.Action(
"c-k7zXV794Jjz1WZC8", "", "COMMAND", "yyy-python-test-update", 60,
ca_model.Command(
"SHELL", "ls", "INDIVIDUAL", False, [], "root", "/home"
)
)
execution = "SAVE"
response = client.update_action(action, execution)
print(response)
响应示例
{
"requestId": "be82abc6-eb4c-4a51-9f52-f59b97******",
"code": "success"
}
命令列表查询
查询我的命令列表或公共命令列表
请求参数
参数名称 |
类型 |
是否必须 |
描述 |
action |
ActionFilter |
是 |
命令过滤器 |
page_no |
int |
是 |
页码 |
page_size |
int |
是 |
页大小 |
sort |
String |
否 |
排序字段,可选值createTime(命令创建时间) |
ascending |
bool |
否 |
是否升序,默认false |
ActionFilter
CommandFilter
参数名称 |
类型 |
是否必须 |
参数位置 |
描述 |
scope |
String |
是 |
RequestBody参数 |
按命令可见范围筛选。枚举值:INDIVIDUAL(个人命令),GLOBAL(公共命令) |
type |
String |
否 |
RequestBody参数 |
按命令类型筛选。枚举值:SHELL,POWERSHELL |
name |
String |
否 |
RequestBody参数 |
按命令名称筛选 |
响应参数
公共响应体中的result如下:
参数名称 |
类型 |
描述 |
pageNo |
int |
页码 |
pageSize |
int |
页大小 |
totalCount |
int |
总数 |
data |
List<Action> |
命令列表 |
请求示例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = ca_client.CaClient(config)
action = ca_model.Action(
"", "", "COMMAND", "", 0,
ca_model.Command(
None, "", "INDIVIDUAL", False, {}, "", ""
)
)
ascending = False
page_no = 1
page_size = 10
sort = "createTime"
user_id = ""
response = client.action_list(action, page_no, page_size, sort, ascending, user_id)
print(response)
响应示例
{
"requestId": "ca1316b5-3fab-4c91-aeac-ad51fd******",
"code": "success",
"result": {
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"data": [
{
"id": "c-4CtIumYWlo******",
"type": "COMMAND",
"name": "cmd_test_test",
"timeoutSecond": 30,
"command": {
"type": "SHELL",
"content": "ls",
"scope": "INDIVIDUAL",
"enableParameter": false,
"workDir": "/home",
"user": "root"
},
"createdTimestamp": 1694672762000,
"updatedTimestamp": 1694672762000
}
]
}
}
执行命令
执行已创建的我的命令或公共命令
请求参数
参数名称 |
类型 |
是否必须 |
描述 |
action |
Action |
是 |
所要执行的命令,仅需填写id |
parameters |
Map |
否 |
执行命令时的参数值,仅在命令有参数时需要 |
targetSelectorType |
String |
否 |
实例选择器类型。默认值为INSTANCES_LIST。INSTANCES_LIST(实例列表),ALL_INSTANCES(全部实例),TAG_INSTANCES(实例标签选择),INSTANCES_IMPORT(实例列表导入) |
targets |
List<Target> |
否 |
实例ID列表,仅在targetSelectorType为INSTANCES_LIST时需要 |
targetSelector |
TargetSelector |
否 |
实例选择器 |
响应参数
公共响应体中的result如下:
参数名称 |
类型 |
描述 |
actionId |
String |
命令ID |
runId |
String |
执行ID |
请求示例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.ca import ca_client, ca_model
if __name__ == '__main__':
HOST = b'http://ca.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),endpoint=HOST)
client = ca_client.CaClient(config)
user_id = ''
action = ca_model.Action(
"c-4cMSvlmdfWp2GdA9"
)
parameter = {}
target_selector = ca_model.TargetSelector("BCC", [])
target_selector_type = "INSTANCES_LIST"
targets = [ca_model.Target("BCC", "i-ZCHupg0z")]
response = client.action_run(action, parameter, user_id, target_selector_type, targets, target_selector)
print(response)
响应示例
{
"requestId": "87c25fbd-21c9-4082-904a-0d8c85******",
"code": "success",
"result": {
"runId": "r-2InH1HsWXU******",
"actionId": "c-WgEtWtD3sV******"
}
}
附录
Action
参数名称 |
类型 |
描述 |
id |
String |
命令ID,仅被保存的命令拥有 |
type |
String |
Action类型。枚举值:COMMAND(命令),FILE_UPLOAD(上传文件) |
name |
String |
命令名称,仅被保存的命令拥有 |
description |
String |
动作描述 |
timeoutSecond |
int |
动作的超时时间(秒) |
command |
Command |
命令详情 |
fileUpload |
FileUpload |
文件上传详情 |
createdTimestamp |
long |
命令创建时间。unix时间戳(毫秒) |
updateTimestamp |
long |
命令最后一次被修改时间。unix时间戳(毫秒) |
Command
参数名称 |
类型 |
描述 |
type |
String |
脚本类型。枚举值:SHELL,POWERSHELL |
scope |
String |
命令可见范围。GLOBAL表示公共命令,INDIVIDUAL表示个人命令 |
content |
long |
命令脚本内容 |
enableParameter |
bool |
命令是否包含参数 |
parameters |
List<Parameter> |
命令参数列表 |
user |
String |
命令在虚机的执行用户 |
workDir |
int |
命令在虚机的执行路径 |
execParams |
Map<String, String> |
命令执行时的实际参数值 |
FileUpload
参数名称 |
类型 |
描述 |
os |
String |
操作系统。枚举值:LINUX,WINDOWS |
filename |
String |
文件名称 |
filepath |
String |
目标路径 |
bosBucketName |
String |
bos桶名称 |
bosFilePath |
String |
bos文件路径 |
bosEtag |
String |
文件唯一标识符 |
overwrite |
bool |
是否覆盖目标路径下的同名文件 |
user |
String |
用户,仅Linux文件上传需要 |
group |
String |
用户组,仅Linux文件上传需要 |
mode |
String |
文件权限, 仅Linux文件上传需要 |
Parameter
参数名称 |
类型 |
描述 |
name |
String |
参数名称 |
desc |
String |
参数描述 |
TargetSelector
参数名称 |
类型 |
描述 |
instanceType |
String |
实例类型。枚举值:BCC,BBC |
tags |
List<Tag> |
实例标签列表 |
importInstances |
TargetImport |
实例标签列表 |
Tag
参数名称 |
类型 |
描述 |
tagKey |
String |
标签Key |
tagValue |
String |
标签Value |
TargetImport
参数名称 |
类型 |
描述 |
keywordType |
String |
实例列表导入类型。枚举值:instanceId(通过实例ID导入),internalIp表示(通过实例内网导入) |
instances |
List<String> |
实例清单列表 |
Target
参数名称 |
类型 |
描述 |
instanceType |
String |
实例类型。枚举值:BCC,BBC |
instanceId |
List<String> |
实例ID列表 |