Bird
Raised Fist0
AWScloud~20 mins

Lambda handler function structure in AWS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Lambda Handler Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Identify the correct AWS Lambda handler signature

Which of the following AWS Lambda handler function signatures is correct for Node.js?

Afunction handler(event) { return 'done'; }
Bexports.handler = (context, event) => { return 'done'; }
Cexports.handler = async (event, context) => { return 'done'; }
Dhandler = (event, context, callback) => { return 'done'; }
Attempts:
2 left
💡 Hint

Remember the order of parameters: event first, then context.

❓ Configuration
intermediate
2:00remaining
Determine the output of a Python Lambda handler

What is the output when this AWS Lambda Python handler is invoked with {"key": "value"} as event?

AWS
def lambda_handler(event, context):
    return event.get('key', 'default')
A"value"
B"default"
CNone
DKeyError
Attempts:
2 left
💡 Hint

Check how dict.get() works in Python.

❓ Architecture
advanced
2:30remaining
Choose the best event source for a Lambda function triggered by file uploads

You want to run a Lambda function automatically whenever a new file is uploaded to an S3 bucket. Which event source configuration is correct?

ASet up CloudWatch Events to poll the S3 bucket every minute
BConfigure S3 bucket event notifications to trigger Lambda on 's3:ObjectCreated:*' events
CUse API Gateway to invoke Lambda when files are uploaded
DManually invoke Lambda from an EC2 instance after upload
Attempts:
2 left
💡 Hint

Think about native S3 event triggers for Lambda.

❓ security
advanced
2:30remaining
Identify the least privilege IAM policy for Lambda execution

Which IAM policy grants the least privilege necessary for a Lambda function to write logs to CloudWatch?

A{ "Effect": "Allow", "Action": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"], "Resource": "arn:aws:logs:*:*:*" }
B{ "Effect": "Allow", "Action": "*", "Resource": "*" }
C{ "Effect": "Allow", "Action": ["logs:PutLogEvents"], "Resource": "*" }
D{ "Effect": "Allow", "Action": ["logs:CreateLogGroup", "logs:CreateLogStream"], "Resource": "arn:aws:logs:*:*:*" }
Attempts:
2 left
💡 Hint

Consider all actions needed to create and write logs.

❓ service_behavior
expert
3:00remaining
Predict Lambda function behavior with asynchronous invocation and error handling

A Lambda function is invoked asynchronously. It throws an exception during execution. What happens to the event and error?

AThe event is lost immediately with no retries or notifications
BThe error is returned immediately to the caller
CThe function retries indefinitely until it succeeds
DThe event is retried twice by default, then sent to a dead-letter queue if configured
Attempts:
2 left
💡 Hint

Think about Lambda's default retry behavior for asynchronous calls.

Practice

(1/5)
1. What are the two main parameters that every AWS Lambda handler function must accept?
easy
A. event and context
B. request and response
C. input and output
D. data and callback

Solution

  1. Step 1: Understand Lambda handler inputs

    The AWS Lambda handler function always receives two parameters: event which contains the input data, and context which provides runtime information.
  2. Step 2: Match parameters to options

    Only event and context correctly lists these two parameters as event and context.
  3. Final Answer:

    event and context -> Option A
  4. Quick Check:

    Lambda handler parameters = event and context [OK]
Hint: Remember: Lambda handler always gets event and context [OK]
Common Mistakes:
  • Confusing event with request or input
  • Using callback instead of context
  • Swapping parameter names
2. Which of the following is the correct syntax for a Python AWS Lambda handler function?
easy
A. function handler(event, context) { return 'Hello World'; }
B. def handler(event, context): return 'Hello World'
C. lambda handler(event, context): print('Hello World')
D. def handler(): return 'Hello World'

Solution

  1. Step 1: Identify Python function syntax

    In Python, functions are defined with def and must include parameters if expected. The handler must accept event and context.
  2. Step 2: Check each option

    def handler(event, context): return 'Hello World' correctly defines a Python function with two parameters and returns a string. function handler(event, context) { return 'Hello World'; } is JavaScript syntax. lambda handler(event, context): print('Hello World') misuses lambda keyword. def handler(): return 'Hello World' lacks parameters.
  3. Final Answer:

    def handler(event, context): return 'Hello World' -> Option B
  4. Quick Check:

    Python Lambda handler syntax = def with event, context [OK]
Hint: Python Lambda handler uses def with event and context [OK]
Common Mistakes:
  • Omitting event or context parameters
  • Using JavaScript syntax in Python
  • Misusing lambda keyword for handler
3. Given this Python Lambda handler code:
def handler(event, context):
    return {'statusCode': 200, 'body': event['message']}

What will be the output if the event is {'message': 'Hi'}?
medium
A. {'statusCode': 404, 'body': 'Hi'}
B. Error: KeyError 'message'
C. {'statusCode': 200, 'body': 'Hi'}
D. None

Solution

  1. Step 1: Analyze the return statement

    The function returns a dictionary with statusCode set to 200 and body set to the value of event['message'].
  2. Step 2: Substitute event value

    Given event = {'message': 'Hi'}, event['message'] is 'Hi'. So the return is {'statusCode': 200, 'body': 'Hi'}.
  3. Final Answer:

    {'statusCode': 200, 'body': 'Hi'} -> Option C
  4. Quick Check:

    Return body matches event message [OK]
Hint: Return uses event['message'] directly for body [OK]
Common Mistakes:
  • Assuming wrong statusCode
  • Expecting error when key exists
  • Returning None by mistake
4. What is wrong with this AWS Lambda handler function in Python?
def handler(event):
    return 'Done'
medium
A. Missing the required context parameter
B. Return value must be a dictionary
C. Function name must be lambda_handler
D. No error, this is valid

Solution

  1. Step 1: Check function parameters

    AWS Lambda handler functions must accept two parameters: event and context. This function only has event.
  2. Step 2: Validate other options

    Return type can vary by trigger, so returning a string is allowed. Function name can be configured, so handler is acceptable. Hence, only missing context is an error.
  3. Final Answer:

    Missing the required context parameter -> Option A
  4. Quick Check:

    Lambda handler needs event and context parameters [OK]
Hint: Always include event and context parameters [OK]
Common Mistakes:
  • Omitting context parameter
  • Thinking return must be dict always
  • Assuming fixed function name
5. You want your AWS Lambda handler to process an event with optional user key. If user is missing, return status 400 with message 'User missing'. Otherwise, return status 200 with 'Hello, <user>'. Which handler code correctly implements this?
hard
A. def handler(event): if 'user' in event: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': f"Hello, {event['user']}"}
B. def handler(event, context): return {'statusCode': 200, 'body': f"Hello, {event['user']}"}
C. def handler(event, context): if event['user'] == None: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': 'Hello, user'}
D. def handler(event, context): if 'user' not in event: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': f"Hello, {event['user']}"}

Solution

  1. Step 1: Check parameter correctness

    Lambda handler must have event and context parameters.
  2. Step 2: Validate logic for user key

    def handler(event, context): if 'user' not in event: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': f"Hello, {event['user']}"} correctly checks if 'user' key is missing and returns 400 with message. Then returns 200 with personalized greeting. def handler(event, context): return {'statusCode': 200, 'body': f"Hello, {event['user']}"} does not check for missing user. def handler(event, context): if event['user'] == None: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': 'Hello, user'} incorrectly checks if event['user'] == None which causes error if key missing. def handler(event): if 'user' in event: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': f"Hello, {event['user']}"} reverses logic and misses context.
  3. Final Answer:

    def handler(event, context): if 'user' not in event: return {'statusCode': 400, 'body': 'User missing'} return {'statusCode': 200, 'body': f"Hello, {event['user']}" } -> Option D
  4. Quick Check:

    Check key presence before access to avoid errors [OK]
Hint: Check key exists before access; include event and context [OK]
Common Mistakes:
  • Missing context parameter
  • Accessing missing keys without check
  • Returning wrong status codes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard