如何解决如何使用AWS CDK从EC2自动扩展组获取EC2 ID和私有IP
如何获取通过AutoscalingGroup(AWS CDK Python)部署的EC2实例的实例ID和私有IP?
AutoscalingGroup构造如下:
from aws_cdk import (
core,aws_ec2,aws_autoscaling
)
autoscaling_group = aws_autoscaling.AutoScalingGroup(
self,id="AutoscalingGroup",instance_type=aws_ec2.InstanceType('m5.xlarge'),machine_image=aws_ec2.MachineImage.latest_amazon_linux(),vpc=Myvpc,vpc_subnets=aws_ec2.SubnetSelection(subnet_type=aws_ec2.SubnetType.PUBLIC),associate_public_ip_address=True,desired_capacity=1,key_name='MySSHKey'
)
非常感谢您。
解决方法
您可以使用 boto3
检索它们。
这是一个仅针对正在运行的实例获取它们的示例:
ec2_res = boto3.resource('ec2')
instances = ec2_res.instances.filter(
Filters=[
{'Name': 'instance-state-name','Values': ['running']}
]
)
for instance in instances:
print(instance.id,instance.instance_type,instance.private_ip_address)
您可以查看文档 here 中的可用参数和 here 中的 boto3 调用。
如果要过滤特定名称,则必须检查实例的标签:
for instance in instances:
for tag in instance.tags:
if (tag.get('Key') == 'Name') and (tag.get('Value') == '<The name of your instance>'):
print(instance.id,instance.private_ip_address)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。