有可能的。但是,当您解除弹性 IP 地址的关联时,您可能会失去互联网连接,具体取决于您的子网设置。如果您的子网配置为自动分配公共 IP,您将在解除关联和关联之间获得一个公共 IP(非弹性 IP)。但是,如果您的公有子网未配置为自动获取公有 IP,您的实例将失去 Internet 连接(除非有到达 Internet 的路由)并且您的脚本的其余部分将不会执行。以下是一个 Boto3 脚本,可以为您提供一个想法但未经测试。调整它以满足您的需求。
import boto3
import requests
client = boto3.client('ec2')
inst_id = requests.get('http://169.254.169.254/latest/meta-data/instance-id').text
print inst_id
public_ip = requests.get('http://169.254.169.254/latest/meta-data/public-ipv4').text
print 'Current IP:', public_ip
print 'Disassociating:', public_ip
client.disassociate_address(PublicIp=public_ip)
public_ip = client.allocate_address( Domain='vpc')['PublicIp']
print 'New IP:', public_ip
print 'Associating:', public_ip
client.associate_address(InstanceId=inst_id, PublicIp=public_ip)