EIP
更新时间:2023-08-31
申请EIP
- 申请一个EIP,可用于绑定到任意BCC实例
- 创建EIP需要实名认证,若未通过实名认证可以前往百度开放云官网控制台中的安全认证下的实名认证中进行认证。
args := &CreateEipArgs{
Name: "sdk-eip",
BandWidthInMbps: 1,
Billing: &Billing{
PaymentTiming: "Postpaid",
BillingMethod: "ByTraffic",
},
ClientToken: getClientToken(),
}
result, err := EIP_CLIENT.CreateEip(args)
EIP_ADDRESS = result.Eip
EIP带宽扩缩容
- 用于指定EIP的带宽扩缩容
- 通过查询EIP列表查看EIP扩缩容状态是否完成
args := &ResizeEipArgs{
NewBandWidthInMbps: 2,
ClientToken: getClientToken(),
}
err := EIP_CLIENT.ResizeEip(EIP_ADDRESS, args)
绑定EIP
- 绑定EIP到某个实例
- 只有available状态的EIP支持绑定操作
- 被绑定的实例不能存在任何已有EIP绑定关系
- 被绑定的实例不能处于欠费状态
args := &BindEipArgs{
InstanceType: "BCC",
InstanceId: BCC_TEST_ID,
ClientToken: getClientToken(),
}
err := EIP_CLIENT.BindEip(EIP_ADDRESS, args)
解绑EIP
- 解除指定EIP的绑定关系
- 被解绑的EIP必须已经绑定到任意实例
err := EIP_CLIENT.UnBindEip(EIP_ADDRESS, getClientToken())
释放EIP
- 释放指定EIP,被释放的EIP无法找回
- 如果EIP被绑定到任意实例,需要先解绑才能释放
err := EIP_CLIENT.DeleteEip(EIP_ADDRESS, getClientToken())
查询EIP列表
- 可根据多重条件查询EIP列表。
- 如只需查询单个EIP的详情,只需提供eip参数即可。
- 如只需查询绑定到指定类型实例上的EIP,提供instanceType参数即可。
- 如只需查询指定实例上绑定的EIP的详情,提供instanceType及instanceId参数即可。
- 若不提供查询条件,则默认查询覆盖所有EIP。
- 返回结果为多重条件交集的查询结果,即提供多重条件的情况下,返回同时满足所有条件的EIP。
- 以上查询结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定。
args := &ListEipArgs{}
result, err := EIP_CLIENT.ListEip(args)
ExpectEqual(t.Errorf, nil, err)
for _, e := range result.EipList {
if e.Eip == EIP_ADDRESS {
ExpectEqual(t.Errorf, "Postpaid", e.PaymentTiming)
ExpectEqual(t.Errorf, "ByTraffic", e.BillingMethod)
ExpectEqual(t.Errorf, 2, e.BandWidthInMbps)
}
}
EIP续费
- 针对指定EIP的续费操作,延长过期时长
- EIP扩缩容期间不能进行续费操作。
args := &PurchaseReservedEipArgs{
Billing: &Billing{
Reservation: &Reservation{
ReservationLength: 1,
ReservationTimeUnit: "month",
},
},
}
err := EIP_CLIENT.PurchaseReservedEip(EIP_ADDRESS, args)
ExpectEqual(t.Errorf, nil, err)