Python 使用boto,如何命名新生成的EC2实例?
我正在使用boto基于AMI生成一个新的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中查询服务器列表时 一般来说,如果您希望服务器在启动时自行配置,我发现
ami.run方法有许多参数,但没有一个参数用于“name”-可能它的调用有所不同?在EC2中,没有api来更改机器的实际名称。你基本上有两个选择
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',实例名称)