Using Boto3 in lambda
- Lets try to adopt the code to work with lambda
import boto3
ec2_resource = boto3.resource('ec2')
for instance in ec2_resource.instances.all():
for name_pair in instance.tags:
if 'Dev' in name_pair.values():
instance.stop()
- Refer Here for the changeset
- Now create 2 ec2 instances
- For one machine try to give tags as
- env: Dev
- env: QA
- Now create a lambda function

- Now deploy the function

- Create and save test event

- Now test the functionality by executing test, we will see some failures

- Reason for error is aws lambda doesnot have permissions to change ec2 state
- Now lets create a role to have full ec2 access for aws lambda, navigate to IAM

- Now change permissions for lambda function

- Now lets test the lambda function

- Now this lambda function can be triggered from various sources of events
- cloudwatch
- Rest API Call
- Lets make some more changes in the code so that this lambda function can start, stop or terminate instances
- Refer Here for the changeset
- Next steps how to integrate lambda from triggers and how to pass across results to destinations

- AWS has SDK’s for other languages Refer Here
