Link to home
Start Free TrialLog in
Avatar of legolasthehansy
legolasthehansy

asked on

Python Script to return all instances in all regions

I'm trying to get all running instances in all regions to shut them down off hours and this is the script I use. However, I get a Syntax error: return outside function. It maybe a indentation problem which I'm not able find out. Can you help?

import boto3
import logging

client = boto3.client('ec2')

instances = []
for region in client.describe_regions()['Regions']:
    ec2 = boto3.resource('ec2', region_name=region['RegionName'])
    result = ec2.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])
for instance in result:
    instances.append(instance.id)
return instances

print instances

Open in new window

Avatar of ZhaawZ
ZhaawZ
Flag of Latvia image

Remove line 12 ("return instances")
Avatar of legolasthehansy
legolasthehansy

ASKER

Thanks for your response. But how do I see the output or see the results of running instances?
ASKER CERTIFIED SOLUTION
Avatar of ZhaawZ
ZhaawZ
Flag of Latvia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
That was it. The second for loop did not have a indentation as expected and didn't give me an output I was expecting. Cheers!