我需要编写一个可以通过公共域名启动aws实例的脚本,我可以通过使用带有我的实例名称的筛选器来启动该实例,但如果我尝试使用{tag:'Public DNS':my_publicdns}进行筛选,则会收到错误。是否可以通过公共dns进行过滤?
my_publicdns = 'ec2-1-2-3-4.eu-west-1.compute.amazonaws.com'
myinstance = 'GA_brian_burroughs'
def start_instance():
try:
inst = conn.get_all_instances(filters={'tag:Name': myinstance})[0].instances[0]
except Exception:
print('Error:', myinstance, 'not found!')
if not inst.state == 'running':
print('Starting', myinstance)
inst.start()
else:
print(myinstance, 'already running or starting up!')发布于 2015-10-12 03:31:14
你不能这样做。
EC2实例在启动后才会分配公共DNS地址。IPv4地址是一种稀缺商品,因此亚马逊网络服务不会永久分配它们。如果您停止并启动一个实例,您很可能会得到一个不同的IPv4地址。由于AWS public DNS名称基于IPv4地址,因此实例在停止和启动时不一定保留相同的public DNS名称。
我建议改为为您的实例分配一个有意义的标记,使您能够通过使用公共DNS名称在功能上完成您正在尝试完成的任务。
https://stackoverflow.com/questions/33069200
复制相似问题