弹性网卡
获取Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分。
注意: API支持HTTP和HTTPS两种调用方式。为了提升数据的安全性,建议通过HTTPS调用
获取AK/SK
要使用百度智能云VPC,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问服务做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:
创建弹性网卡
- 可指定IPv4和IPv6内网IP,指定的内网IP必须在弹性网卡所在子网内,而且不能被占用。
- 指定的IPv4 IP中只能有一个是主IP,其他必须是辅助IP。
- 指定IPv6 IP时,需弹性网卡所在子网已分配IPv6网段,目前IPv6 IP均为辅助IP。
- privateIpAddress为””表示自动分配IP地址。
- 创建弹性网卡同时可以绑定已有普通安全组或企业安全组(二选一),普通安全组所属VPC必须与网卡所属的VPC一致。
函数声明
def create_eni(self, name, subnet_id, security_group_ids=None, enterprise_security_group_ids=None,
eni_ip_address_list=None, eni_ipv6_address_list=None, description=None,
client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/pkknfara0
返回值
操作成功:
{
"eni_id":"eni-2dn7v328tegp"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考:example_create_eni.py
更新弹性网卡
- 更新弹性网卡名称和描述。
- 名称为大小写字母、数字以及-_/.特殊字符,必须以字母开头,长度1-65
- 名称和描述二者不能同时为空
函数声明
def update_eni(self, eni_id, name=None, description=None, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/pkknfara0
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考:example_update_eni.py
删除弹性网卡
- 已挂载、挂载中、卸载中的弹性网卡不能删除。
- 删除之后弹性网卡上所有内网IP都将被退还。
函数声明
def delete_eni(self, eni_id, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/ikknfinx7
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_delete_eni.py
查询弹性网卡列表
函数声明
def list_eni(self, vpc_id, instance_id=None, name=None, private_ip_address_list=None,
marker=None, max_keys=None, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Okknfjt6o
返回值
操作成功:
{
"enis":[
{
"eniId":"eni-tnj00he350fh",
"name":"eni-1",
"zoneName":"cn-bj-d",
"description":"",
"instanceId":"",
"macAddress":"fa:20:20:2f:c6:30",
"vpcId":"vpc-jm7h2j497ut7",
"subnetId":"sbn-d63m7t0bbwt5",
"status":"available",
"privateIpSet":[
{
"publicIpAddress":"",
"primary":true,
"privateIpAddress":"10.0.1.115"
},
{
"publicIpAddress":"",
"primary":false,
"privateIpAddress":"10.0.1.6"
}],
"ipv6PrivateIpSet":[],
"securityGroupIds":null,
"enterpriseSecurityGroupIds":null,
"createdTime":"2023-12-06T06:32:46Z"
},
{
"eniId":"eni-2dn7v328tegp",
"name":"eni-1",
"zoneName":"cn-bj-d",
"description":"",
"instanceId":"",
"macAddress":"fa:20:20:30:08:08",
"vpcId":"vpc-jm7h2j497ut7",
"subnetId":"sbn-d63m7t0bbwt5",
"status":"available",
"privateIpSet":[
{
"publicIpAddress":"",
"primary":true,
"privateIpAddress":"10.0.1.116"
},
{
"publicIpAddress":"",
"primary":false,
"privateIpAddress":"10.0.1.7"
}],
"ipv6PrivateIpSet":[],
"securityGroupIds":null,
"enterpriseSecurityGroupIds":null,
"createdTime":"2023-12-06T07:07:10Z"
}],
"marker":"eni-tnj00he350fh",
"is_truncated":true,
"next_marker":"eni-ziqsx63b3nfq",
"max_keys":2
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_list_eni.py
增加弹性网卡内网IP
- isIpv6为true时,表示新增IPv6内网IP,弹性网卡所在子网需分配IPv6网段。
- 如果privateIpAddress为""表示自动分配。
- 若privateIpAddress不为空,则必须为该子网内的IP地址。
- 新增的内网IP都是辅助IP。
函数声明
def add_private_ip(self, eni_id, private_ip_address, is_ipv6=None, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Hkknfl4q3
返回值
操作成功:
{
"private_ip_address":"10.0.1.108"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_add_private_ip.py
删除弹性网卡内网IP
- 主IP不能删除,仅可删除辅助IP。
- 可指定IPv4或IPv6内网IP删除。
函数声明
def delete_private_ip(self, eni_id, private_ip_address, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/jkknfm534
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_delete_private_ip.py
查询指定的弹性网卡
函数声明
def get_eni_details(self, eni_id, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/6kknfn5m8
返回值
操作成功:
{
"eni-id":"eni-477g9akswgjv",
"name":"PYTHON_SDK_TEST_UPDATE",
"zone_name":"cn-bj-d",
"description":"PYTHON sdk update",
"instance_id":"",
"mac_address":"fa:20:20:2f:b2:ae",
"vpc_id":"vpc-jm7h2j497ut7",
"subnet_id":"sbn-d63m7t0bbwt5",
"status":"available",
"private_ip_set":[
{
"public_ip_address":"",
"primary":true,
"private_ip_address":"10.0.1.100"
}],
"ipv6Private_ip_set":[
{
"public_ip_address":"",
"primary":false,
"private_ip_address":"240c:4081:8005:5e04::2"
}],
"security_group_ids":[],
"enterprise_security_group_ids":["esg-1atxb1iqd1e2"],
"created_time":"2023-11-24T11:39:54Z"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_get_specific_eni.py
弹性网卡挂载云主机
- 一个云主机可以绑定多个弹性网卡,但只能绑定一个主网卡。
- 一个弹性网卡只能同时绑定一个云主机。
- 只有运行中或者已关机状态的云主机才能绑定弹性网卡。
- 弹性网卡和绑定的云主机必须是在同一私有网络内,且两者所在子网的可用区相同。
函数声明
def attach_eni_instance(self, eni_id, instance_id, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/qkknfp44w
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_attach_eni_instance.py
弹性网卡卸载云主机
- 只有已挂载状态的弹性网卡可以解绑云主机。
函数声明
def detach_eni_instance(self, eni_id, instance_id, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/jkknfq87r
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_detach_eni_instance.py
弹性网卡绑定EIP
- 挂载中和卸载中的网卡不能绑定EIP。
- NAT专属子网中的网卡不能绑定EIP。
函数声明
def bind_eni_public_ip(self, eni_id, privat_ip_address, public_ip_address, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/vkknfr857
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_bind_eni_public_ip.py
弹性网卡解绑EIP
- 挂载中和卸载中的网卡不能解绑EIP。
函数声明
def unbind_eni_public_ip(self, eni_id, public_ip_address, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Hkknfs7ee
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_unbind_eni_public_ip.py
弹性网卡更新普通安全组
- 弹性网卡至少要有一个安全组(普通安全组或企业安全组)。
- 该操作是弹性网卡最终加入的普通安全组,并会移出已有的普通安全组或企业安全组。
函数声明
def update_eni_security_group(self, eni_id, security_group_ids, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Nkknft2l0
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_update_eni_sg.py
弹性网卡更新企业安全组
- 弹性网卡至少要有一个安全组(普通安全组或企业安全组)。
- 该操作是弹性网卡最终加入的企业安全组,并会移出已有的普通安全组或企业安全组。
函数声明
def update_eni_enterprise_security_group(self, eni_id, enterprise_security_group_ids,
client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Jl5kp9uyw
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_update_eni_esg.py
批量删除弹性网卡内网IP
- 主IP不能删除,仅可删除辅助IP。
- 可指定IPv4或IPv6内网IP删除。
函数声明
def batch_delete_private_ip(self, eni_id, private_ip_address_list, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Akw4yd4ht
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_batch_delete_private_ip.py
批量增加弹性网卡内网IP
- 新增的内网IP都是辅助IP。
- isIpv6为true时,表示新增IPv6内网IP,弹性网卡所在子网需分配IPv6网段。
函数声明
def batch_add_private_ip(self, eni_id, is_ipv6=None, private_ip_address_list=None,
private_ip_address_count=None, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/9kw4xi713
返回值
操作成功:
{
"private_ip_addresses": ["10.0.1.201","10.0.1.202"]
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_batch_add_private_ip.py
查询弹性网卡状态
函数声明
def get_eni_status(self, eni_id, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/alk0j86xp
返回值
操作成功:
{
"status": "available"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7#弹性网卡业务错误码
代码示例
具体代码示例参考:example_get_eni_status.py