如何在 boto3 中为 AWS EC2 实例设置标签
How to set tags for AWS EC2 instance in boto3
我是 Boto3
的新手,想创建一个 VPC、子网和一些 ec2 实例。基本架构有一个 VPC,2 个不同可用性区域(us-east-1a 和 b)内的 2 个子网,并应用允许 SSH
和 ping
的安全组。
我的问题是如何为每个资源指定附加选项。 Python SDK(与 Javadoc
的工作方式不同)没有显示所需的参数和示例选项,所以我很困惑。
如何为资源指定 tags
? (例如 ec2 实例)。我需要设置name
、owner
等
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)
您需要 TagSpecifications
参数并将 'ResourceType'
设置为 'instance'
:
TagSpecifications=[
{
'ResourceType': 'instance',
'Tags': [
{
'Key': 'name',
'Value': 'foobar'
},
{
'Key': 'owner',
'Value': 'me'
},
]
},
],
它在文档中,但您确实需要知道您在寻找什么...
以下适用于 python 3.7 和 boto3 1.12.39
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
)
我是 Boto3
的新手,想创建一个 VPC、子网和一些 ec2 实例。基本架构有一个 VPC,2 个不同可用性区域(us-east-1a 和 b)内的 2 个子网,并应用允许 SSH
和 ping
的安全组。
我的问题是如何为每个资源指定附加选项。 Python SDK(与 Javadoc
的工作方式不同)没有显示所需的参数和示例选项,所以我很困惑。
如何为资源指定 tags
? (例如 ec2 实例)。我需要设置name
、owner
等
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)
您需要 TagSpecifications
参数并将 'ResourceType'
设置为 'instance'
:
TagSpecifications=[
{
'ResourceType': 'instance',
'Tags': [
{
'Key': 'name',
'Value': 'foobar'
},
{
'Key': 'owner',
'Value': 'me'
},
]
},
],
它在文档中,但您确实需要知道您在寻找什么...
以下适用于 python 3.7 和 boto3 1.12.39
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
)