繁体   English   中英

使用python boto删除Amazon EC2实例

[英]Removing Amazon EC2 instance using python boto

我找到了一些示例代码,这些示例代码显然能够使用python boto创建Amazon Ec2实例。 但是,对于我一生来说,我无法弄清楚如何创建一个删除实例的函数。

谁能对python和boto有更多的了解,可以告诉我删除该实例应该怎么做。

# Delete EC2 instance
def delete_server():
    print(_yellow("Deleting EC2 instance"))

# Create EC2 instance
def create_server():
    print(_yellow("Creating EC2 instance"))

    image = conn.get_all_images(ec2_amis)

    reservation = image[0].run(1, 1, key_name=ec2_key_pair, security_groups=ec2_security,
        instance_type=ec2_instancetype)

    instance = reservation.instances[0]
    conn.create_tags([instance.id], {"Name":config['INSTANCE_NAME_TAG']})
    while instance.state == u'pending':
        print(_yellow("Instance state: %s" % instance.state))
        time.sleep(10)
        instance.update()

    print(_green("Instance state: %s" % instance.state))
    print(_green("Public dns: %s" % instance.public_dns_name))

    return instance.public_dns_name

EC2boto文档满足了这一需求。 您拥有创建的实例ID,只需使用以下命令终止它:

def delete_server(instanceId):
    conn.terminate_instances(instance_ids=[instanceId])

其中conn是您用于创建实例的相同全局连接变量。 请注意, boto调用采用实例ID的数组。 terminate_instances调用将返回已终止的实例ID的列表。

请注意,如果您保护实例不受API终止的影响,则必须先删除该保护。 您的示例代码不会执行此操作,因此删除它应该没有问题。

您可能还想看看starcluster

它可能比原始boto更好地满足您的目的,但是在任何情况下,代码都使用boto,并提供了在管理EC2实例和群集方面可能要执行的大多数操作的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM