첫 Lambda 함수 만들기
간단한 Lambda 함수를 작성하고 배포하며 런타임, 메모리 및 실행 역할을 구성합니다.
첫 Lambda 함수 만들기은(는) CoddyKit의 무료 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS for Backend Developers (EC2, S3, RDS, Lambda) 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Your First Lambda Function
Time to build your first serverless function! In this lesson, we'll write a simple AWS Lambda function that runs your code without managing servers.
We'll cover its basic structure, how to choose a runtime, and essential configurations like memory and execution roles. Get ready to deploy!
The Core: Your Lambda Handler
Every Lambda function needs a 'handler' function. This is the entry point where AWS Lambda starts executing your code. It typically receives two arguments:
event: Contains the data that triggered the invocation.context: Provides runtime information about the invocation, function, and execution environment.
Think of the handler as the 'main' method for your serverless code.
Pick Your Language: Lambda Runtimes
AWS Lambda supports many programming languages, called 'runtimes.' You choose the one your function code is written in. The runtime determines the execution environment and how your handler is called.
- Python: Great for scripting, data processing, and machine learning.
- Node.js: Ideal for real-time applications, APIs, and microservices.
- Java: Good for enterprise applications, high performance, and existing JVM ecosystems.
- Go, C#, Ruby, Custom Runtimes: More options for diverse needs and specific use cases.
Hello Lambda: A Basic Python Example
Let's write a very simple Python Lambda function. This function will take an input name from the event and return a greeting. Try running it to see the output!
import json
def lambda_handler(event, context):
# event is a dictionary containing invocation data
# context provides runtime info (e.g., function name, memory limit)
# We expect 'name' in the event payload
name = event.get('name', 'World')
message = f"Hello, {name}!"
# Lambda functions often return a dictionary, which AWS converts to JSON
return {
'statusCode': 200,
'body': json.dumps(message)
}
# --- Local Test Simulation ---
if __name__ == "__main__":
# Simulate an event payload
test_event = {"name": "CoddyKit User"}
# Simulate a dummy context object
class Context:
def __init__(self):
self.function_name = "my-test-function"
self.memory_limit_in_mb = 128
self.invoked_function_arn = "arn:aws:lambda:us-east-1:123456789012:function:my-test-function"
self.aws_request_id = "test-request-id-123"
test_context = Context()
# Call the handler
response = lambda_handler(test_event, test_context)
# Print the response for local verification
print(f"Status Code: {response['statusCode']}")
print(f"Body: {json.loads(response['body'])}")
# Test without a name
test_event_no_name = {}
response_no_name = lambda_handler(test_event_no_name, test_context)
print(f"\nStatus Code (no name): {response_no_name['statusCode']}")
print(f"Body (no name): {json.loads(response_no_name['body'])}")Your Function's Input: The Event
The event object is a Python dictionary (or JSON object in other runtimes) that contains the data passed to your function. This data comes from the service that triggered your Lambda.
- If triggered by an API Gateway: It contains HTTP method, headers, body.
- If triggered by S3: It contains details about the S3 bucket and object.
- If invoked directly: It contains whatever JSON payload you passed.
Your function processes this input to perform its task.
Runtime Details: The Context
The context object provides information about the invocation, function, and execution environment. It's useful for logging and making runtime decisions.
function_name: The name of your Lambda function.aws_request_id: A unique ID for the invocation.memory_limit_in_mb: The memory allocated to the function.get_remaining_time_in_millis(): How much time is left before the function times out.
You can use this for advanced error handling or logging within your function.
Permissions with IAM Execution Roles
A Lambda function needs permission to interact with other AWS services. This is managed by an IAM Role, specifically called the "execution role."
- The role defines what actions your Lambda can perform (e.g., write logs to CloudWatch, read from S3).
- You attach policies to this role, specifying permissions.
- Without the correct permissions, your function will fail when trying to access other AWS resources.
Always follow the principle of least privilege, granting only the necessary permissions.
Fine-Tuning: Memory & Timeout
When you create a Lambda function, you configure several settings that impact its performance and cost:
- Memory: Defines the RAM allocated (e.g., 128MB to 10GB). More memory often means more CPU power too.
- Timeout: The maximum time your function can run (e.g., 3 seconds to 15 minutes). If it exceeds this, Lambda stops it.
- Environment Variables: Key-value pairs accessible to your code, great for configuration without changing code.
Choosing appropriate settings is crucial for efficiency and cost optimization.
Getting Your Function Live
Once your code is ready, you deploy it to AWS Lambda. Here's a high-level overview:
- Package your code: Zip your code and any dependencies into a deployment package.
- Upload: Use the AWS Console, AWS CLI, or an Infrastructure as Code (IaC) tool like AWS SAM or CloudFormation.
- Test: Invoke your function directly from the Lambda console with test events, or trigger it via an integrated service like API Gateway or S3.
The console provides a quick way to get started and test your function immediately.
Quick Check: Lambda Handler
Consider the basic structure of a Python Lambda handler:
def lambda_handler(event, context):
# ... your code ...
return responseWhat is the primary purpose of the event parameter?
Recap: Your First Serverless Step
Great job! You've learned the fundamentals of building a Lambda function:
- Every Lambda needs a handler function as its entry point.
- You choose a runtime (like Python) for your code.
- The
eventobject carries input data, andcontextprovides runtime info. - An IAM execution role grants your function necessary permissions.
- You configure settings like memory and timeout for performance and cost.
This is your foundation for building powerful serverless applications!
AI 튜터와 함께 AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 12
- 레슨
- 48
자주 묻는 질문
“첫 Lambda 함수 만들기” 강의는 무료인가요?
네 — “첫 Lambda 함수 만들기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의 전체를 잠금 해제할 수 있습니다. AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 총 4개의 강의가 포함되어 있습니다.
“첫 Lambda 함수 만들기”에서 뭘 배우나요?
간단한 Lambda 함수를 작성하고 배포하며 런타임, 메모리 및 실행 역할을 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS for Backend Developers (EC2, S3, RDS, Lambda)은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“첫 Lambda 함수 만들기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- AWS Lambda란 무엇인가요?
- 첫 Lambda 함수 만들기
- Lambda 트리거와 통합
- Lambda 함수 모니터링 및 디버깅