首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用EC2 CDK从AWS自动扩缩容组获取EC2 ID和内网IP

如何使用EC2 CDK从AWS自动扩缩容组获取EC2 ID和内网IP
EN

Stack Overflow用户
提问于 2020-10-11 09:00:49
回答 1查看 391关注 0票数 1

如何获取使用AutoscalingGroup (AWS CDK Python)部署的EC2实例的实例ID和内网IP?

AutoscalingGroup结构如下所示:

代码语言:javascript
复制
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'
        )

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 00:05:10

您可以使用boto3检索它们。

下面是一个仅为正在运行的实例获取它们的示例:

代码语言:javascript
复制
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中查看可用参数,并查看boto3调用的here

如果您想要根据特定名称进行过滤,则必须签入实例的标签:

代码语言:javascript
复制
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.instance_type, instance.private_ip_address)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64299718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档