如何使用 boto3 在特定 VPC 下查找 ec2 实例 运行
How to find ec2 instances running under particular VPC using boto3
我正在尝试创建一个脚本,该脚本确实会在特定 VPC ID 下 运行ning 我的许多实例之一卷曲。
比方说,我有 VPC ID。那么我如何才能获得此 VPC 下所有 ec2 实例 运行ning 的列表,并最终如何找到名为“test-ec2”的特定 ec2 实例。然后 运行 一个命令,例如。 “卷曲 ip_address_of_test-ec2”
我没用过boto3,所以不太了解
有什么建议可以解决这个问题。
您可以使用 describe-instances 及其 vpc-id
和 tag:key
的 --filters
作为名称。
例如,要获取给定 vpc 中的所有实例 ID:
aws ec2 describe-instances \
--filters Name=vpc-id,Values=<your-vpc-id> \
--query 'Reservations[].Instances[].InstanceId' \
--output text
也可以按名称过滤:
aws ec2 describe-instances \
--filters Name=vpc-id,Values=<your-vpc-id> \
Name=tag:Name,Values=<instance-name> \
--query 'Reservations[].Instances[].InstanceId' \
--output text
在boto3中,等价函数为describe_instances:
ec2 = boto3.client('ec2')
r = ec2.describe_instances(Filters=[
{
'Name': 'vpc-id',
'Values': ['<your-vpc-id>']
},
{
'Name': 'tag:Name',
'Values': ['<instance-name>']
}
])
for reservation in r['Reservations']:
for instance in reservation['Instances']:
private_ip_addr = instance['PrivateIpAddress']
print(private_ip_addr)
我正在尝试创建一个脚本,该脚本确实会在特定 VPC ID 下 运行ning 我的许多实例之一卷曲。
比方说,我有 VPC ID。那么我如何才能获得此 VPC 下所有 ec2 实例 运行ning 的列表,并最终如何找到名为“test-ec2”的特定 ec2 实例。然后 运行 一个命令,例如。 “卷曲 ip_address_of_test-ec2”
我没用过boto3,所以不太了解
有什么建议可以解决这个问题。
您可以使用 describe-instances 及其 vpc-id
和 tag:key
的 --filters
作为名称。
例如,要获取给定 vpc 中的所有实例 ID:
aws ec2 describe-instances \
--filters Name=vpc-id,Values=<your-vpc-id> \
--query 'Reservations[].Instances[].InstanceId' \
--output text
也可以按名称过滤:
aws ec2 describe-instances \
--filters Name=vpc-id,Values=<your-vpc-id> \
Name=tag:Name,Values=<instance-name> \
--query 'Reservations[].Instances[].InstanceId' \
--output text
在boto3中,等价函数为describe_instances:
ec2 = boto3.client('ec2')
r = ec2.describe_instances(Filters=[
{
'Name': 'vpc-id',
'Values': ['<your-vpc-id>']
},
{
'Name': 'tag:Name',
'Values': ['<instance-name>']
}
])
for reservation in r['Reservations']:
for instance in reservation['Instances']:
private_ip_addr = instance['PrivateIpAddress']
print(private_ip_addr)