boto3 ec2创建具有名称的实例

时间:2019-08-21 05:32:51

标签: amazon-ec2 boto3

我是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。如何做到这一点?

1 个答案:

答案 0 :(得分:2)

使用实例名称作为值,使用键Name放置标签。

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