Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用boto,如何命名新生成的EC2实例?_Python_Amazon Ec2_Amazon Web Services_Boto - Fatal编程技术网

Python 使用boto,如何命名新生成的EC2实例?

Python 使用boto,如何命名新生成的EC2实例?,python,amazon-ec2,amazon-web-services,boto,Python,Amazon Ec2,Amazon Web Services,Boto,我正在使用boto基于AMI生成一个新的EC2实例 ami.run方法有许多参数,但没有一个参数用于“name”-可能它的调用有所不同?在EC2中,没有api来更改机器的实际名称。你基本上有两个选择 您可以在用户数据中传递所需的计算机名称,并在服务器启动时运行将更改计算机名称的脚本 您可以使用EC2标记为服务器命名EC2创建标记--tag:name=。此解决方案的缺点是服务器实际上不会更新到此名称。此标记严格适用于您或在aws中查询服务器列表时 一般来说,如果您希望服务器在启动时自行配置,我发现

我正在使用boto基于AMI生成一个新的EC2实例


ami.run方法有许多参数,但没有一个参数用于“name”-可能它的调用有所不同?

在EC2中,没有api来更改机器的实际名称。你基本上有两个选择

  • 您可以在用户数据中传递所需的计算机名称,并在服务器启动时运行将更改计算机名称的脚本
  • 您可以使用EC2标记为服务器命名
    EC2创建标记--tag:name=
    。此解决方案的缺点是服务器实际上不会更新到此名称。此标记严格适用于您或在aws中查询服务器列表时

  • 一般来说,如果您希望服务器在启动时自行配置,我发现在EC2中重命名计算机只会带来更多的麻烦。如果不需要的话,我建议你不要使用它们。使用标签或elb实例是更好的方法。

    对于那些正在寻找@Roberto答案的
    bot3
    版本的人:

    import boto
    c = boto.connect_ec2(ec2_key, ec2_secret)
    image = c.get_image(ec2_ami)
    
    reservation = image.run(key_name=ec2_keypair,
                            security_groups=ec2_secgroups,
                            instance_type=ec2_instancetype)
    
    instance = reservation.instances[0]
    c.create_tags([instance.id], {"Name": instance_name})
    
    ec2 = boto3.resource('ec2')
    ec2.create_tags(Resources=[instance.id], Tags=[
            {
                'Key': 'Name',
                'Value': instance_name,
            },
        ])
    

    ec2创建标记“i-0d44bd39”-tag Name=moo必需选项“-K,--private key”丢失(-h用于用法)类似地:ec2addtag--tag Name=moo说我丢失了私钥?--tag:Name=moo语法不起作用。该命令用于命令行工具。对于两者,请使用
    创建标签('i-0d44bd39',dict(Name=moo))
    注意,您也可以使用实例。添加标签('Name',实例名称)