1. 通过 PythonSDK 操作云服务器资源
本文档说明如何通过 PythonSDK 操作您的云服务器资源。
本文档中涉及到的 AccessKey 和 SecretAccessKey 只用作演示用,不作为您真实操作自己资源的依据。
本文档中涉及到的链接信息实际应为https://ai.blsc.cn (opens in a new tab)
本页所有接口都用到可用区信息,可用区具体说明详见 可用区, 本页不再重复说明
本页所有接口都用到资源规格信息,资源规格具体说明详见 资源规格, 本页不再重复说明
本页所有接口返回信息都包含异步任务信息,异步任务具体说明详见 异步任务, 本页不再重复说明
1.1. 云服务器密码加密
hexPassword:str = PasswordUtils.toHex("DaQ2mUt1i4d.dcce")
print(hexPassword)
1.2. 云服务器密码解密
rawPassword:str = PasswordUtils.fromHex("3165666e50492e67464e616c49614155");
print(rawPassword)
1.3. 创建云服务器询价
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = RunInstancesRequest()
# 待创建云服务器所属可用区
request.zoneCode = "cn-zhongwei-a"
# 待创建相同规格的云服务器个数
request.count = 1
# 待创建云服务器类型。详见InstanceType.vhostModel
request.ecsModel = "ecs.cpu.calc.4c8g"
# 待创建云服务器使用的镜像id
request.imageUuid = "636bc998-9382-47e9-9573-6dbac34abda7"
# 待创建云服务器系统盘类型
request.rootDiskType = "HDD"
# 待创建云服务器系统盘大小
request.rootDiskSize = 20
# 待创建云服务器计费类型
request.billingType = BillingTypeEnum.BillingTypeEnum.PostPaid.name
# 待创建云服务器带云盘信息
ebs = EBSInput({"diskType": "HDD", "diskSize": "30"})
request.ebs = [ebs]
# 待创建云服务器带公网IP信息
eip = EIPInput({"networkSize": 10, "networkType": "Flow"})
request.eip = eip
# 返回的response是一个InquiryPriceRunInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.InquiryPriceRunInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的云服务器信息列表。数据类型为InquiryPriceResponse
data = response.data
# InquiryPriceResponse类重要属性如下所示
# billingType参数询价的计费类型
# cashBalance账户当前余额
# originPrice询价总额
# items询价明细,数据类型为list[InquirePriceItem]
# InquirePriceItem类主要属性如下所示
# resourceType资源类型
# subResourceType 资源子类型
# attr 资源属性。数据类型list[str]可能为空
# size 资源大小。
# originPrice资源子类询价结果
1.4. 创建云服务器
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = RunInstancesRequest()
# 待创建云服务器所属可用区
request.zoneCode = "cn-zhongwei-a"
# 待创建相同规格的云服务器个数
request.count = 1
# 待创建云服务器类型。详见InstanceType.vhostModel
request.ecsModel = "ecs.cpu.calc.4c8g"
# 待创建云服务器别名
request.aliasName = "ecs-abcdefg5"
# 待创建云服务器使用的镜像id
request.imageUuid = "636bc998-9382-47e9-9573-6dbac34abda7"
# 待创建云服务器系统盘类型
request.rootDiskType = "HDD"
# 待创建云服务器系统盘大小
request.rootDiskSize = 20
# 待创建云服务器计费类型
request.billingType = BillingTypeEnum.BillingTypeEnum.PostPaid.name
# 待创建云服务器带云盘信息
ebs = EBSInput({"diskType": "HDD", "diskSize": "30"})
request.ebs = [ebs]
# 待创建云服务器带公网IP信息
eip = EIPInput({"networkSize": 10, "networkType": "Flow"})
request.eip = eip
# 返回的response是一个RunInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.RunInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的云服务器信息列表。数据类型为RunInstancesResponseBody
data = response.data
# RunInstancesResponseBody类有多个重要属性
# totalCount表示创建总数,和参数中的count保持一致
# successCount表示成功创建个数
# failedCount表示创建失败个数
# failedMsgs表示失败原因,数据类型为list[str]
# resourceUuids表示创建成功的云服务器id列表,数据类型为list[str]
# jobUuids表示创建成功的云服务器对应的异步任务id列表,数据类型为list[str]
1.5. 启动云服务器
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = StartInstancesRequest()
# 待启动云服务器所属可用区
request.zoneCode ="cn-zhongwei-a"
# 待启动云服务器id
request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
# 返回的response是一个StartInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.StartInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的异步任务信息列表。数据类型为list[Job]
jobs = response.data
# 您可以通过jobs[0].jobUuid的方式获得异步任务id
# 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.6. 关闭云服务器
stopType请参考StopInstances中的说明
stoppedMode请参考StopInstances中的说明
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = StopInstancesRequest()
# 待关闭云服务器所属可用区
request.zoneCode ="cn-zhongwei-a"
# 待关闭云服务器id
request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
# 返回的response是一个StopInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.StopInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的异步任务信息列表。数据类型为list[Job]
jobs = response.data
# 您可以通过jobs[0].jobUuid的方式获得异步任务id
# 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.7. 重启云服务器
stopType请参考RebootInstances中的说明
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = RebootInstancesRequest()
# 待重启云服务器所属可用区
request.zoneCode ="cn-zhongwei-a"
# 待重启云服务器id信息
request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
# 返回的response是一个RebootInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.RebootInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的异步任务信息列表。数据类型为list[Job]
jobs = response.data
# 您可以通过jobs[0].jobUuid的方式获得异步任务id
# 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.8. 续费云服务器
续费操作会默认把系统盘和云服务器一起续费,不用单独传入系统盘信息
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = RenewInstancesRequest()
# 待续费云服务器所属可用区
request.zoneCode = "cn-zhongwei-a"
# 待续费云服务器id信息
request.ecsUuids = ["a5fd0143-0a6b-4825-b26a-142e2367c560"]
# 待续费云服务器续费月数
request.period = 1
# 返回的response是一个RenewInstancesResponse实例
# 该实例有两个重要属性,分别是code、message
response = client.RenewInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
1.9. 删除云服务器
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = DeleteInstancesRequest()
# 待删除云服务器所属可用区
request.zoneCode = "cn-zhongwei-a"
# 待删除云服务器id信息
request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
# 删除云服务器是否同时删除公网IP。True表示删除,Flase表示不删除
request.deleteEip = True
# 删除云服务器是否同时删除数据云盘。True表示删除,False表示不删除
request.deleteEbs = True
# 返回的response是一个DeleteInstancesResponse实例
# 该实例有三个重要属性,分别是code、message和data
response = client.DeleteInstance(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的异步任务信息列表。数据类型为list[Job]
jobs = response.data
# 您可以通过jobs[0].jobUuid的方式获得异步任务id
# 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.10. 查询云服务器列表
云服务器查询接口返回ECS信息,具体说明详见 ECS, 本页不再重复说明
# 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
# 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
AccessKey:str = "abcd"
SecretAccessKey:str = "abcd1234"
clientProfile = ClientProfile(
AccessKey,
SecretAccessKey
)
# 实例化一个请求产品的client对象
client = ECSClient(clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
request = DescribeInstancesRequest()
# 待查询列表使用公网IP过滤。该参数可选
request.eip = "130.234.213.23"
# 待查询列表使用内网IP过滤。该参数可选
request.ip = "172.18.2.23"
# 待查询列表使用云服务器id过滤。该参数可选
request.ecsUuid = "a5fd0143-0a6b-4825-b26a-142e2367c560"
# 待查询列表使用云服务器名称过滤。该参数可选
request.aliasName = "ecs-pnwtykfs"
# 分页页号,该参数可选。默认1
request.pageNum = 1
# 分页页大小,该参数可选。默认200
request.pageSize = 200
# 返回的response是一个DescribeInstancesResponse实例
response = client.DescribeInstances(request)
# code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
code = response.code
# message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
message = response.message
# data属性为实际返回的云服务器信息列表。数据类型为PageECSData
pageDatas = response.data
# pageNum当前页号
# pageSize页大小
pageNum = pageDatas.pageNum
pageSize = pageDatas.pageSize
# 总数据量
total = pageDatas.total
# rows表示返回的云服务器信息列表,数据类型为list[ECS]
rows = pageDatas.rows