快照
更新时间:2024-07-02
创建快照
使用以下代码可以从指定的磁盘创建快照,支持创建系统盘快照和CDS磁盘快照。
创建系统盘快照时,实例的状态必须为 Running 或 Stopped 此操作才能正常完成。
创建CDS磁盘快照时,磁盘的状态需要为InUse或 Available 此操作才能正常完成。
可创建快照数量的配额取决于账号下拥有的磁盘总数,当前最多为磁盘数量乘以8。
Python
1import uuid
2
3from baidubce.auth.bce_credentials import BceCredentials
4from baidubce.bce_client_configuration import BceClientConfiguration
5from baidubce.services.bcc import bcc_client
6
7if __name__ == '__main__':
8 # 设置您的ak、sk和要访问的地域
9 HOST = b'http://bcc.bj.baidubce.com'
10 AK = b'ak'
11 SK = b'sk'
12 # 设置默认配置
13 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
14 endpoint=HOST)
15 # 创建bcc client
16 client = bcc_client.BccClient(config)
17
18 client_token = str(uuid.uuid4())
19 # 设置快照名称
20 snapshot_name = 'snapshot_' + client_token
21 # 创建快照的磁盘ID
22 volume_id = 'v-***'
23 resp = client.create_snapshot(volume_id, snapshot_name, client_token=client_token)
24 print(resp)
查询快照列表
使用以下代码以查询所有的快照信息,包括系统盘快照和数据盘快照信息:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 # 创建快照的磁盘ID
17 volume_id = 'v-***'
18 # 批量获取列表的查询的起始位置
19 marker = "your-marker"
20 # 每页包含的最大数量
21 max_keys = 100
22 resp = client.list_snapshots(marker=marker, max_keys=max_keys, volume_id=volume_id)
23 print(resp)
查询快照详情
使用以下代码可以通过指定的快照ID查询单个快照的详细信息:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 # 快照ID
17 snapshot_id = 's-EJq3B***'
18 resp = client.get_snapshot(snapshot_id)
19 print(resp)
删除快照
使用以下代码可以通过指定快照ID删除快照。
只有当快照的状态为 CreatedFailed 或 Available时,操作才能正常完成:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 # 待删除快照ID
17 snapshot_id = 's-EJq3B***'
18 resp = client.delete_snapshot(snapshot_id=snapshot_id)
19 print(resp)
查询快照链列表
使用以下代码可以查询快照链列表:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 # 磁盘ID
17 volume_id = 'v-***'
18 resp = client.list_snapshot_chain(volume_id)
19 print(resp)
快照链绑定标签
使用以下代码可以给指定快照链绑定标签:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client, bcc_model
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 tag1 = bcc_model.TagModel(tagKey='TestKey02',
17 tagValue='TestValue02')
18 tag2 = bcc_model.TagModel(tagKey='TestKey03',
19 tagValue='TestValue03')
20 tags = []
21 tags.append(tag1)
22 tags.append(tag2)
23 chain_id = "sl-i7TLl***"
24 resp = client.tag_snapshot_chain(chain_id, tags=tags)
25 print(resp)
快照链解绑标签
使用以下代码可以给指定快照链解绑标签:
Python
1from baidubce.auth.bce_credentials import BceCredentials
2from baidubce.bce_client_configuration import BceClientConfiguration
3from baidubce.services.bcc import bcc_client, bcc_model
4
5if __name__ == '__main__':
6 # 设置您的ak、sk和要访问的地域
7 HOST = b'http://bcc.bj.baidubce.com'
8 AK = b'ak'
9 SK = b'sk'
10 # 设置默认配置
11 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
12 endpoint=HOST)
13 # 创建bcc client
14 client = bcc_client.BccClient(config)
15
16 tag1 = bcc_model.TagModel(tagKey='TestKey02',
17 tagValue='TestValue02')
18 tag2 = bcc_model.TagModel(tagKey='TestKey03',
19 tagValue='TestValue03')
20 tags = []
21 tags.append(tag1)
22 tags.append(tag2)
23 chain_id = "sl-i7TLl***"
24 resp = client.untag_snapshot_chain(chain_id, tags=tags)
25 print(resp)
跨地域复制快照
使用以下代码可以将一份磁盘快照从一个地域复制到另一个地域:
Python
1# !/usr/bin/env python
2# coding=utf-8
3from baidubce.services.bcc import bcc_client
4from baidubce.services.bcc import bcc_model
5from baidubce.auth.bce_credentials import BceCredentials
6from baidubce.bce_client_configuration import BceClientConfiguration
7
8
9if __name__ == '__main__':
10 # 设置您的ak、sk和要访问的地域
11 HOST = b'http://bcc.bj.baidubce.com'
12 AK = b'ak'
13 SK = b'sk'
14 # 设置默认配置
15 config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
16 endpoint=HOST)
17 # 创建bcc client
18 client = bcc_client.BccClient(config)
19
20 # 跨区域复制快照demo
21 snapshot_id = "s-GTl*****" # 快照ID
22 dest_region_info_list = list() # 目标区域信息列表
23
24 dest_region_info1 = bcc_model.DestRegionInfoModel(destRegion="bd", # 目标区域名称
25 name="snapshot_name_for_bd") # 快照名称
26 dest_region_info2 = bcc_model.DestRegionInfoModel(destRegion="gz", # 目标区域名称
27 name="snapshot_name_for_gz") # 快照名称
28 dest_region_info_list.append(dest_region_info1)
29 dest_region_info_list.append(dest_region_info2)
30
31 # 请求跨区域复制快照
32 response = client.create_remote_copy_snapshot(snapshot_id=snapshot_id, # 快照ID
33 dest_region_infos=dest_region_info_list) # 目标区域信息列表
34
35 print(response)