赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 百度云
  3. 云服务器 BCC
  4. 云助手SDK参考
  5. Python SDK
  6. 命令接口

命令接口

  • Python SDK
  • 发布于 2025-04-02
  • 0 次阅读
文档编辑
文档编辑

创建命令

创建命令,支持保存、仅执行、执行并保存

请求参数

参数名称 类型 是否必须 描述
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
    }
}

修改我的命令

修改我的命令

请求参数

参数名称 类型 是否必须 描述
action UpdateActionRequest 是 执行动作详情

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

参数名称 类型 是否必须 描述
command CommandFilter 是 执行动作详情

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列表

相关文章

安装SDK 2025-04-02 17:54

初始化 2025-04-02 17:54

CaClient 2025-04-02 17:54

批量获取实例内bsm-agent状态 2025-04-02 17:54

命令接口 2025-04-02 17:54

历史记录 2025-04-02 17:54

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号