【发布时间】:2020-03-27 08:38:59
【问题描述】:
尝试使用 Python 3.6 在 AWS 中创建一个 Lambda 函数,该函数会创建一个在特定时间段后终止的 EC2 实例。由于我对此仍然很陌生,因此我选择在终止实例时使用“标签”作为过滤器。
但是,我无法找到一种在生成实例时将标签添加到实例的方法。
我创建EC2的代码如下
import os
import boto3
AMI = os.environ['AMI']
INSTANCE_TYPE = os.environ['INSTANCE_TYPE']
KEY_NAME = os.environ['KEY_NAME']
SUBNET_ID = os.environ['SUBNET_ID']
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
instance = ec2.create_instances(
ImageId=AMI,
InstanceType=INSTANCE_TYPE,
KeyName=KEY_NAME,
SubnetId=SUBNET_ID,
MaxCount=1,
MinCount=1
)
print("New instance created...")
环境变量手动填写
我还有一个终止函数,它应该用标签过滤掉上面python脚本创建的EC2并终止它们
import os
import boto3
def lambda_handler(event, context):
ec2 = boto3.resource('ec2')
instances = ec2.instance.filter(Filters=[{"Name" :"tag:webserver", "Values":[delete] }])
deleteInstances = [instance.id for instance in instances]
for i in deleteInstances:
terminateInstances = ec2.instances.terminate(i)
print(terminateInstances)
print("Terminating instances...")
没有运气找到简单的方法。
【问题讨论】:
-
您在创建新实例时没有标记它
-
之前我说过我不确定如何在创建时标记它们。
标签: python-3.x amazon-ec2 aws-lambda boto3