1

Pythonbotoを使用してAmazonEc2インスタンスを作成できると思われるサンプルコードをいくつか見つけました。しかし、私の人生では、インスタンスを削除する関数を作成する方法を理解することはできません。

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
4

2 に答える 2

6

EC2のbotoドキュメントは、このニーズをカバーしています。作成したインスタンスIDがあり、次のコマンドで終了します。

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

ここconnで、はインスタンスの作成に使用したものと同じグローバル接続変数です。boto呼び出しはインスタンスIDの配列を受け取ることに注意してください。terminate_instances呼び出しは、終了したインスタンスIDのリストを返します。

インスタンスをAPIの終了から保護した場合は、最初にその保護を削除する必要があることに注意してください。サンプルコードはそれを行わないので、問題なく削除できます。

于 2013-02-19T14:07:53.837 に答える
0

また、星団を見たいと思うかもしれません。

生のbotoよりも目的に役立つ場合がありますが、いずれの場合でも、コードはbotoを使用し、EC2インスタンスとクラスターの管理に関しておそらく実行したいほとんどのことの例を提供します。

于 2013-02-20T15:56:27.843 に答える