自动快照策略
更新时间:2024-07-02
创建自动快照策略
如下代码可以创建一个自动快照策略:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 args := &api.CreateASPArgs{
18 // 设置自动快照策略名称
19 Name: "sdkCreate",
20 // 设置一天中做快照的时间点,取值为0~23,0为午夜12点
21 // 例如设置做快照的时间点为下午两点:
22 TimePoints: []string{"14"},
23 // 设置一周中做快照的时间,取值为0~6,0代表周日,1~6代表周一到周六
24 // 例如设置做快照的时间为礼拜五:
25 RepeatWeekdays: []string{"5"},
26 // 设置自动快照保留天数,取-1则永久保留
27 RetentionDays: "7",
28 }
29 result, err := bccClient.CreateAutoSnapshotPolicy(args)
30 if err != nil {
31 fmt.Println("create auto snapshot policy failed:", err)
32 } else {
33 fmt.Println("create auto snapshot policy success: ", result)
34 }
35}
绑定自动快照策略
如下代码可以将自动快照策略绑定到某个CDS磁盘:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 // 设置需要绑定的自动快照策略ID
18 aspId := "asp-***"
19 args := &api.AttachASPArgs{
20 // 设置需要绑定的磁盘ID列表
21 VolumeIds: []string{"v-***", "v-***"},
22 }
23 err := bccClient.AttachAutoSnapshotPolicy(aspId, args)
24 if err != nil {
25 fmt.Println("attach auto snapshot policy with CDS volume failed:", err)
26 } else {
27 fmt.Println("attach auto snapshot policy with CDS volume success")
28 }
29}
解绑自动快照策略
如下代码可以将自动快照策略与指定CDS磁盘解除绑定:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 // 设置需要解绑的自动快照策略ID
18 aspId := "asp-***"
19 args := &api.DetachASPArgs{
20 // 设置需要解绑的磁盘ID列表
21 VolumeIds: []string{"v-***", "v-***"},
22 }
23 err := bccClient.DetachAutoSnapshotPolicy(aspId, args)
24 if err != nil {
25 fmt.Println("detach auto snapshot policy from CDS volume failed:", err)
26 } else {
27 fmt.Println("detach auto snapshot policy from CDS volume success")
28 }
29}
删除自动快照策略
如下代码可以删除自动快照策略:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 // 设置需要删除的自动快照策略ID
18 aspId := "asp-***"
19 err := bccClient.DeleteAutoSnapshotPolicy(aspId)
20 if err != nil {
21 fmt.Println("delete auto snapshot policy failed:", err)
22 } else {
23 fmt.Println("delete auto snapshot policy success")
24 }
25}
查询自动快照策略列表
如下代码可以查询到用户当前地域所有自动快照策略的列表:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 args := &api.ListASPArgs{}
18 result, err := bccClient.ListAutoSnapshotPolicy(args)
19 if err != nil {
20 fmt.Println("list all auto snapshot policy failed:", err)
21 } else {
22 fmt.Println("list all auto snapshot policy success: ", result)
23 }
24}
查询自动快照策略详情
如下代码可以查询到特定自动快照策略的详细信息:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 // 设置需要查询的自动快照策略ID
18 aspId := "asp-***"
19 result, err := bccClient.GetAutoSnapshotPolicy(aspId)
20 if err != nil {
21 fmt.Println("get auto snapshot policy detail failed:", err)
22 } else {
23 fmt.Println("get auto snapshot policy detail success", result)
24 }
25}
自动快照策略变更
如下代码可以更新一个自动快照策略:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 aspId := "asp-***"
18 args := &api.UpdateASPArgs{
19 // 自动快照策略名称,支持大小写字母、数字、中文以及-_ /.特殊字符,必须以字母开头,长度1-65。
20 Name: "changeDone",
21 // 一天中做快照时间点,取值为0~23。
22 TimePoints: []string{"10"},
23 // 一周中做快照的时间,取值为0~6。
24 RepeatWeekdays: []string{"0", "1"},
25 // 自动快照保留天数,取-1则永久保留。
26 RetentionDays: "2",
27 // 自动策略的id
28 AspId: "asp-***",
29 }
30 err := bccClient.UpdateAutoSnapshotPolicy(args)
31 fmt.Println(err)
32}