使用 lambda boto3 检查 ec2 是否存在
Check ec2 exist with lambda boto3
我有 1 个来自 s3 的列表实例 ID,我想检查来自 s3 的每个实例 ID 和来自 EC2 服务的实例 ID,以检查 ec2 是否存在。你能帮我建议一些解决方案吗?谢谢
def lambda_handler(event, context):
#Get all ec2 information - The current list in AWS
ins_inf = ec2_client.describe_instances()
for reservation in ins_inf['Reservations']:
for ins_cur in reservation['Instances']:
#Get all instance ID from ec2
ins_cur_id = ins_cur["InstanceId"]
#Get instance ID list from s3
for ins_f_s3 in line_stream(s3_objload.get()['Body']):
#Remove /n
ins_f_s3_re=ins_f_s3.strip()
#Compare instance ID from s3 with current instance ID in aws
if ins_cur_id == ins_f_s3_re:
print (ins_f_s3_re + ' found')
else:
print(ins_f_s3_re + ' not found in aws ')
这是结果
i-0a959c122fd51581e not found in aws
i-0a959c122fd51581f not found in aws
i-0a959c122fd51581e found
i-0a959c122fd51581f not found in aws
也许您可以在比较时看到“i-0a959c122fd51581e”显示 2 条消息。这是不正确的。有人可以帮我这个案子吗?非常感谢
从 S3 中预读您感兴趣的 EC2 实例列表并将它们存储在列表中。然后简单地测试从 DescribeInstances 调用返回的每个实例 ID,看看它是否在 S3 列表中(就像@jordanm 在上面的评论中建议的那样)。
s3_list = [x.strip() for x in line_stream(s3_objload.get()['Body'])]
ins_inf = ec2_client.describe_instances()
for reservation in ins_inf['Reservations']:
for ins_cur in reservation['Instances']:
# Get instance ID from ec2
ins_cur_id = ins_cur["InstanceId"]
if ins_cur_id in s3_list:
print(ins_cur_id + ' found')
else:
print(ins_cur_id + ' not found')
我有 1 个来自 s3 的列表实例 ID,我想检查来自 s3 的每个实例 ID 和来自 EC2 服务的实例 ID,以检查 ec2 是否存在。你能帮我建议一些解决方案吗?谢谢
def lambda_handler(event, context):
#Get all ec2 information - The current list in AWS
ins_inf = ec2_client.describe_instances()
for reservation in ins_inf['Reservations']:
for ins_cur in reservation['Instances']:
#Get all instance ID from ec2
ins_cur_id = ins_cur["InstanceId"]
#Get instance ID list from s3
for ins_f_s3 in line_stream(s3_objload.get()['Body']):
#Remove /n
ins_f_s3_re=ins_f_s3.strip()
#Compare instance ID from s3 with current instance ID in aws
if ins_cur_id == ins_f_s3_re:
print (ins_f_s3_re + ' found')
else:
print(ins_f_s3_re + ' not found in aws ')
这是结果
i-0a959c122fd51581e not found in aws
i-0a959c122fd51581f not found in aws
i-0a959c122fd51581e found
i-0a959c122fd51581f not found in aws
也许您可以在比较时看到“i-0a959c122fd51581e”显示 2 条消息。这是不正确的。有人可以帮我这个案子吗?非常感谢
从 S3 中预读您感兴趣的 EC2 实例列表并将它们存储在列表中。然后简单地测试从 DescribeInstances 调用返回的每个实例 ID,看看它是否在 S3 列表中(就像@jordanm 在上面的评论中建议的那样)。
s3_list = [x.strip() for x in line_stream(s3_objload.get()['Body'])]
ins_inf = ec2_client.describe_instances()
for reservation in ins_inf['Reservations']:
for ins_cur in reservation['Instances']:
# Get instance ID from ec2
ins_cur_id = ins_cur["InstanceId"]
if ins_cur_id in s3_list:
print(ins_cur_id + ' found')
else:
print(ins_cur_id + ' not found')