【问题标题】:Boto3 - tag instance during creatingBoto3 - 创建期间的标记实例
【发布时间】:2016-10-10 05:37:51
【问题描述】:

我目前正在使用 AWS EC2 实例。我想启动几个实例,它们负责不同的任务。要创建和启动实例,我使用以下函数:

def ec2start(num):
    ec2.create_instances( 
        ImageId='image_id', 
        InstanceType='instance_type',
        SecurityGroupIds= [ 'security_group_id' ],
        MinCount=int(num), 
        MaxCount=int(num)
        )

但是,由于我有几个正在运行的实例,但其中一些执行类似的操作,我使用@roles 在多个实例上调用一个函数并加速一切。为了能够在选定实例上使用特定功能,我为每个实例添加了一个标签。到目前为止,为了标记一个实例,我正在使用以下函数:

def ec2tagInstance(ids, tagname):
    ec2.create_tags(Resources=[ids], Tags=mytags)
    instances = ec2.instances.filter(InstanceIds=[ids])
    for instance in instances:
        for tag in instance.tags:
            if tag["Key"] == "Type":
                tag["Value"] = tagname

但是,现在我必须首先创建(启动)一个实例,然后,我必须调用具有特定 ID 的函数 ec2tagInstance 才能对其进行标记。是否可以在创建(启动)新实例的同时向实例添加标签?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 boto3


    【解决方案1】:

    确实没有办法在创建实例时为其分配标签。 EC2 RunInstances API 请求不接受 Tags 参数。

    您可以编写自己的函数来创建实例并在之后立即标记它们,但没有办法通过单个 API 调用来完成。

    【讨论】:

    • 我该怎么做呢?有什么方法可以获取刚刚创建的实例的 id?
    • create_instances 的调用应返回代表已创建实例的Instance 对象列表。每个 Instance 对象都有一个名为 instance_id 的属性,它是分配给新实例的标识符。这有帮助吗?
    • @帮助很大!谢谢!
    猜你喜欢
    • 2017-05-17
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2019-11-21
    • 1970-01-01
    • 2023-02-23
    相关资源
    最近更新 更多