📖 Scenario: You are working on a cloud project where you need to create a simple AWS Lambda function. This function will run code in the cloud without managing servers. You will create the function step-by-step using AWS CloudFormation syntax.
🎯 Goal: Build a CloudFormation template that defines a Lambda function named MySimpleFunction with a basic Python 3.9 runtime and a handler named lambda_function.lambda_handler.
📋 What You'll Learn
Create a CloudFormation template with a Resources section
Define a Lambda function resource named MySimpleFunction
Set the runtime to python3.9
Set the handler to lambda_function.lambda_handler
Use a basic inline code snippet for the Lambda function
💡 Why This Matters
🌍 Real World
CloudFormation templates are used to automate cloud infrastructure setup, making deployments repeatable and consistent.
💼 Career
Knowing how to define Lambda functions in infrastructure as code is essential for cloud engineers and developers working with AWS.
Progress0 / 4 steps
1
Create the CloudFormation template skeleton
Create a CloudFormation template with a Resources section as an empty dictionary called Resources.
AWS
Hint
Start by creating a Python dictionary named Resources with no entries yet.
2
Add the Lambda function resource
Add a resource named MySimpleFunction inside Resources with the type AWS::Lambda::Function and an empty Properties dictionary.
AWS
Hint
Inside Resources, add a key MySimpleFunction with the correct type and empty properties.
3
Configure the Lambda function properties
Inside MySimpleFunction properties, add Runtime set to python3.9, Handler set to lambda_function.lambda_handler, and Code with ZipFile containing a simple Python function def lambda_handler(event, context):\n return 'Hello from Lambda'.
AWS
Hint
Set the runtime, handler, and inline code for the Lambda function inside Properties.
4
Complete the CloudFormation template
Add the top-level AWSTemplateFormatVersion set to 2010-09-09 and Resources dictionary to complete the CloudFormation template as a Python dictionary named template.
AWS
Hint
Wrap the Resources dictionary inside a top-level template dictionary with the version key.
Practice
(1/5)
1. What is the main purpose of an AWS Lambda function?
easy
A. To run code without managing servers
B. To store large amounts of data
C. To create virtual machines
D. To manage user permissions
Solution
Step 1: Understand Lambda's role
AWS Lambda lets you run code without needing to manage servers or infrastructure.
Step 2: Compare options
The incorrect options describe other AWS services such as user permissions (IAM), data storage (S3), and virtual machines (EC2).
Final Answer:
To run code without managing servers -> Option A
Quick Check:
Lambda = serverless code execution [OK]
Hint: Lambda runs code without servers [OK]
Common Mistakes:
Confusing Lambda with storage services
Thinking Lambda manages servers
Mixing Lambda with user management
2. Which of the following is the correct way to specify the handler when creating a Lambda function in AWS?
easy
A. handler.index
B. index.handler
C. lambda.handler
D. handler.lambda
Solution
Step 1: Understand handler format
The handler is specified as filename.functionname. Commonly, the file is index and function is handler.
Step 2: Match options
Only index.handler matches the correct format; others reverse or misuse parts.
Final Answer:
index.handler -> Option B
Quick Check:
Handler = filename.function [OK]
Hint: Handler format is filename.functionname [OK]
Common Mistakes:
Swapping filename and function name
Using invalid handler names
Confusing handler with runtime
3. Given this AWS Lambda function code snippet in Python:
The function returns the value of 'key' from event, or 'default' if 'key' is missing.
Step 2: Check the event input
The event is an empty dictionary, so 'key' is not present, so it returns 'default'.
Final Answer:
"default" -> Option A
Quick Check:
Missing key returns default [OK]
Hint: Missing dict key returns default value [OK]
Common Mistakes:
Assuming missing key returns None
Expecting an error on missing key
Confusing key name with value
4. You created a Lambda function but it fails with a permissions error when invoked. What is the most likely cause?
medium
A. The deployment package is too large
B. The handler name is incorrect
C. The runtime is not supported
D. The Lambda execution role lacks necessary permissions
Solution
Step 1: Understand permissions in Lambda
Lambda functions need an IAM role with permissions to run and access resources.
Step 2: Identify cause of permissions error
A permissions error usually means the execution role is missing required permissions.
Final Answer:
The Lambda execution role lacks necessary permissions -> Option D
Quick Check:
Permissions error = missing IAM role rights [OK]
Hint: Check IAM role permissions for Lambda [OK]
Common Mistakes:
Blaming handler name for permissions error
Ignoring IAM role setup
Assuming runtime causes permissions error
5. You want to create a Lambda function that processes images uploaded to an S3 bucket. Which combination of settings is required to ensure the Lambda runs automatically when a new image is uploaded?
hard
A. Set Lambda runtime to Node.js and upload images directly to Lambda
B. Manually invoke Lambda after uploading images to S3
C. Set S3 event trigger on bucket for 'ObjectCreated' and assign Lambda execution role with S3 read permissions
D. Create an EC2 instance to monitor S3 and call Lambda
Solution
Step 1: Configure S3 event trigger
To run Lambda automatically on uploads, configure S3 to trigger Lambda on 'ObjectCreated' events.
Step 2: Assign correct IAM role permissions
Lambda needs an execution role with permissions to read from S3 to process images.
Final Answer:
Set S3 event trigger on bucket for 'ObjectCreated' and assign Lambda execution role with S3 read permissions -> Option C
Quick Check:
S3 trigger + IAM role = automatic Lambda run [OK]
Hint: Use S3 event triggers with proper IAM role [OK]
Common Mistakes:
Thinking manual invocation is automatic
Confusing runtime with event triggers
Using EC2 unnecessarily for Lambda triggers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.