【问题标题】:boto3 ec2 create instance with a nameboto3 ec2 创建具有名称的实例
【发布时间】:2019-08-21 13:39:25
【问题描述】:

我是 AWS 新手,使用 boto3 启动实例。但是,我注意到当我创建实例时,“名称”字段为空。所以,我创建它的方式如下:

def create_instance(ami, instance_type, device_name, iam_role, volume_type,
                    volume_size,
                    security_groups, key_name, user_data):
    s = boto3.Session(region_name="eu-central-1")
    ec2 = s.resource('ec2')

    res = ec2.create_instances(
            IamInstanceProfile={'Name': iam_role},
            ImageId=ami,
            InstanceType=instance_type,
            SecurityGroupIds=security_groups,
            KeyName=key_name,
            UserData=user_data,
            MaxCount=1,
            MinCount=1,
            InstanceInitiatedShutdownBehavior='terminate',
            BlockDeviceMappings=[{
                'DeviceName': device_name,
                'Ebs': {
                    'DeleteOnTermination': True,
                    'VolumeSize': volume_size,
                    'VolumeType': volume_type
                }
            }]
        )
    instance = res[0]
    while instance.state['Name'] == 'pending':
        time.sleep(5)
        instance.load()

    return instance.public_ip_address, instance.public_dns_name

似乎没有一种简单的方法来指定启动实例的name。怎么可能做到这一点?

【问题讨论】:

    标签: amazon-ec2 boto3


    【解决方案1】:

    使用您的实例名称作为值放置一个带有键 Name 的标签。

    TagSpecifications=[
            {
                'ResourceType': 'instance',
                'Tags': [
                    {
                        'Key': 'Name',
                        'Value': '<What you want>'
                    },
                ]
            },
        ],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-28
      • 2019-11-21
      • 2023-03-21
      • 2019-07-04
      • 2016-06-13
      • 2018-07-31
      • 2019-02-23
      • 1970-01-01
      相关资源
      最近更新 更多