簡體   English   中英

如何在 boto3 中為 AWS EC2 實例設置標簽

[英]How to set tags for AWS EC2 instance in boto3

我是Boto3 ,想創建一個 VPC、子網和一些 ec2 實例。 基本架構是擁有一個 VPC、2 個不同可用區(us-east-1a 和 b)內的 2 個子網,並應用一個允許SSHping的安全組。

我的問題是如何為每個資源指定附加選項 Python SDK(與Javadoc工作方式不同)沒有顯示所需的參數和示例選項,所以我很困惑。

如何為資源指定tags (例如 ec2 實例)。 我需要設置nameowner等。

instances2 = ec2.create_instances(ImageId='ami-095575c1a372d21db', InstanceType='t2.micro', MaxCount=1, MinCount=1, NetworkInterfaces=[{'SubnetId': subnet2.id, 'DeviceIndex': 0, 'AssociatePublicIpAddress': True, 'Groups': [sec_group.group_id]}])
instances2[0].wait_until_running()
print(instances1[0].id)

您需要將'ResourceType'設置為'instance'TagSpecifications參數:

TagSpecifications=[
    {
      'ResourceType': 'instance',
      'Tags': [
        {
          'Key': 'name',
          'Value': 'foobar'
        },
        {
          'Key': 'owner',
          'Value': 'me'
        },
      ]
    },
  ],

它在文檔中,但您確實需要知道您在尋找什么......

以下適用於 python 3.7 和 boto3 1.12.39

參考 - https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html?highlight=create_instances#EC2.ServiceResource.create_instances

    AMI = os.environ['AMI']
    INSTANCE_TYPE = os.environ['INSTANCE_TYPE']
    KEY_NAME = os.environ['KEY_NAME']
    SUBNET_ID = os.environ['SUBNET_ID']    

    TAG_SPEC = [
        {
        "ResourceType":"instance",
        "Tags": [
                {
                    "Key": "Name",
                    "Value": "EC2_INSTANCE_TEST_AUTOGENERATED"
                }
            ]
    }
    ]

    ec2 = boto3.resource('ec2')

    instance = ec2.create_instances(
        ImageId = AMI,
        InstanceType = INSTANCE_TYPE,
        KeyName = KEY_NAME,
        SubnetId = SUBNET_ID,
        TagSpecifications = TAG_SPEC,
        MaxCount = 1,
        MinCount = 1
        )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM