簡體   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