欢迎访问宙启技术站
智能推送

使用boto3在Python中终止AmazonEC2实例

发布时间:2023-12-28 06:53:59

要使用boto3在Python中终止Amazon EC2实例,需要安装boto3库并配置AWS凭证。下面是一个带有详细例子的Python代码,可以用来终止Amazon EC2实例。

import boto3

# 配置AWS凭证
session = boto3.Session(
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_ACCESS_KEY',
    region_name='us-west-2'  # 修改为您要操作的区域
)

# 创建EC2客户端
ec2_client = session.client('ec2')

# 终止实例函数
def terminate_instance(instance_id):
    response = ec2_client.terminate_instances(
        InstanceIds=[instance_id]
    )
    return response

# 查询正在运行的实例函数
def list_running_instances():
    response = ec2_client.describe_instances(
        Filters=[
            {'Name': 'instance-state-name', 'Values': ['running']}
        ]
    )
    instances = response['Reservations'][0]['Instances']
    return instances

# 获取所有正在运行的实例
running_instances = list_running_instances()

if len(running_instances) > 0:
    print("正在运行的实例:")
    for instance in running_instances:
        print(f"实例ID:{instance['InstanceId']}  类型:{instance['InstanceType']}")

    # 选择要终止的实例
    instance_id = input("输入要终止的实例ID:")

    # 终止实例
    terminate_response = terminate_instance(instance_id)
    print(f"终止实例状态: {terminate_response['TerminatingInstances'][0]['CurrentState']['Name']}")
else:
    print("没有正在运行的实例")

在这个例子中,首先需要替换YOUR_ACCESS_KEYYOUR_SECRET_ACCESS_KEY为您自己的AWS访问密钥。然后,您可以修改region_name为您要操作的区域。

此代码中包含两个函数:terminate_instancelist_running_instancesterminate_instance函数用于终止指定实例,它接受要终止的实例ID作为参数,并返回API的响应。list_running_instances函数用于列出所有正在运行的实例,并返回一个实例列表。

在主代码中,我们首先调用list_running_instances函数来获取所有正在运行的实例,并打印出实例ID和实例类型。然后,我们要求用户输入要终止的实例ID。最后,我们调用terminate_instance函数来终止指定的实例,并打印出终止实例的状态。

请注意,此代码只终止一个实例。如果您想终止多个实例,可以修改代码以接受多个实例ID并在terminate_instances请求中使用InstanceIds参数。