阿里云自动创建ECS并分配公网IP

阿里云可以通过API自动化管理ECS实例,包括创建、启动、停止、释放、分配IP等操作,对于自动化的运维来说非常方便。

官方文档中给出了通过Python SDK创建和批量创建ECS的示例代码,虽有点小问题,但基本上可以用。

首先是硬盘类型的选择,cloud_ssd基本不可用了,会报错,改为企业级固态,即cloud_essd,代码如下

request.set_SystemDiskCategory('cloud_essd')

虚拟交换机也可不指定,随机分配即可,即注释掉这一行

request.set_VSwitchId(vsw_vswitch_id)

好了问题来了,创建好的ECS只有内网IP,没有公网的,所以还要给它分配公网IP。

首先在创建ECS时加一行代码,设置最大带宽,这里设置为5M:

request.set_InternetMaxBandwidthOut(5)

ECS创建好检查状态为可用后,再通过AllocatePublicIpAddressinstance_id来分配公网IP,代码如下

from aliyunsdkecs.request.v20140526.AllocatePublicIpAddressRequest import AllocatePublicIpAddressRequest

# 分配公网IP
def allocate_public_ip(instance_id):
    request = AllocatePublicIpAddressRequest()
    request.set_InstanceId(instance_id)
    response = _send_request(request)
    ip_address = response.get('IpAddress')
    logging.info("instance %s ip address allocated successfully ", ip_address)
    return ip_address

# 调用
ip = allocate_public_ip(instance_id)
print(ip)

只有分配好了公网IP,ECS才算真的可用了。

Leave a Comment

豫ICP备19001387号-1