【问题标题】:With boto, how can I name a newly spawned EC2 instance?使用 boto,我如何命名新生成的 EC2 实例?
【发布时间】:2012-03-23 10:14:23
【问题描述】:

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

ami.run 方法有许多参数,但“名称”没有 - 也许它被称为不同的东西?

【问题讨论】:

    标签: python amazon-ec2 amazon-web-services boto


    【解决方案1】:

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

    ec2 = boto3.resource('ec2')
    ec2.create_tags(Resources=[instance.id], Tags=[
            {
                'Key': 'Name',
                'Value': instance_name,
            },
        ])
    

    【讨论】:

      【解决方案2】:
      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})
      

      【讨论】:

      • 注意你也可以做 instance.add_tag('Name', instance_name)
      【解决方案3】:

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

      1. 您可以在用户数据中传递所需的计算机名称,并在服务器启动时运行将更改计算机名称的脚本。
      2. 您可以使用 EC2 标签将服务器命名为 ec2-create-tags <instance-id> --tag:Name=<computer name>。此解决方案的缺点是服务器实际上不会更新为此名称。此标签仅适用于您或您在 aws 中查询服务器列表时使用。

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

      【讨论】:

      • ec2-create-tags 'i-0d44bd39' --tag Name=moo 必需选项 '-K, --private-key KEY' 缺失(使用 -h) 类似:ec2addtag --tag Name=moo 说我缺少私钥? --tag:Name=moo 语法不起作用。
      • 该命令用于命令行工具。对于博托使用create_tags('i-0d44bd39', dict(Name=moo))
      猜你喜欢
      • 1970-01-01
      • 2016-04-17
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 2013-03-08
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多